Переход к предыдущей публикации Если Вам не пришло письмо с паролем при регистрации Сердце кровью обливается или Безвременно убиенный Uptime :( Переход к следущей публикации

Wordpress 2.5.1 | Восстановление пароля: “Извините, этот ключ не верен.”

Среда, 7 мая, 2008 15:21:09 EEST

Исправления от 17 марта, 2009 01:41:37

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 .= '!@#$%^&*()';

Сохраняем файл. Пробуем запросить пароль… Вот теперь все работает.

Похожие публикации

Выделенные сервера дешевле обычного хостинга

Комментариев 11

1 2

Daemony 31 октября, 2008 22:05:32 EET .:. ID #1003 .:.

замкнутый гнутый профиль, тебе сюда!

1 2

Возник вопрос по этой теме, или есть что добавить? Говорите!

  1. Зарегистрированным пользователям вводить защитный код (captcha) не приходится.
  2. Загрузить свою аватарку Вы сможете, зарегистрировавшись на сервисе www.gravatar.com
Публикуя комментарий Вы подтверждаете, что ознакомились c Правилами и принимаете их!
HOMOSAPIENS ONLY! :)