Typecho不改核心代码实现自定义登录、注册功能

  • Typecho不改核心代码实现自定义登录、注册功能已关闭评论
  • 239 views
  • A+
所属分类:编码

关于本文

Typecho是一款很好的博客程序,虽然相对WordPress来说功能略显单一,但在日常使用中来说还是很够用的了,使用Typecho提供的各种接口、功能等,咱们还是可以完成很多事情的,就比如自定义登录、注册页面!

由于Typecho的接口并不如WordPress一般强大,想要对Typecho的一些核心功能进行操作是比较麻烦的,如果按照一般的常理来说,要完成登录、注册页面的自定义功能,那肯定得修改核心代码了,但这样又会造成后期更新的不便。

所以,如果能够在不更改核心代码的同时完成咱们想要实现的功能,就有了这一篇文章!

实现原理

要实现自定义的登录、注册页面,其实原理很简单,就是对原有的登录、注册页面进行“替换”!

看到这里的朋友千万别打我,慢慢看下去,康康这里所说的替换并不是说直接替换文件,而是通过一系列操作,在保留原有系统核心代码不变的情况下进行页面替换的!

而康康所谓的一系列操作,其实说开了非常简单,自己写两个主题自定义页面扔主题目录里,然后在后台添加独立页面,而这两个页面就是自己编写的登录、注册功能页面,最后把相关的所有登录、注册链接替换为这两个页面的链接就OK了!

Typecho流程分析

操作之前,咱们先对Typecho整个的登录、注册流程进行一下小小的分析,这样就方便接下来的编写、替换工作。

首先咱们知道,Typecho的登录文件是在admin下的login.php,注册文件是admin下的register.php。

首先看看登录文件,其实就是一个简单的表单,提交了三个参数:name、password、remember

而提交的地址就是一个登录的操作动作,这个动作在哪里呢?var/Widget/Login.php,就在这里,咱们打开看看!

文件中就只有一个方法action,在其中对登录所提交的参数进行验证,最主要的就是其中的两行代

再看看注册的流程,页面同样的是一个表单,不过不包含密码输入,这里就比贴代码了,咱们直接看看操作动作,ver/Widget/Register.php,同样的,比较重要的代码也不多,这里只列出这些代码,其他省略

OK,明白了基本的流程,咱们编写起来就方便多了!

登录界面编写

登录界面咱们需要的就是一个表单,最少提交两个参数:name和password,至于remember则是记住我的功能,需不需要自己决定。

这里只是一个最基本的表单功能,要如何美化则靠自己啦,这里康康只是进行最基本的演示而已,其中_这个参数是表单安全验证所用。

表单写好了,那提交到哪里呢?这里要看自己的需求,因为原版的登录过后,如果没有referer参数,则会跳转到后台,若您更改了后台路径,并且不想让别人知道,那就只能自己编写一个登录动作,然后提交到这里,如果不在意,则直接提交到原版登录动作就行!

这里康康就当作要保护后台路径,那么直接在这个文件中编写代码

其实就是把官方的动作几乎照抄了一遍,这样就能实现登录的功能,而且还能自己控制最终跳转的地址。

而注册页面也同样,建立一个表单,包含几个参数:name、mail、password、confirm,官方不支持自己输入密码,这里把password和confirm加入就能实现自定义密码了!

同样的,如果需要编写动作代码,则把官方的copy一份,不过其中有一点点小改动。

好了,代码写完了,把这两个文件扔到主题目录里,然后后台新建两个独立页面,再把登录、注册的链接更改为这两个独立页面地址,试试看是不是可以了?

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin