2016-10-07 2 views
0

У меня есть плагин wordpress, мне нужно разрешить пользователям регистрироваться, не предупредив их, что некоторые «пароли» не разрешены. В моем цикле foreach мне нужно проверить 1 пароль, если он был использован, если это не так, я буду аутентифицировать пользователя.Как я могу позволить циклу foreach проверять процесс аутентификации пользователей?

Это мой текущий код, первый цикл, он будет проверять учетные данные пользователя, если они были неправильными, он будет показывать Erorr сообщение, если оно правильно, он направит его к CP:

if (isset($_POST["username"])) { 

    $creds = array(); 
    $creds['user_login'] = $_POST["username"]; 
    $creds['user_password'] = $user_pass; 
    if (isset($_POST["remember"])) 
     $creds['remember'] = true; 

    else 
    { 

     $user = wp_signon($creds, false); 
     if (is_wp_error($user)) 
      echo $user->get_error_message(); 
     else 
      wp_redirect(admin_url()); 


    }  
} 

Но что Мне нужно, чтобы сначала проверить учетные данные пользователей, если они были правильными, мне нужно направить его на свой CP, если не правильно, мне нужно передать текущий цикл для следующей проверки, потому что мне нужно добавить оператор if, чтобы проверить пользователя в каждый цикл, если он использовал определенные слова паролей типа passw0rd. любой совет?

+0

Какой цикл? Мне непонятно, что вы пытаетесь описать. Этот код для меня не имеет большого значения. Если 'isset ($ _ POST [" запомнить "])' false, почему вы сразу же проверяете ту же самую вещь в блоке 'else'? Это все равно будет ложным. – David

+0

извините за это, я удалил его. Я не показывал цикл, потому что моя проблема связана только с этой частью кода. Мне нужно проверить учетную запись пользователя, если они были правильными, а если нет, мне нужно перейти к следующему циклу. – MRAN

+0

Вы просто ищете функцию 'wp_check_password()'? https://codex.wordpress.org/Function_Reference/wp_check_password – David

ответ

0
$user = wp_signon($creds, false); 
    if (is_wp_error($user)) 
     echo $user->get_error_message(); 
    else 
     wp_redirect(admin_url()); 

Это часть кода, который должен вас заинтересовать в утилизации. Как вы заявляете в своем вопросе, вы хотите что-то сделать после того, как пользователь не смог войти в систему.

Если изменить что-то вроде:

function nextCheck($userData){ 
    echo $userData['user_login'].' '.$userData['user_password']; 
} 

$user = wp_signon($creds, false); 
    if (is_wp_error($user)){ 
     nextCheck($creds); 
     echo $user->get_error_message(); 
    } 
    else 
     wp_redirect(admin_url());  

Вы будете в состоянии продолжить с тем, что когда-либо ваша следующая задача.

+0

Благодарю вас, мой друг, мне нужен wp_redirect (admin_url()); 'first, если пользовательский пароль был правильным, тогда мне нужно двигаться вперед, если ошибки неверны. мой код и ваш ставят пользователь перенаправлять последний шаг! – MRAN

+0

Эта строка 'if (is_wp_error ($ user))' - это строка, которая проверяет данные для входа пользователей. Если это правда (что пользователь не смог войти в систему), он выполняет код в скобках. Если ошибки неверны, они всегда будут в пределах этого блока, который вы можете узнать. – IsThisJavascript

Смежные вопросы