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 相关文章推荐
PHP个人网站架设连环讲(二)
Oct 09 PHP
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 PHP
浅谈php命令行用法
Feb 04 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
PHP反射API示例分享
Oct 08 PHP
Linux平台PHP5.4设置FPM线程数量的方法
Nov 09 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 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
咖啡常见的种类
2021/03/03 新手入门
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
NO3第三帝国留言簿制作过程
2006/10/09 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
js实现每日签到功能
2018/11/29 Javascript
js数组去重的方法总结
2019/01/18 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
Python中unittest用法实例
2014/09/25 Python
python2.7实现爬虫网页数据
2018/05/25 Python
对python list 遍历删除的正确方法详解
2018/06/29 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
Hotels.com中国区:好订网
2016/08/18 全球购物
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
学校安全教育制度
2014/01/31 职场文书
先进党支部申报材料
2014/12/24 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android