Intereting Posts
Как я могу заставить это работать – отправить сообщение из толстой коробки Получение алфавитного списка сообщений с двумя буквами onclick on letter Блог на нескольких языках на WordPress.com? Разрешения в локальной среде Dev (OS X) 404 в разбивке на страницы, но со странным завихрением (ошибка 404 только при наличии одного сообщения на второй странице) Tweak next_post_link для включения миниатюры Как показать постоянную ссылку auto при вводе текста в пост tiltle? Добавить генератор паролей на странице с защитой паролем Почему пользовательский тип сообщений WordPress не отображается в панели администратора? WordPress AJAX Load Больше функции дублирования сообщения Shortcode для вывода get_header не работает Запустите сценарий jquery на определенной странице шаблона получить заказную копию архива по месяцам Перенаправление на последнюю страницу, посещаемую до входа в систему Как использовать get_template_part всегда относительно файла, в котором я его использую?

Проблема 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 работает правильно.