后端开发|php教程
typecho
后端开发-php教程
xyz聚合盒子源码,ubuntu安装软件更新,爬虫账号加密了,php js aes,seo868lzw
typecho让用户登录后跳转到前台页面的方法:
局域网投票源码,vscode纯黑主题,ubuntu红帽系统,tomcat8.0管理,class爬虫,php跳转时间,seo是哪个专业的,收费图片网站源码,国外h5网站模板下载lzw
typecho让用户登录后跳转到前台页面而不是进入后台?另外默认的用户注册只输入用户名和邮件地址,我先添加密码和昵称项该如何实现呢?
折红包完整源码,ubuntu学编程软件,tomcat配置文件启动,net 爬虫组件,php 做消息队列,沈阳品牌抖音seo优化多少钱lzw
我的方法是修改/var/Widget/Register.php和/admin/register.php两个文件,最好是先做好备份(不会写插件不要吐槽…
到/var/Widget/Register.php这个文件,看到41-47行。
/** 如果请求中有password */if (array_key_exists(password, $_REQUEST)) { $validator->addRule(password, equired, _t(必须填写密码)); $validator->addRule(password, minLength, _t(为了保证账户安全, 请输入至少六位的密码), 6); $validator->addRule(password, maxLength, _t(为了便于记忆, 密码长度请不要超过十八位), 18); $validator->addRule(confirm, confirm, _t(两次输入的密码不一致), password);}
发现路由里面本来就有关于密码的请求处理。
这就非常方便了,根本不用我们从零开始构建。
再往下找,可以找到一行:
$generatedPassword = Typecho_Common::randString(7);
randString?是不是Random String即随机字符串的缩写呢?翻了一下/var/Typecho/Common.php中的实现发现正好就是。
还有文件末尾的:
$this->widget(Widget_Notice)->set(_t(用户 %s 已经成功注册, 密码为 %s, $this->screenName, $generatedPassword), success);
还记得这个字符串是注册成功后上方弹出的文字框里的内容吗?看这参数的顺序,我们不难猜出这个$generatedPassword即为密码。
那么我们现在要做的事情就有两个:
1.修改注册时的表单,使它发送的请求中带有password。
2.接收请求时,如果请求中有password则设置,否则还是按照原来的样子使用随机字符串。
打开注册页面,从地址栏里就可以看得到我们的注册文件位于/admin/register.php。 看到20-27行
" value="" autofocus=""> " value="">
照猫画虎,在27行之后添加:
" value="" autofocus=""> " value="">
根据路由信息,我们需要发送password和confirm的两个请求内容。
这样我们的表单部分就修改完了,刷新页面可以看到多了两个文本框。
之后再来到/var/Widget/Register.php,找到有这么一段代码
$dataStruct = array( ame=> $this->request->name, mail=> $this->request->mail, screenName=> $this->request->name, password => $hasher->HashPassword($generatedPassword), created => $this->options->time, group => subscriber);
不难看出可以通过$this->request->请求名称来获取请求内容。
那么我们找到刚才的:
$generatedPassword = Typecho_Common::randString(7);
把它改成:
/** 如果请求中含有password则设置为密码,否则随机密码 */if (array_key_exists(password, $_REQUEST)) { $generatedPassword = $this->request->password;}else{ $generatedPassword = Typecho_Common::randString(7);}
至此所有工作就已经完成了,我们就可以在注册页面自定义密码了。
更多相关技术文章,请访问PHP中文网!