Intereting Posts
Как сделать так, чтобы мой крюк действия выполнял последний По возрастанию имеет странные последствия для цикла wordpress получить термин по id без таксономии Сделать секрет блога во время проектирования Сообщение определенной категории – не видно в пейджинге предыдущего / следующего сообщения Wp-login отображается на белом экране, ошибка: невозможно изменить информацию заголовка Пользовательский тип сообщения в теме не отображается Как упорядочить страницы и категории по ID или имени в одном запросе? Как добавить правила перезаписи и разбиение на страницы для получения файлов вложений? Ошибка SQL с ошибкой post_content Компоненты жесткого кодирования на клиентских веб-сайтах Загружать среду WordPress для внешнего контента? Расширенные пользовательские поля в functions.php Отредактируйте «спасибо за создание с помощью WordPress» в версии 3.3.1 Автоматическое название мультимедиа по умолчанию и alt

Проблема Bizarre wp_signon

Очень странная проблема с wp_signon

Ниже я передаю учетные данные пользователям wp_check_password, и он возвращает true, доказывая, что пароль верен … однако, когда я пытаюсь сделать это, верните wp_error с помощью
"ОШИБКА. Пароль, введенный для имени пользователя XXXXXXX, неверен."

Пожалуйста, может кто-нибудь объяснить, почему это так? и как исправить?


$password = "vdouW#DswYMH" $hashed = wp_hash_password($password); //$P$Bydu8uFLe8CFXmtGjA71Tfv8Tyo7nH0 if (wp_check_password($password,$hashed,$user->data->ID)) { echo "Yes, password correct". $creds['user_login'] = $user->data->user_login; $creds['user_password'] = $password; $creds['remember'] = false; $user2 = wp_signon( $creds, true ); if ( is_wp_error($user2) ) echo $user2->get_error_message().' - '.$hashed; else echo 'Success<br/>'; } 

Довольно уверен, что wp_check_password () не предназначен для использования так, как вы его используете.

Из взглядов документации , и насколько я могу судить, глядя на источник, эта функция предназначена только для сравнения пароля открытого текста, который вы предоставляете против хеша, который вы предоставляете, – чтобы не проверить, соответствует ли сохраненный пароль конкретного пользователя проголосовали. (Параметр id пользователя вводит в заблуждение – я полагаю, что это связано с преобразованием существующей формы пароля пользователя в один вид хэша другому, но я не уверен на 100%).

В любом случае вам не нужно выполнять какие-либо проверки вручную. Функция wp_signon () сама проверит creds, и если они верны, она войдет в систему и вернет действительный объект пользователя. Если кредиты неверны, он вернет объект ошибки.

С какими функциями вы добавляете своих пользователей? Я просто столкнулся с неудачей в wp_update_user (3.1) , в результате чего wp_signon завершился неудачей, поскольку пароль был сохранен дважды хешированным. Использование wp_insert_user работает правильно.