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 相关文章推荐
论坛头像随机变换代码
Oct 09 PHP
PHP4实际应用经验篇(4)
Oct 09 PHP
收集的php编写大型网站问题集
Mar 06 PHP
phpMyAdmin 安装教程全攻略
Mar 19 PHP
php str_replace的替换漏洞
Mar 15 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
Dec 18 PHP
PHP 字符串正则替换函数preg_replace使用说明
Jul 15 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
Apr 24 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
PHP实现文件上传下载实例
Oct 18 PHP
php array_slice 取出数组中的一段序列实例
Nov 04 PHP
PHP Trait功能与用法实例分析
Jun 03 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
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
PHP对字符串的递增运算分析
2010/08/08 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
Javascript 对象的解释
2008/11/24 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
Django重设Admin密码过程解析
2020/02/10 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
Python中格式化字符串的四种实现
2020/05/26 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
德国购买门票网站:ADticket.de
2019/10/31 全球购物
应届大学生自荐信
2013/12/05 职场文书
商铺租房协议书范本
2014/12/04 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
如何理解python接口自动化之logging日志模块
2021/06/15 Python
Golang入门之计时器
2022/05/04 Golang