欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ThinkPHP验证码和分页实例教程

程序员文章站 2023-11-23 18:58:22
本文实例讲述了thinkphp常用的两个功能:验证码与分页。在thinkphp的项目开发中非常常见,具有很高的实用价值。完整实例分享给大家,供大家参考。具体如下: 一、验...

本文实例讲述了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验证码与分页实例,相信会有新的收获。