WordPress可以允许用户注册,但是默认的会把注册成功用户的密码发送到注册者的邮箱。
但是我的主机并不能实现发送邮件的功能,也就是通常所说的mail()函数。所以,注册功能形同虚设,虽然数据库里面会多出来一个用户,但是你永远也不会知道密码到底是多少,今天也跟着别人hacks一下,哈哈^_^,破解如下:
打开WordPress程序根目录下的wp-login.php文件:
1、搜索下面这句,位于 register_new_user 函数中。用于注册成功后发送通知。找到后把它注释掉(注释方法:在代码的前面加 “/*” ,以及代码的后面加 “*/” 不包含引号)。
wp_new_user_notification($user_id, $user_pass);
2、并在上面这句的下一行加上两句:
setcookie(“u”, $user_login);
setcookie(“user_pass”, $user_pass);
这两句的位置很重要,否则会报错cannot modify header information-header already sent by,应该放在
header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset'));之后。
目的是把注册时填写的用户名,以及wordpress随机生成的密码写入cookies,以便在后面调用。
3、搜索下面这句:
$errors->add(‘registered’, __(‘Registration complete. Please check your e-mail.’), ‘message’);
并把它替换为:
$errors->add(‘registered’, __(‘^_^注册成功!用户名:’.$_COOKIE["u"].’ 密码:’.$_COOKIE["user_pass"].’(登录后自行修改成您便于记忆的密码)’), ‘message’);
到此,就修改完成了。保存,上传。
还有一处建议修改
<?php _e(‘A password will be e-mailed to you.’) ?>
替换里面的文字,以防用户注册完毕后关闭注册页而收不到密码。
我替换的文字为
<?php _e(‘注册完毕后,密码会自动生成在本页。’) ?>
注:如果出现乱码,请将文件转码为UTF-8(我用的EditPlus默认是ANSI格式,会出现乱码)。
记得以前织梦的时候,登录密码忘了,查数据库,查出来的MD5~那密码还很长~~后来在网上掏钱破了~
这方法不错!
不错,很有帮助
呵呵,我都没有想过开放注册这回事…朋友新年快乐哦
这个功能暂时用不到啊
现在都用Q绑定。。。
還好自己的木有遇到這樣的情況
不過值得標記一下 以備不時只需
快过年了,好冷清啊
看起来不错呢,学习一下!
掸落往日忙碌的尘埃,尽享亲人团聚的温馨,抚平工作中心灵的创伤,树立再次扬帆的信心。除夕又至,让好运为生活伴奏,愿你来年快乐久久
站点不错 呵呵
个人博客的话 感觉这个注册的功能有点鸡肘
多作者还有点用处