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
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
分享下PHP register_globals 值为on与off的理解
Sep 26 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
ThinkPHP视图查询详解
Jun 30 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
php图片的二进制转换实现方法
Dec 15 PHP
php如何实现只替换一次或N次
Oct 29 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
php中strlen和mb_strlen用法实例分析
Nov 12 PHP
PHP explode()函数用法讲解
Feb 15 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 咖啡文化
php生成图片验证码的实例讲解
2015/08/03 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
Python中操作符重载用法分析
2016/04/29 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
windows下添加Python环境变量的方法汇总
2018/05/14 Python
如何用Python合并lmdb文件
2018/07/02 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
关于Python解包知识点总结
2020/05/05 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
Joules美国官网:出色的英国风格
2017/10/30 全球购物
办公室副主任职责范本
2014/03/08 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
给校长的建议书范文
2015/09/14 职场文书
《秋思》教学反思
2016/02/23 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
Python访问Redis的详细操作
2021/06/26 Python