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
下拉列表多级联动dropDownList示例代码
Jun 27 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
php利用cookie实现自动登录的方法
Dec 10 PHP
Laravel 5框架学习之表单
Apr 08 PHP
php判断当前操作系统类型
Oct 28 PHP
php 无限级分类 获取顶级分类ID
Mar 13 PHP
PHP数组函数知识汇总
May 12 PHP
php处理单文件、多文件上传代码分享
Aug 24 PHP
php实现的mongoDB单例模式操作类
Jan 20 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
PHP常用函数之base64图片上传功能详解
Oct 21 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 __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
PHP设计模式 注册表模式
2012/02/05 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
介绍Python的@property装饰器的用法
2015/04/28 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
在Django中创建动态视图的教程
2015/07/15 Python
Python开发的实用计算器完整实例
2017/05/10 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
python networkx 根据图的权重画图实现
2019/07/10 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
Python图片的横坐标汉字实例
2019/12/04 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
Python操作Jira库常用方法解析
2020/04/10 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
Html5定位终极解决方案
2020/02/05 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
幼儿园实习自我鉴定
2013/12/15 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
离职保密承诺书
2014/05/28 职场文书
八年级历史教学反思
2016/02/19 职场文书
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers