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作的文本留言本的例子(四)
Oct 09 PHP
php获得文件扩展名三法
Nov 25 PHP
php分页示例代码
Mar 19 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
php使用json_encode对变量json编码
Apr 07 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
php使用数组填充下拉列表框的方法
Mar 31 PHP
php+mysql实现无限级分类
Nov 11 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
thinkphp命名空间用法实例详解
Dec 30 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
Jul 21 PHP
PHP ADODB实现分页功能简单示例
May 25 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编写大型网站问题集
2007/03/06 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
Javascript中的神器——Promise
2017/02/08 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
Python实现的归并排序算法示例
2017/11/21 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
python对html过滤处理的方法
2018/10/21 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
俄罗斯儿童和青少年服装、鞋子及配件的在线商店:Orby
2020/02/20 全球购物
UML设计模式笔试题
2014/06/07 面试题
护士思想汇报
2014/01/12 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
Java实现简易的分词器功能
2021/06/15 Java/Android