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 相关文章推荐
做一个有下拉功能的留言版
Oct 09 PHP
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
Linux下创建nginx脚本-start、stop、reload…
Aug 03 PHP
php计划任务之ignore_user_abort函数实现方法
Jan 08 PHP
php微信高级接口群发 多客服
Jun 23 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 PHP
PHP不使用内置函数实现字符串转整型的方法示例
Jul 03 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
layui数据表格自定义每页条数limit设置
Oct 26 PHP
PHP代码覆盖率统计详解
Jul 22 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 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
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
PHP最常用的正则表达式
2017/02/13 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
javascript实现拖放效果
2015/12/16 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
python搭建简易服务器分析与实现
2012/12/15 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
Python 可视化神器Plotly详解
2020/12/26 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
医学院毕业生自荐信
2013/11/08 职场文书
数控技术专科生自我评价
2014/01/08 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
商场促销活动策划方案
2014/08/18 职场文书