在phpcms模板页面中如何调用验证码以及实现验证码验证?
2017-08-05 17:11
393 查看
问题描述:
不管是在phpcms的模板制作还是做某些功能模块的二次开发时,我们经常在一些表单中用到调用验证码,那么具体我们改如何调用呢?解决方法:
在phpcms网站中使用验证码我们要考虑前端模板页面中如何调用验证码和后台程序中如何验证两个方面:一、在模板中,调用验证码的代码如下:
<label for="code">验证码</label> <input type="text" id="code" name="code" size="10"> {form::checkcode('code_img', '4', '14', 100, 30)}
注意,从标签中可知是使用了form类中的checkcode方法,那么就要确保此模板所在的控制器文件中已经调用了该类,调用方法如下:
pc_base::load_sys_class('form', '', 0);
此类文件位置/phpcms/libs/classes/form.class.php,你可以通过查看此文件中的checkcode方法参数注释来了解各参数所代表的意义。
二、在后端控制器文件php程序中,演示代码如下:
defined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_sys_class('form','', 0); class index { public function init(){ if(isset($_POST['dosubmit'])){ //提交数据 //启动session $session_storage = 'session_'.pc_base::load_config('system','session_storage'); pc_base::load_sys_class($session_storage); //验证码 if (($_SESSION['code'] != strtolower($_POST['code'])) || empty($_SESSION['code'])) { showmessage("验证码错误"); } else { $_SESSION['code'] = ''; }
这里我们注意三点:
第二行,不要忘记引入form类;
第7、8、9行,在读取session数据前先引入session存储配置与启动对应类(一般是mysql);
判断session的if条件即将表单填入的code值与session中的code值进行对比;
PS:大家还可以参考phpcms系统中原有的调用表单的地方进行研究学习或参照,
例如会员注册模板页(/phpcms/templates/default/member/register.html)
以及对应的后台php文件(phpcms/modules/member/index.php中的register方法).
原帖地址
相关文章推荐
- 用邻接表或vector实现存边以及具体如何调用[模板]
- 关于字符和数字类型的索引,Oracle如何实现内部自动转换以及索引使用的验证测试
- WPF [调用线程无法访问此对象,因为另一个线程拥有该对象。] 解决方案以及如何实现字体颜色的渐变
- 黄聪:如何在wordpress任何一个页面调用“插入图片”按钮,实现上传图片功能
- 纯html页面如何提交、传递参数、以及对身份进行验证
- 关于javascript中变量是如何存储调用、以及函数的继承实现
- 如何在Asp.Net1.1中实现页面模板(所谓的MasterPage技术)
- 【转】WPF [调用线程无法访问此对象,因为另一个线程拥有该对象。] 解决方案以及如何实现字体颜色的渐变
- win8,win8.1的日记本应用(包含页面跳转)以及如何调用语音来朗读文本
- WPF [调用线程无法访问此对象,因为另一个线程拥有该对象。] 解决方案以及如何实现字体颜色的渐变
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- 黄聪:如何在wordpress任何一个页面调用“插入图片”按钮,实现上传图片功能
- 如何实现全国全网验证码类短信接口的调用?
- WPF [调用线程无法访问此对象,因为另一个线程拥有该对象。] 解决方案以及如何实现字体颜色的渐变
- java实现验证码生成,解决在页面验证时候session获得的总是前一次值的问题
- DedeEIMS如何实现中英文调用不同排版主页/栏目页面
- 单纯的html页面如何提交,传递参数,以及对身份的验证
- PPC中如何实现C以及汇编的远程调用
- DEDECMS模板如何调用arclist标签实现首页分页