乌徒帮技术范儿WordPressWordPress开发 › wordpress创建随机登录密码,让你的测试站更专业

wordpress创建随机登录密码,让你的测试站更专业

分类:WordPress开发

我创办了两个wordpress测试站,为了让用户能够登录到后台使用后台的功能,专门设计了该功能:在登录页面创建随机登录密码,提供用户登录。该功能能够在登录页面重置密码,任何人在后台修改密码都没用。同时该功能能删除多余的用户,防止有人用机器人来发外链。

直接上代码,修改根目录下的wp-login.php文件:在?$rememberme = ! empty( $_POST['rememberme'] );?和?<p class="submit">之间的代码全部替换为下面的代码。

/*****************************************************
*
* 对登录过程进行操作
* 将users表中的所有用户删除,创建一个administrator和随机密码的用户
*
*****************************************************/
// 创建随机密码
function create_password($length = 8){
// 密码字符集,可任意添加你需要的字符
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';
$password = '';
for($i = 0;$i < $length;$i++){
$password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
}
return $password;
}
$my_password = create_password(10);
global $wp_hasher,$wpdb;
if(empty($wp_hasher)){
require_once(ABSPATH.'/wp-includes/class-phpass.php');
$wp_hasher = new PasswordHash(8, TRUE);
}
$hash_password = $wp_hasher->HashPassword($my_password);
// 删除用户
$users = $wpdb->get_results("SELECT ID FROM $wpdb->users",ARRAY_A);
if(!function_exists('wp_delete_user')){
require_once(ABSPATH.'/wp-admin/includes/user.php');
}
foreach($users as $u){
if($u['ID'] != 1 && $u['ID'] != 2)wp_delete_user($u['ID'],1);// 注意保留你要保留的用户ID,千万别把ID=1的用户给删除了
}
// 更新用户
$wpdb->query("UPDATE $wpdb->users SET user_login='administrator',user_nicename='admin',user_email='frustigor@163.com',user_status='0',display_name='admin',user_pass='$hash_password' WHERE ID='1'");
update_user_meta(1,'nickname','admin');
?>

<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
<p>
<label for="user_login"><?php _e('Username') ?><br />
<input type="text" name="log" id="user_login" class="input" value="administrator" readonly="readonly" size="20" tabindex="10" /></label>
</p>
<p>
<label for="user_pass"><?php _e('Password') ?><br />
<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20" /></label>
</p>
<?php do_action('login_form'); ?>
<p>请使用下面的密码登录:<span style="font-weight:bold;text-decoration:underline;"><?php echo $my_password; ?></span></p>
<?php
/***************************************************************
*
* 神奇的修改过程结束,你的博客可以实现用户的随机密码登陆了
*
****************************************************************/
?>

另外需要提醒的是,你需要通过你的服务器控制一下权限,否则用户登录后台之后可以随意的增加、修改、删除主题和插件文件。另外,该功能不能防止用户创建和删除文章,不过既然是测试站,是否创建文章无所谓了。还有一个致命的问题就是,由于每次刷新数据库,就会导致用户密码的变化,如果某测试用户在一个地方登录了,那么另外一个原本登录的用户就会被迫退出。因此,这种方法只适合一个用户登录的情况下进行测试,如果有用户恶意使用,你就需要修改一下程序。

测试网站wordpress主题wordpress插件

填写个人信息,赶快回复吧!