详解实现Typecho前台注册及登录

模板开发以及发布测试

版主: seita

回复
头像
WayTWcom
帖子: 1
注册时间: 2018年 2月 14日 18:56
联系:

详解实现Typecho前台注册及登录

帖子 WayTWcom »

Typecho是目前开源博客程序中最轻量级的一个,最新版本为1.1,最重要的是国产的,深受国内好多博主的喜爱。设计者的思路非常明显,程序针对个人用户,前台只提供浏览,所有的操作均需要进入后台管理。这一点对于个人用户来说完全能够满足要求。但是网络是一个公众平台,需要与人交流,尤其需要与互不相识的人交流,而Typecho虽然提供了注册功能,但是用户注册后就进入和后台,虽然后台没有提供使用功能,但是也让大家难免担忧安全性问题,同时也不满足用户浏览的常规体验。

实现前台登录
首先,登录是个很简单的功能,Typecho的登录思路如下:进入登录页面,提交一个含有用户名和密码表单,由程序判断用户名和密码是否满足要求,不满足要求则返回错误信息,满足要求则地址重定向进入后台程序。了解了设计思路以后实现前台登录就很简单了。
以Typecho1.1版本为例,我们打开登录页面,看源码,登录页面在admin/login.php,如下图所示:

图片

以上代码为Typecho的登录表单,通过<form action="<?php $options->loginAction(); ?>" method="post" name="login" role="form">我们可以知道用户信息是提交到$options的一个loginAction()方法中进行处理,来判断用户名和密码是否满足要求的,先不去管他如何判断的,知道了提交给谁就可以了。
接下来我们就可以在前台建立登录表单了,只要登录表单的信息提交到$options->loginAction();就可以了。由于单独在前台建立登录页面牵扯到Typecho的路由指向问题,在这里我们先从简单的开始,直接在前台模板中增加,由于我修改了模板,我的登录表单是通过bootstrap的模态框来实现的,代码如下:

图片

关于模态框的增加,大家可以查看bootstrap文档来实现,这里我就不讲了。在这里要注意的是我的<form action="<?php $this->options->loginaction();?>"表单的提交前面增加了$this->,这是PHP的语法,大家可以理解为在这里调用options->loginaction()的方法就好了。同时还要注意我在确认登录后增加了一个隐藏表单<input type="hidden" name="referer" value="<?php $this->options->siteUrl();?>" />这个意思是提交表单后URL地址重定向到站点前台主页,因为在options->loginaction()的方法中,原作者在最后增加了判断登录成功后地址直接重定向到了后台,为了不修改源码,我增加了此句。
至此,前台登录表单基本完成,最终效果如下:


图片

但是此时大家会发现无论登录成功或者失败都没有提示信息,原作者的提示信息是通过JS来实现的,我们将在下一节中继续讲解。大家可以根据登录表单的制作方法制作简单的注册表单,我们也会在后续的章节中讲解在注册表单中增加注册信息。

最最重要的,给我的站点做个广告http://www.waytw.com,正在试用测试。
下面是我做的typecho的一个简洁模板的截图,由于改了源码,就不公开提供了。
黑白简洁模板
黑白简洁模板
04.png (221.41 KiB) 查看 3935 次
回复