第二讲 实现Typecho前台注册

时间:2024-03-26 10:27:56
前文已经讲过如何实现Typecho前台登录,接着讲一下实现Typecho前台注册。
实现前台注册
我们知道Typecho注册是需要在后台打开注册功能才可以实现的。因此我们需要去后台管理先打开注册功能。
打开注册功能后登录注册页可以看到如下画面:
第二讲 实现Typecho前台注册

以Typecho1.1版本为例,我们打开注册页面,Typecho只提供用户名和邮箱的注册形式,注册完成后,系统提供一个随机密码供用户修改,这样做非常不方便,下面提供修改方法。看源码找注册表单,注册页面在/admin/register.php,如下图所示:
第二讲 实现Typecho前台注册

以上代码为Typecho的注册表单,通过<form action="<?php $options->registerAction(); ?>" method="post" name="register" role="form">我们可以知道用户信息是提交到$options的一个registerAction()方法中进行处理。找到\var\Widget\ Options.php文件打开查看registerAction()方法,如下图:
第二讲 实现Typecho前台注册
 
通过这里,我们可以看到这个方法是调用了\var\Widget\ Register.php进行了数据处理,打开这个文件。可以看到如下信息:
第二讲 实现Typecho前台注册
 
看来Typecho已经考虑很多关于注册信息的验证,有用户名、昵称、电子邮箱、密码验证等,我们新的注册表单就以此为基础开始创建吧,我们仍然用模态框实现:
第二讲 实现Typecho前台注册

在这里要注意的是我的<form action="<?php $this->options->registerAction();?>" method="post" name="register" role="form">表单的提交前面增加了$this->。
完成效果如图:
第二讲 实现Typecho前台注册

到这里,还没完,因为你现在注册提交后会发觉你虽然注册了密码,但是系统仍然会给你提供一个随机密码,而注册的密码确不管用。这是为什么呢?
别急,打开\var\Widget\ Register.php ,查找如下这段代码:

第二讲 实现Typecho前台注册

这段代码是说系统生成了一个随机7位数的密码,将这段代码改为:
第二讲 实现Typecho前台注册

好了,终于可以用正常的用户名和密码注册和登录了。但是还没完,为什么没有错误信息提示呢?由于Typecho信息处理机制是通过JS实现的,我们下一节再详细讲解。
原创文章
转载请注明转自www.waytw.com(树世界)