怎么在ThinkPHP中实现一个验证码和分页功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使得php经久不衰。
一、验证码:
导入验证码类,在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 >总共:%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中实现一个验证码和分页功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。