требовать пароль для регистрации на WordPress - PullRequest
0 голосов
/ 25 июня 2018

У меня есть сайт на WordPress, и мне нужно запросить пароль в реестре, если у пользователя нет этого пароля, который он не может зарегистрировать, я подумал об использовании функции js, когда вызывается событие onsubmit, но это не похоже набыть лучшим способом к этому.

var chave='the_key';

function validaChave(){
    var chaveForm=document.getElementById('chave');
    if(chaveForm==chave){
        return true;
    }
    alert('Error message');
    return false;
}

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

Вы не можете реализовать это с помощью JavaScript, потому что пользователи могут видеть это.А так как это сайт WordPress, то вы должны реализовать его с помощью PHP.

Как это сделать?

Вы можете создать пользовательскую форму регистрации , а затем добавить поле в форму для обработки этого.Затем, когда вы отправляете форму, скрипт php на стороне сервера сравнивает значение со значением, хранящимся на сервере, и возвращает ответ, основанный на этом. Значение chave может быть сохранено как constant (фиксированное значение) или вы можете пойти дальше и использовать БД и хэширование

надеюсь, я вас правильно понял.

0 голосов
/ 27 июня 2018

В связи с плагином, который я рекомендовал, используйте эти функции / хуки, чтобы позволить пользователю также выбрать свой собственный пароль, вы можете добавить их в свои темы function.php:

// ALLOW USERS TO CHOOSE PASSWORD
function show_extra_register_fields(){
?>
    <br />
    <p>
        <label for="password">Password**<br/>
        <input id="password" class="input" type="password" tabindex="30" size="25" value="" name="password" />
        </label>
    </p>
    <p>
        <label for="repeat_password">Repeat password**<br/>
        <input id="repeat_password" class="input" type="password" tabindex="40" size="25" value="" name="repeat_password" />
        </label>
    </p>
<?php
}
add_action( 'register_form', 'show_extra_register_fields' );

// CHECK FORMS FOR ERROR
function check_extra_register_fields($login, $email, $errors) {
    if ( $_POST['password'] !== $_POST['repeat_password'] ) {
        $errors->add( 'passwords_not_matched', "<strong>ERROR</strong>: Passwords must match" );
    }
    if ( strlen( $_POST['password'] ) < 6 ) {
        $errors->add( 'password_too_short', "<strong>ERROR</strong>: Passwords must be at least six characters long" );
    }
}
add_action( 'register_post', 'check_extra_register_fields', 10, 3 );

// STORE USER SELECTED PASSWORD TO DATABASE
function register_extra_fields( $user_id ){
    $userdata = array();
    $userdata['ID'] = $user_id;
    if ( $_POST['password'] !== '' ) {
        $userdata['user_pass'] = $_POST['password'];
    }
    $new_user_id = wp_update_user( $userdata );
}
add_action( 'user_register', 'register_extra_fields', 100 );
0 голосов
/ 25 июня 2018

Важно отметить, что ваш ключ "the_key" является небезопасным. Любой, у кого есть современный веб-браузер, может легко получить доступ к сценариям на стороне клиента, выполняющимся на веб-страницах, и увидеть ваш ключ.Кроме того, кто-то может отправить форму независимо от вашего контрольного кода так же легко.Никогда не доверяй клиенту!Выполните эту проверку на стороне сервера, как в PHP.

Имея это в виду, вы можете получить доступ к значению элемента, предполагая, что это <input>, с document.getElementById('chave').value

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...