在管理朋友的 Blog 时,他竟然把密码给忘记了(囧)。于是我写了如下的代码:
<?php
// 载入 wordpress 环境
include("wp-config.php");
include("wp-blog-header.php");
// 如果没有 POST 进密码,则显示 input 框
if (empty($_POST['password'])) {
?>
<form method="post">
password: <input name="password" type="password" />
<input type="submit" />
</form>
<?php
} else {
// 修改数据库,SQL 语句一看便知(wordpress 密码用 MD5 加密)
$sql = "UPDATE " . $wpdb->users . " SET user_pass = '"
. md5($_POST['password']) . "' WHERE user_login = 'admin'";
if ($link = $wpdb->query($sql)) {
// 尝试删除自身
@unlink($_SERVER['SCRIPT_FILENAME']);
wp_redirect('wp-login.php');
exit;
} else {
die('reset password error!');
}
}
?>
这段代码会重置 wordpress 管理员密码。用法很简单,将其保存在 wordpress 根目录执行即可(在 2.4x 系列版本测试通过)。
该脚本非常危险,强烈建议使用完毕以后立即删除。
这里是该代码 Zip 格式打包下载 。
没写过php代码,但差不多能看懂 :)
我的疑问是,用得着这么复杂吗?直接杀进数据库干掉那行记录不就可以了?
@Micheal 为的是方便普通用户 :^)
直接输出一个md5('111111'),然后把copy他的值,打开mysql,找到对应的表,重置。。。。
呵呵.. 很强大的代码..