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 相关文章推荐
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
PHP 事务处理数据实现代码
May 13 PHP
Admin generator, filters and I18n
Oct 06 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
php获取一个变量的名字的方法
Sep 05 PHP
Laravel 5 学习笔记
Mar 06 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
深入理解PHP中的count函数
May 31 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
详解Yii2高级版引入bootstrap.js的一个办法
Mar 21 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 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中数组合并的两种方法及区别介绍
2012/09/14 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
浅谈开发eslint规则
2018/10/01 Javascript
python妹子图简单爬虫实例
2015/07/07 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
Django 路由控制的实现代码
2018/11/08 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
Python操作Excel的学习笔记
2021/02/18 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
外语专业毕业生个人的自荐信
2013/11/19 职场文书
简历中个人求职的自我评价模板
2013/11/29 职场文书
2014全国两会学习心得体会1000字
2014/03/10 职场文书
爱国口号
2014/06/19 职场文书
公司外出活动方案
2014/08/14 职场文书
小学生毕业评语
2014/12/26 职场文书
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js