Как поменять пароль пользователя в WordPress через базу данных MySQL
Может возникнуть такая ситуация, что вы вдруг забыли пароль от своей учетной записи на сайте запущенным под CMS WordPress, или что еще хуже — вас взломали, и поменяли пароль. Почтовый сервер не отправляет письмо с ссылкой на востановление, а если отправляет, то не вам. Но, если у вас есть доступ к серверу MySQL, где находится используемая база данных сайтом с WordPress, то это не будет проблемой. В данной статье предполагается, что у вас есть доступ через ssh, и вы знаете логин:пароль пользователя MySQL, который имеет доступ к базе данных вашего сайта на WordPress.
Смена пароля через MySQL
- Сперва нужно запустить консольный клиент MySQL. Делается это простой командой mysql:
mysql -p -u имя_пользователя
use wordpress;
-
Посмотреть список баз данных на MySQL сервере, выполним следующую команду:
show databases;
cat wp-config.php | grep DB_NAME
UPDATE `wp_users` SET `user_pass` = MD5('12345678') WHERE `wp_users`.`user_login` = Sysadmin;
UPDATE `wp_users` SET `user_pass` = MD5('12345678') WHERE `wp_users`.`user_email` = sysadmin@sysadmin.ru;
Как только появится примерно следующее сообщение:
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
изменение пароля при первом входе на сайт
Существует ли плагин на изменение пароля при первом входе, что бы пользователю после первого входа сразу предлагали сменить его пароль. Или каким образом можно это сделать ?
Отслеживать
задан 2 дек 2020 в 17:14
163 10 10 бронзовых знаков
Юзеру нечего сбрасывать. По умолчанию пароль не высылается и даже не генерируется. После регистрации юзера ему высылается ссылка, перейдя по которой он задаёт себе пароль.
3 дек 2020 в 8:06
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Есть вот такая штука:
Этот плагин перенаправляет недавно зарегистрированных пользователей на страницу Admin -> Edit Profile при первом входе в систему. Пока они не изменят свой пароль, они не смогут получить доступ ни к интерфейсу, ни к другим страницам админ-панели. Также отображается уведомление, информирующее их о том, что они должны изменить свой пароль.
Новые администраторы также должны изменить свой пароль, но в качестве меры безопасности они также могут получить доступ к странице Admin -> Plugins.
Как изменить пароль WordPress. 4 способа

Привет, дамы и господа! Читаем руководство для новичков — как изменить, сбросить и восстановить пароль администратора WordPress? Есть несколько способов сменить пароль админа WP в зависимости из ситуации.
Захотели поменять пароль админа на более сложный? Не вопрос. А если случилось страшное? Например, забыли или потеряли пароль и не можете войти в консоль вордпресс. Да. всякое бывает. Не важно в какой ситуации вам понадобиться изменить пароль, важно — как это сделать. Легко и просто. Читайте 4 способа: Как изменить пароль WordPress?

Рассмотрим, друзья, доступные варианты. Кстати, пишу пост в новом блочном редакторе Гутенберг. Не привычно. Да пошёл он.
Как изменить пароль в админке WordPress?
Если у вас есть доступ в панель управления сайтом, тогда выполните следующие действие:
- Зайдите в консоль WP;
- Раздел «Пользователи», выберите пункт «Ваш профиль»;
- В блоке «Управление учётной записью» — «Новый пароль» нажмите кнопку «Создать пароль»;
- Введите новый пароль (ориентируясь на шкалу надёжности) или воспользуйтесь паролем сгенерированным самой системой.
- Запишите новый пароль;
- Обновите профиль.

Не подвергайте себя опасности, используя простые пароли, свои имена и имена знаменитостей. Меняйте пароль на более сложный. Индикатор надёжности вам поможет:

Перед тем как войти в панель управления сайта с новыми реквизитами, очистите кэш и cookies вашего браузера. Идём далее.
Как сбросить и восстановить пароль WP?
Этот способ подходит тем, кто забыл/потерял свой пароль и не имеет доступ к своему сайту. Восстановить пароль можно по электронной почте администратора сайта. Вы получите письмо со ссылкой для создания нового пароля. В форме входа в админку WordPress по адресу — ваш_домен /wp-login.php — вам надо нажать ссылку Забыли пароль?:

Укажите ваше имя пользователя (логин администратора) или e-mail который привязан к сайту:

Нажмите кнопочку «Получить новый пароль» и через пару секунд проверьте вашу почту. Вам будет отправлено письмо со ссылкой для подтверждения. Чтобы сбросить и поменять пароль перейдите по ссылке в письме. На открывшейся странице введите свой новый пароль или опять же, используйте автоматически сгенерированный. Пользуйтесь шкалой надёжности:

Не забудьте пароль, именно по нему будет осуществляться вход в админку CMS. Запишите его например, в блокнот. Кликаем «Задать пароль». Перед новым входом в панель управления — чистим кэш веб браузера. Следующий способ.
Сброс пароля в WordPress через БД
У вас нет доступа к электронной почте администратора сайта для восстановления пароля? Или по какой-либо причине не работает отправка почты с вашего хостинга, то вам надо воспользоваться методом ниже.
Сбросить пароль админа WordPress возможно через базу данных. Не трудная операция по спасению вашего веб-ресурса происходит в phpMyAdmin (приложение для работы с базами данных MySQL ). Это доступно на всех хостингах. Вам надо только знать имя базы данных с которой работает сайт. Имя базы данных можно посмотреть в конфигурационном файле wp-config.php .
Вы знаете имя базы и теперь нам нужно попасть в саму БД через phpMyAdmin (или иной продукт для управления БД). В примере взят хостинг Beget. Заходим в раздел MySQL:

Находим необходимую базу данных в списке и напротив неё нажимаем иконку PMA (перейти в phpMyAdmin):

Наверное, сразу phpMyAdmin не откроется, так как ваш браузер блокирует всплывающие окна, поэтому разрешите использовать всплывающие окна. Перед нами предстанет база данных, с которой работает наш сайт. Нам нужно найти таблицу с пользователем вашего сайта. Таблица название имеет следующий вид – префикс_user . В нашем случае она называется wp_users .
Найдём её в списке и нажмём на неё. Можно кликнуть или там, или там:

Перед нами открылась информация из таблицы wp_users, в которой указана информация о всех зарегистрированных пользователях вашего сайта. Вам нужно найти строку с логином вашей учётной записи user_login . Теперь откроем эту строку для редактирования, нажав на иконку с карандашом в левой части строки или ссылку Изменить:

Затем, приступим к изменению вашего пароля. Для этого находим строку с названием user_pass . Выберите в выпадающем списке пункт MD5 (функция). В соседнем окошке (значение) удалите все текущие символы и введите новый пароль администратора сайта WordPress:

Изменив пароль в phpMyAdmin, вы не увидите его в открытом виде в таблице wp_users , поскольку WordPress хранит все пароли в зашифрованном виде (как на скриншоте). Нажимаем кнопку «Вперёд» внизу страницы для сохранения сделанных вами изменений. Всё.
Выполнить вход в панель администрирования WordPress вы сможете используя новый пароль (перед входом чистите кэш браузера). Ура, мы это сделали.
Заключительный способ смены пароля это — когда выше представленные методы не походят. У вас нет доступа ни к чему, только есть доступ к FTP серверу, где находится ваш сайт.
Поменять пароль вордпресс с помощью PHP файла
Этот способ, восстановление пароля с помощью PHP файла, от Константина Ковшенина (разработчик в компании Automattic).
Когда другие методы не являются доступными, пароль в WordPress можно изменить с помощью простого PHP файла. Для данного способа вам понадобится доступ к FTP серверу, где хранится ваш сайт. Создайте новый PHP файл с произвольным именем (например password-recovery.php ) и следующим содержанием:
Данный код находит в базе данных пользователя с заданным именем пользователя, и изменяет его пароль. Не забудьте заменить значения my-username и my-new-password на ваше имя пользователя и пароль.
После этого откройте ваш FTP клиент и подключитесь к серверу вашего сайта. В директории где установлен WordPress найдите папку wp-content и зайдите в неё. Найдите директорию mu-plugins (не путайте с директорией plugins). Если директория mu-plugins не существует — создайте её. Загрузите в директорию mu-plugins созданный вами PHP файл.
Конечный путь до файла должен выглядеть примерно так: wordpress/wp-content/mu-plugins/password-recovery.php
После того как вы загрузили ваш файл, вы сможете выполнить вход в административную панель WordPress используя пароль, который вы указали в вашем PHP файле.
И наконец, не забудьте снова зайти в вашу директорию mu-plugins и удалить созданный вами файл password-recovery.php . Если вы этого не сделаете, WordPress будет изменять пароль при каждом посещении вашего сайта, что существенно снизит скорость его работы.
И в заключении
Посмотрите на 10 самых популярных паролей. В данном списке ничего смешного нет. Тут все предсказуемо примитивно и очень плохо:
- 123456
- password
- 123456789
- 12345678
- 12345
- 111111
- 1234567
- sunshine
- qwerty
- iloveyou
Посмотрели? И ни когда не используйте их. Слабый пароль является самой распространённой причиной взлома сайтов. Храните пароли от своего сайта в надёжном месте, не забывайте и не теряйте их. Заведите отдельную тетрадь, где будут записаны ваши все пароли — от личного сайта, соцсетей и так далее, и тому подобное.
Изменение страниц восстановления пароля в WordPress.
На прошлой неделе я уже опубликовал урок о том, как создать собственную форму авторизации в WordPress. Урок был очень простой и, казалось бы, надо идти по увеличению сложности и заняться формой регистрации.. но нет, сейчас мы рассмотрим самую сложную часть, связанную со страницами восстановления пароля — именно страницами, потому что в принципе их две — та, на которой вы вводите свой email и та, на которой вы устанавливаете новый пароль.
Однако я в свою очередь сделаю всё возможное, чтобы этот урок упростить.
Небольшая видео-демонстрация того, что мы сейчас будем делать:
На самом деле и тема и сам код довольно интересны, кроме того, я не встречал ещё хороших уроков об этом. Есть один урок на енвато, состоящий из двух частей, каждая из которых в свою очередь состоит из трёх шагов, у меня самого голова кругом пошла, когда я начал там разбираться.
Ну хватит болтовни, урок состоит из двух шагов, в первом мы создаём шорткод, а во втором — настраиваем редиректы и отправку письма. Весь код можете спокойно отправить в functions.php текущей темы.
Шаг 1. Шорткод для формы восстановления пароля
Прежде всего вставьте этот код.
add_shortcode( 'misha_custom_passreset', 'misha_render_pass_reset_form' ); // шорткод [misha_custom_passreset] function misha_render_pass_reset_form() { // если пользователь авторизован, просто выводим сообщение и выходим из функции if ( is_user_logged_in() ) { return sprintf( "Вы уже авторизованы на сайте. %s'>Выйти.", wp_logout_url() ); } $return = ''; // переменная, в которую всё будем записывать // обработка ошибок, если вам нужны такие же стили уведомлений, как в видео, CSS-код прикладываю чуть ниже if ( isset( $_REQUEST['errno'] ) ) { $errors = explode( ',', $_REQUEST['errno'] ); foreach ( $errors as $error ) { switch ( $error ) { case 'empty_username': $return .= ''
; break; case 'password_reset_empty': $return .= ''
; break; case 'password_reset_mismatch': $return .= ''
; break; case 'invalid_email': case 'invalidcombo': $return .= ''
; break; } } } // тем, кто пришёл сюда по ссылке из email, показываем форму установки нового пароля if ( isset( $_REQUEST['login'] ) && isset( $_REQUEST['key'] ) ) { $return .= 'Укажите новый пароль
( 'wp-login.php?action=resetpass' ) . '" method="post" autocomplete="off"> . esc_attr( $_REQUEST['login'] ) . '" autocomplete="off" /> . esc_attr( $_REQUEST['key'] ) . '" />
(
) . ' '; // возвращаем форму и выходим из функции return $return; } // всем остальным - обычная форма сброса пароля (1-й шаг, где указываем email) $return .= 'Забыли пароль?
Укажите свой email, под которым вы зарегистрированы на сайте и на него будет отправлена информация о восстановлении пароля.
) . '" method="post">
Если код выше вам понятен, то вы заметили, что у нас будет одна страница WordPress для восстановления пароля — и когда мы указываем email для получения письма, и когда мы задаём новый пароль.
Поэтому теперь уже в админке WordPress переходим в Страницы > Добавить новую и вставляем в неё наш шорткод [misha_custom_passreset] .
Если код из этой статьи вас пугает, рекомендую сделать всё 1 в 1, как на скриншоте.

После того, как я разлогинился (вышел из сайта) и перешёл непосредственно на эту страницу, у меня получилось следующее.

Ах да, чуть не забыл про CSS, вот он:
.errno{ background-color: #f4f4f4; padding: 10px 20px; border-left: 5px solid #fe0000; } .errno.success{ border-left-color:#0bb80b; }
Шаг 2. Редиректы, отправка ссылки на восстановление пароля.
А теперь код поинтереснее, и самое ужасное, что вам придётся настроить его под себя. Шучу, на самом деле ничего страшного тут не будет, единственное, что нужно сделать, это в начале каждой функции поменять ярлыки (slug) URL страницы восстановления пароля и страницы входа (прошлый урок) на те значения, которые решили использовать вы.
Если же вы так же создали у себя страницы с ярлыками forgot-pass и login , то вообще ничего менять не нужно.
/* * перенаправляем стандартную форму */ add_action( 'login_form_lostpassword', 'misha_pass_reset_redir' ); function misha_pass_reset_redir() { // если используете другой ярлык страницы сброса пароля, укажите здесь $forgot_pass_page_slug = '/forgot-pass'; // если используете другой ярлык страницы входа, укажите здесь $login_page_slug = '/login'; // если кто-то перешел на страницу сброса пароля // (!) именно перешел, а не отправил формой, // тогда перенаправляем на нашу кастомную страницу сброса пароля if ( 'GET' == $_SERVER['REQUEST_METHOD'] && !is_user_logged_in() ) { wp_redirect( site_url( $forgot_pass_page_slug ) ); exit; } else if ( 'POST' == $_SERVER['REQUEST_METHOD'] ) { // если же напротив, была отправлена форма // юзаем retrieve_password() // которая отправляет на почту ссылку сброса пароля // пользователю, который указан в $_POST['user_login'] $errors = retrieve_password(); if ( is_wp_error( $errors ) ) { // если возникли ошибки, возвращаем пользователя назад на форму $to = site_url( $forgot_pass_page_slug ); $to = add_query_arg( 'errno', join( ',', $errors->get_error_codes() ), $to ); } else { // если ошибок не было, перенаправляем на логин с сообщением об успехе $to = site_url( $login_page_slug ); $to = add_query_arg( 'errno', 'confirm', $to ); } // собственно сам редирект wp_redirect( $to ); exit; } } /* * Манипуляции уже после перехода по ссылке из письма */ add_action( 'login_form_rp', 'misha_to_custom_password_reset' ); add_action( 'login_form_resetpass', 'misha_to_custom_password_reset' ); function misha_to_custom_password_reset() else { wp_redirect( site_url( $login_page_slug . '?errno=invalidkey' ) ); } exit; } } if ( 'GET' == $_SERVER['REQUEST_METHOD'] ) { $to = site_url( $forgot_pass_page_slug ); $to = add_query_arg( 'login', esc_attr( $login ), $to ); $to = add_query_arg( 'key', esc_attr( $key ), $to ); wp_redirect( $to ); exit; } elseif ( 'POST' == $_SERVER['REQUEST_METHOD'] ) { if ( isset( $_POST['pass1'] ) ) { if ( $_POST['pass1'] != $_POST['pass2'] ) { // если пароли не совпадают $to = site_url( $forgot_pass_page_slug ); $to = add_query_arg( 'key', esc_attr( $key ), $to ); $to = add_query_arg( 'login', esc_attr( $login ), $to ); $to = add_query_arg( 'errno', 'password_reset_mismatch', $to ); wp_redirect( $to ); exit; } if ( empty( $_POST['pass1'] ) ) { // если поле с паролем пустое $to = site_url( $forgot_pass_page_slug ); $to = add_query_arg( 'key', esc_attr( $key ), $to ); $to = add_query_arg( 'login', esc_attr( $login ), $to ); $to = add_query_arg( 'errno', 'password_reset_empty', $to ); wp_redirect( $to ); exit; } // тут кстати вы можете задать и свои проверки, например, чтобы длина пароля была 8 символов // с паролями всё окей, можно сбрасывать reset_password( $user, $_POST['pass1'] ); wp_redirect( site_url( $login_page_slug . '?errno=changed' ) ); } else { // если что-то пошло не так echo "Что-то пошло не так."; } exit; } }
Ну вот и всё, ссылки на описание некоторых из используемых функций вы найдёте чуть ниже под статьей. Кроме того, если у вас возник вопрос, вы всегда можете оставить его в комментариях, и он не останется без внимания.
По теме
- Изменение страницы входа WordPress. C учётом сообщений об ошибках и редиректов.
- site_url() — возвращает URL директории установки WordPress
- is_user_logged_in() — проверяет, авторизован ли текущий пользователь
- add_query_arg() — добавляет параметры в строку URL-вида
- wp_redirect() — создание редиректов
Миша
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Пишите, если нужна помощь с сайтом или разработка с нуля.
