|
|
Если Вам не пришло письмо с паролем при регистрации | Сердце кровью обливается или Безвременно убиенный Uptime :( |
|
Поставки мебельной фурнитуры. Для вас мебельная фурнитура для Фрязина .
|
Wordpress 2.5.1 | Восстановление пароля: “Извините, этот ключ не верен.”
В первую очередь, хочу принести свои извинения посетителям моего сайта, которые за последние шесть дней (после обновления движка Daemony’s Live до актуальной версии Wordpress) по каким-либо причинам пробовали восстановить пароль к логину для авторизации на сайте, но вместо пароля получили сообщение об ошибке Wordpress: "Извините, этот ключ не верен." Проблема заключалась в самом скрипте новой версии Wordpress и приводила к тому, что пользователю, запросившему смену пароля, высылалась ссылка с ключом подтверждения, который невозможно было использовать. Характерно еще и то, что сколько ссылку-код ни запрашивай, каждый раз высылался один и тот же ключ. И в добавление ко всему, с использованием спецсимволов таких как, например ^ Все бы ничего, но в интерфейсе GMail все что шло после этого символа отрезалось, точнее превращалось не в ссылку, из-за чего некоторые пользователи (умеющие "клацать" и не умеющие "копи-пастить") натыкались на еще одни грабли.
Первым об этой проблеме сообщил мне посетитель под ником stooper, за что и говорю ему спасибо. После stooper’а написали еще четыре человека. Сегодня проблему я устранил.
Для начала, я завел себе на сайте тестового пользователя и провел ряд экспериментов, для того чтобы убедиться, что проблема действительно существует, что она не связана ни с одним из плагинов, не связана с "кривизной браузера" и не имеет отношение к специфике хостинга. Проблема и правда есть. Будем решать.
В поисках, я первым делом поинтересовался у Lecactus‘а, не встречал ли он подобной ошибки, но ответ последовал отрицательный. И я переместился на Google. По ключевой фразе "Извините, этот ключ не верен." найти удалось всего лишь просканированные Гуглоботом файлы русской локализации Wordpress на каком-то хостинге. И все. Тогда я отправился на форум русской поддержки mywordpress.ru. Поиск по форуму тоже ничего не дал и я уже было думал создать новый топик да самому спросить, но в последний момент вспомнил о таком полезном ресурсе, как Wordpress Багтрек. И не даром. Описание своей проблемы и ее устранение я нашел именно на Багтреке.
Собственно, проблема в коде Wordpress 2.5.1, точнее в двух файлах: /wp-login.php и в /wp-includes/pluggable.php Разработчики Wordpress обещают в новой версии 2.5.2 внести соответствующие исправления в код. А пока что если Вы столкнулись с аналогичной проблемой, Вы можете, либо скачать
Исправленные wp-login.php и pluggable.php для Wordpress 2.5.1 [Размер 16 КБ]
либо самостоятельно сделать нужные исправления в PHP коде.
/wp-login.php
В этом файле, после строчки $key = $wpdb->get_var($wpdb->prepare("SELECT user_activation_key FROM $wpdb->users WHERE user_login = %s", $user_login)); найдите строку:
if ( empty($key) ) {
и замените ее на:
if ( empty($key) || preg_match('/[^a-z0-9]/i',$key) != 0) {
Далее, чуть ниже ищем такую строчку:
$key = wp_generate_password();
и меняем ее на:
$key = wp_generate_password(20, false);
Сохраняем файл.
/wp-includes/pluggable.php
Ищем следующий кусочек кода:
function wp_generate_password($length = 12) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()";
убираем его и вставляем такой:
function wp_generate_password($length = 12, $special_chars = true) {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
if ( $special_chars )
$chars .= '!@#$%^&*()';
Сохраняем файл. Пробуем запросить пароль… Вот теперь все работает.
Ключевые слова
Wordpress | баг | восстановление пароля | проблема
Публикации по теме
1 Трэкбеки:
- 2008-06-03 09:41:12 EEST | Русский WordPress 2.5.1 Lecactus Edition - Lecactus Home



Комментарии (12) к публикации “Wordpress 2.5.1 | Восстановление пароля: “Извините, этот ключ не верен.””