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 身份证号验证函数
May 07 PHP
基于php实现长连接的方法与注意事项的问题
May 10 PHP
php环境套包 dedeampz 伪静态设置示例
Mar 26 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
php生成静态html页面的方法(2种方法)
Sep 14 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
解决php写入数据库乱码的问题
Sep 17 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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php MessagePack介绍
2013/10/06 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
浅析javascript 定时器
2014/12/23 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
python中map、any、all函数用法分析
2015/04/21 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
python中pivot()函数基础知识点
2021/01/03 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
《夏夜多美》教学反思
2014/02/17 职场文书
2014国培学习感言
2014/03/05 职场文书
勾股定理课后反思
2014/04/26 职场文书
中层干部培训方案
2014/06/16 职场文书
文明旅游倡议书
2015/04/28 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
行政答辩状范文
2015/05/21 职场文书
初中家长意见
2015/06/03 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
MySQL约束超详解
2021/09/04 MySQL