ThinkPHP验证码使用简明教程


Posted in PHP onMarch 05, 2014

一、首先需要在控制器中加入验证码方法admin/Lib/Action/LoginAction.class.php
知识点:
1、ob_clean函数用途
2、import方法调用think默认类库
3、Image类buildImageVerify方法使用

代码如下:

Public function verify(){
 ob_clean();
 //ob_clean函数 清空先前输出
 import('ORG.Util.Image');
 //import调用的是message/ThinkPHP框架目录下的扩展包Extend/Library/ORG/Util/中的Image.class.php类文件
 Image::buildImageVerify();
 //调用buildImageVerify方法生成验证码,默认参数为($length=4, $mode=1, $type='png', $width=48, $height=22, $verifyName='verify'),有兴趣的朋友可以研究下Image类
}

二、在模板文件中加入验证码模块admin/Tpl/Login/index.html
知识点:
1、验证码图片调用
2、js相关运行流程了解
3、__PUBLIC__常量

在密码输入框后加入如下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="__PUBLIC__/Js/jquery-1.7.2.min.js"></script>
//__PUBLIC__常量可以在页面加载后,“查看页面源文件”中找到定义的__PUBLIC__目录,默认为项目根目录message下的Public目录,下面会讲解如何自定义__PUBLIC__系统常量
//jquery文件,只有加载了这个文件才可以调用jquery的方法
<script type="text/javascript" src="__PUBLIC__/Js/login.js"></script>
//这里的具体代码会在下面贴出,其实只是定义了一个change_code函数,也就是更换验证码的异步操作(可以在不刷新页面的情况下更换)
<title>Message Board BackGround</title>
</head>
<body>
 <form action="{:U('admin.php/Login/login')}" method="post" name="back_login" >
  <h2>简易后台登录系统</h2>
  用户名:<input type='username' name='username' id='username' />
  <br />
  密码:<input type='password' name='password' id='password' />
  <br />
  验证码:<input type="code" name="code"/> 
  //这里需要注意将type设置为code,name命名为code
  <img src="{:U('Admin/Login/verify','','')}" id="code"/>
  //img标签下的src就是调用Login控制器中的veryfy方法
  //后面的两个参数留空是必须的,其中第2个没实际意义,主要是为了第3个参数留空,这样设置可以取消伪静态后缀名,否则默认的伪静态后缀名为html,将会导致无法正常加载图片
  <a href="javascript:void(change_code(this));">看不清</a>
  //这里调用了个
  <br />
  <input type="submit"  value="登录"/>
 </form>
</body>
</html>

login.js文件在message/Public/目录下
文件内容如下:
verifyURL = 'http://localhost/message/admin.php/Login/verify';
//定义验证码路径
function change_code(obj){
 $("#code").attr("src",verifyURL+'/'+Math.random());
 //动态生成验证码方法,有兴趣的朋友可以深入研究下jq方法
 return false;
}

另:__PUBLIC__文件定义在message/admin/Conf/config.php
在配置中,加入如下内容,即可改变__PUBLIC__路径
配置如下:

//常量相关配置
'TMPL_PARSE_STRING' => array(
 '__PUBLIC__' => __ROOT__ . '/' . APP_NAME . '/Public',
 //路径改变为message/admin/Public,刷新页面,验证码依然可以刷新,则表明js生效,也可“查看页面源文件”
),
PHP 相关文章推荐
Smarty安装配置方法
Apr 10 PHP
删除数组元素实用的PHP数组函数
Aug 18 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
PHP读取PDF内容配合Xpdf的使用
Nov 24 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
php通过修改header强制图片下载的方法
Mar 24 PHP
php简单统计字符串单词数量的方法
Jun 19 PHP
8个PHP数组面试题
Jun 23 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
May 13 PHP
php mongodb操作类 带几个简单的例子
Aug 25 PHP
PHP简单装饰器模式实现与用法示例
Jun 22 PHP
ThinkPHP分页类使用详解
Mar 05 #PHP
php统计文章排行示例
Mar 04 #PHP
php不使用插件导出excel的简单方法
Mar 04 #PHP
php无限遍历文件夹示例分享
Mar 04 #PHP
关于js和php对url编码的处理方法
Mar 04 #PHP
php面向对象中的魔术方法中文说明
Mar 04 #PHP
thinkphp实现多语言功能(语言包)
Mar 04 #PHP
You might like
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
function.inc.php超越php
2006/12/09 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
完美的php分页类
2017/10/24 PHP
js以对象为索引的关联数组
2010/07/04 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
2012/03/05 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
Python的净值数据接口调用示例分享
2016/03/15 Python
Python类属性的延迟计算
2016/10/22 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
如何写python的配置文件
2020/06/07 Python
Python容器类型公共方法总结
2020/08/19 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
财产公证书格式
2014/04/10 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
市级文明单位申报材料
2014/05/07 职场文书
大学课外活动总结
2014/07/09 职场文书
大学生学习计划书
2014/09/15 职场文书
作风建设年度心得体会
2014/10/29 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
分享Python异步爬取知乎热榜
2022/04/12 Python