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 Undefined index的问题
Jun 01 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
php验证手机号码
Nov 11 PHP
PHP新特性详解之命名空间、性状与生成器
Jul 18 PHP
PHP弱类型语言中类型判断操作实例详解
Aug 10 PHP
php实现在线考试系统【附源码】
Sep 18 PHP
PDO::rollBack讲解
Jan 29 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 PHP
PHP针对redis常用操作实例详解
Aug 17 PHP
php7性能提升的原因详解
Oct 13 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
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
Javascript typeof 用法
2008/12/28 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
webpack3之loader全解析
2017/10/26 Javascript
python fabric实现远程操作和部署示例
2014/03/25 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
python3实现表白神器
2019/04/09 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
pycharm实现猜数游戏
2020/12/07 Python
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
应届毕业生求职信范例分享
2013/12/17 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
组工干部演讲稿
2014/09/02 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
校运会新闻稿
2015/07/17 职场文书
退伍军人感言
2015/08/01 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
Nginx进程调度问题详解
2021/09/25 Servers