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 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
文件上传的实现
Oct 09 PHP
一个用php3编写的简单计数器
Oct 09 PHP
PHP编程中八种常见的文件操作方式
Nov 19 PHP
php 获取远程网页内容的函数
Sep 08 PHP
php array的学习笔记
May 10 PHP
php写的AES加密解密类分享
Jun 20 PHP
Yii中的relations数据关联查询及统计功能用法详解
Jul 14 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
PHP7原生MySQL数据库操作实现代码
Jul 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
PHP 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
express默认日志组件morgan的方法
2018/04/05 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
Python中zfill()方法的使用教程
2015/05/20 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
说一说Python logging
2016/04/15 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
python 默认参数相关知识详解
2019/09/18 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
如何写通讯稿
2015/07/22 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书