Как восстановить (забытый, потерянный) пароль в WordPress

Забыла пароль на сайт WordPress. Забыла почту. Как восстановить утраченный пароль?

Начальный Asked on 10.12.2014 in Безопасность.
Add Comment
5 Answer(s)

Делюсь своим способом восстановить пароль на WP. Он очень простой, как и все гениальное. Потребуется лишь доступ по FTP и одна (1) строчка кода.
В файл functions.php активной темы добавьте строчку:


wp_set_password('new-password', 1);


Тут  new-password - это новый пароль, а цифра 1- id первого пользователя, то есть администратора.

Теперь откройте свой сайт и авторизуйтесь, поменяйте пароль (при необходимости в своем профили) и удалите указанную строчку кода из файла  functions.php, иначе, при каждом посещении сайта, она будет сбрасывать пароль на указанный.

Понимающий Answered on 11.01.2015.
Add Comment

Как один из вариантов. Создайте файл password.php (обычный текстовый файл), в котором пропишите код:


<?php

require 'wp-load.php';
$user = get_user_by( 'login', 'admin' );

if ( $user ) {

wp_set_password( 'new-password', $user->ID );

echo 'Готово! Можете авторизоваться';

} else {

echo 'Ошибка: пользователь не найден';

}

?>

Теперь загрузите его в корень сайта и перейдите в браузере по адресу: http://сайт.ру/password.php
Ваш новый пароль будет:  new-password. Можете авторизоваться с этим паролем!
Если вы получили сообщение - Ошибка: пользователь не найден - измените имя пользователя admin на нужное

Сторонник Answered on 11.01.2015.
Add Comment

Если есть доступ в  phpMyAdmin, то сделать SQL-запрос в своей базе данных. Заходим в phpMyAdmin и на вкладке "SQL" вводим запрос:


UPDATE wp_users SET user_pass = MD5('new-password') WHERE user_login = 'admin';

Этот  SQL-запрос создаст для пользователя с именем admin новый пароль - new-password 

Сторонник Answered on 11.01.2015.
Add Comment

Есть готовый скрипт для смены пароля, если есть доступ по ФТП. Создаем файл, например, pass.php и прописываем в него код:


<?php

/*

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.
This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.
You should have received a copy of the GNU General Public License

along with this program; if not, write to the Free Software

Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

*/
require './wp-blog-header.php';
function meh() {

global $wpdb;
if ( isset( $_POST['update'] ) ) {

$user_login = ( empty( $_POST['e-name'] ) ? '' : sanitize_user( $_POST['e-name'] ) );

$user_pass = ( empty( $_POST[ 'e-pass' ] ) ? '' : $_POST['e-pass'] );

$answer = ( empty( $user_login ) ? '<div id="message" class="updated fade"><p><strong>The user name field is empty.</strong></p></div>' : '' );

$answer .= ( empty( $user_pass ) ? '<div id="message" class="updated fade"><p><strong>The password field is empty.</strong></p></div>' : '' );

if ( $user_login != $wpdb->get_var( "SELECT user_login FROM $wpdb->users WHERE ID = '1' LIMIT 1" ) ) {

$answer .="<div id='message' class='updated fade'><p><strong>That is not the correct administrator username.</strong></p></div>";

}

if ( empty( $answer ) ) {

$wpdb->query( "UPDATE $wpdb->users SET user_pass = MD5('$user_pass'), user_activation_key = '' WHERE user_login = '$user_login'" );

$plaintext_pass = $user_pass;

$message = __( 'Someone, hopefully you, has reset the Administrator password for your WordPress blog. Details follow:' ). "\r\n";

$message .= sprintf( __( 'Username: %s' ), $user_login ) . "\r\n";

$message .= sprintf( __( 'Password: %s' ), $plaintext_pass ) . "\r\n";

@wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Your WordPress administrator password has been changed!' ), get_option( 'blogname' ) ), $message );

$answer="<div id='message' class='updated fade'><p><strong>Your password has been successfully changed</strong></p><p><strong>An e-mail with this information has been dispatched to the WordPress blog administrator</strong></p><p><strong>You should now delete this file off your server. DO NOT LEAVE IT UP FOR SOMEONE ELSE TO FIND!</strong></p></div>";

}

}
return empty( $answer ) ? false : $answer;

}
$answer = meh();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>WordPress Emergency PassWord Reset</title>

<meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />

<link rel="stylesheet" href="<?php bloginfo( 'wpurl' ); ?>/wp-admin/wp-admin.css?version=<?php bloginfo( 'version' ); ?>" type="text/css" />

</head>

<body>

<div class="wrap">

<form method="post" action="">

<h2>WordPress Emergency PassWord Reset</h2>

<p><strong>Your use of this script is at your sole risk. All code is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness. Further, I shall not be liable for any damages you may sustain by using this script, whether direct, indirect, special, incidental or consequential.</strong></p>

<p>This script is intended to be used as <strong>a last resort</strong> by WordPress administrators that are unable to access the database.

Usage of this script requires that you know the Administrator's user name for the WordPress install. (For most installs, that is going to be "admin" without the quotes.)</p>

<?php

echo $answer;

?>

<p class="submit"><input type="submit" name="update" value="Update Options" /></p>
<fieldset class="options">

<legend>WordPress Administrator</legend>

<label><?php _e( 'Enter Username:' ) ?><br />

<input type="text" name="e-name" id="e-name" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-name'] ) ); ?>" size="20" tabindex="10" /></label>

</fieldset>

<fieldset class="options">

<legend>Password</legend>

<label><?php _e( 'Enter New Password:' ) ?><br />

<input type="text" name="e-pass" id="e-pass" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-pass'] ) ); ?>" size="25" tabindex="20" /></label>

</fieldset>
<p class="submit"><input type="submit" name="update" value="Update Options" /></p>

</form>

</div>

</body>

</html>

Загружаем файл  pass.php в корень сайта, открываем в браузере sayt.ru/ pass.php, выставляем новый пароль, удаляем файл  pass.php

Сторонник Answered on 11.01.2015.
Add Comment

Если у вас есть доступ по FTP, то в functions.php активной темы вставьте код, который создает нового администратора на сайте:

function wpb_admin_account(){
$user = 'admin2';
$pass = 'password123';
$email = 'mama@milo.ru';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');

Теперь можете зайти на сайт как новый администратор, используя доступы:

пользователь: admin2
пароль: password123

Важно: при создании нового администратора использовать уникальный логин и почту (которые не встречаются на сайте)! А также после успешного входа в админку сайта, не забудьте удалить код из functions.php (иначе он будет срабатывать бесконечно долго)!

 

 

ГУРУ Answered on 29.11.2020.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.