ThinkPHP验证码和分页实例教程


Posted in PHP onAugust 22, 2014

本文实例讲述了ThinkPHP常用的两个功能:验证码与分页。在ThinkPHP的项目开发中非常常见,具有很高的实用价值。完整实例分享给大家,供大家参考。具体如下:

一、验证码:

导入验证码类,在aoli\ThinkPHP\Lib\ORG\Util\Image.class.php里有验证码方法   

1.英文验证码:

buildImageVerify($length,$mode,$type,$width,$height,$verifyName)

参数如下:

length :验证码的长度,默认为 4 位数
mode :验证字符串的类型,默认为数字,其他支持类型有 0 字母 1 数字 2 大写字母 3 小写字母 4
中文 5 混合(去掉了容易混淆的字符 oOLl 和数字 01 )
type :验证码的图片类型,默认为 png
width :验证码的宽度,默认会自动根据验证码长度自动计算
height :验证码的高度,默认为 22
verifyName :验证码的 SESSION 记录名称,默认为 verify

2.中文验证码:

GBVerify ($length,$type,$width,$height,$fontface,$verifyName)

参数如下:

length :验证码的长度,默认为 4 位数
type :验证码的图片类型,默认为 png
width :验证码的宽度,默认会自动根据验证码长度自动计算
height :验证码的高度,默认为 50
fontface :使用的字体文件,使用完整文件名或者放到图像类所在的目录下面,默认使用的字体文件是 simhei.ttf (该文件可以从 window 的 Fonts 目录下面找到)
verifyName :验证码的 SESSION 记录名称,默认为 verify

3.如果无法显示验证码,请检查:

①.PHP 是否已经安装 GD 库支持; 
②.输出之前是否有任何的输出(尤其是 UTF8 的 BOM 头信息输出);
③.Image 类库是否正确导入;
④.如果是中文验证码检查是否有拷贝字体文件到类库所在目录;

4.action部分:

CommonAction.class.php页面代码如下:

<?php
class CommonAction extends Action{
  function verify(){    
    import('ORG.Util.Image');
    //英文验证码
    //Image::buildImageVerify(5,5,gif,90,30,'verify');
    //中文验证码
    Image::GBVerify();
  }  
  
}
?>

5.view模板部分:

模板index.html页面如下:

验证码:<input type="text" name="verify" /><img src="__APP__/common/verify" onclick="show(this)" /><br />
 <input type="submit" value="注册" />
</form>

<script type="text/javascript">
  function show(obj){
    obj.src="__APP__/common/verify/random/"+Math.random();    
  }
</script>

6.控制器:

控制器UserAction.class.php如下:

//验证码验证
if($_SESSION['verify']!=md5($_POST['verify'])){
  $this->error('验证码不正确');   
}

二、分页:

1.导入分页类,在aoli\ThinkPHP\Lib\ORG\Util\Page.class.php里有验证码方法  

2.action部分:

UserAction.class.php页面如下:

function index(){
  import('ORG.Util.Page');//引入分布类
  $user=M('user');
  $count=$user->count();
  $page=new Page($count,3);//一页显示5条
  $page->setConfig('theme','<div style="font-weight:bold;">总共:%totalRow%%header% %nowPage%/%totalPage%页 %first% %upPage% %prePage% %linkPage% %nextPage% %downPage% %end%</div>');
  $show=$page->show();
  $list=$user->field(array('id','username','createip'))->order('id desc')->limit($page->firstRow.','.$page->listRows)->select();
  $this->assign('alist',$list);
  $this->assign('page',$show);
  $this->display();
}

3.view模板部分:

模板页index.html页面如下:

<volist name="alist" id="vo">
 <li><span>ID:</span>{$vo['id']}<span>用户名:</span>{$vo['username']}<span>注册ip:</span>{$vo['createip']}<a href="__URL__/del/id/{$vo['id']}">删除</a>  <a href="__URL__/edit/id/{$vo['id']}">编辑</a></li>
</volist>
{$page}

感兴趣的读者可以调试运行一下本文ThinkPHP验证码与分页实例,相信会有新的收获。

PHP 相关文章推荐
收藏的一个php小偷的核心程序
Apr 09 PHP
PHP分页详细讲解(有实例)
Oct 30 PHP
php foreach正序倒序输出示例代码
Jul 01 PHP
ThinkPHP提交表单时默认自动转义的解决方法
Nov 25 PHP
php rsa加密解密使用详解
Jan 14 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
php发送http请求的常用方法分析
Nov 08 PHP
PHP基于回溯算法解决n皇后问题的方法示例
Nov 07 PHP
如何使用php生成zip压缩包
Apr 21 PHP
ThinkPHP文件上传实例教程
Aug 22 #PHP
ThinkPHP中ajax使用实例教程
Aug 22 #PHP
ThinkPHP中的常用查询语言汇总
Aug 22 #PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 #PHP
ThinkPHP中的三大自动简介
Aug 22 #PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 #PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 #PHP
You might like
php 读取文件乱码问题
2010/02/20 PHP
php 高性能书写
2010/12/11 PHP
php中对2个数组相加的函数
2011/06/24 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
PHP强制转化的形式整理
2020/05/22 PHP
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
JQuery导航菜单选择特效
2016/04/11 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
python中将字典转换成其json字符串
2014/07/16 Python
Django验证码的生成与使用示例
2017/05/20 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
天网工程实施方案
2014/03/26 职场文书
安全生产专项整治方案
2014/05/06 职场文书
安全生产宣传标语
2014/06/06 职场文书
学校献爱心活动总结
2014/07/08 职场文书
调研汇报材料范文
2014/08/17 职场文书
个人维稳承诺书
2015/05/04 职场文书
电影建党伟业观后感
2015/06/01 职场文书
工伤调解协议书
2016/03/21 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js