Thinkphp验证码的实现 标签扩展
2017-12-11 23:11
405 查看
用Thinkphp实现验证码很简单,但如果一个项目有很多地方要用到它呢,这时通过标签拓展来实现验证码就成了首选。
下面小编通过一个栗子,来让大家学会如何去实现~
虽然小编用的是thinkphp3.2.1版本展示的,不过不用担心,其他版本的thinkphp目录结构稍有变化,只要读懂这个栗子,举一反三类推即可。
1、首先在Application/Home/Controller中创建
PublicController.class.php
代码如下:
2、其次 在ThinkPHP\Library\Think\Template\TagLib 创建TagLibMessage.class.php
代码如下:
3、最后是html部分:
(1)在涉及到验证码的Html页面,将
(2)之后在适当位置加入以下html代码即可
下面小编通过一个栗子,来让大家学会如何去实现~
虽然小编用的是thinkphp3.2.1版本展示的,不过不用担心,其他版本的thinkphp目录结构稍有变化,只要读懂这个栗子,举一反三类推即可。
1、首先在Application/Home/Controller中创建
PublicController.class.php
代码如下:
//通过code方法来显示验证码,引入ORG.Util.Image类库和ORG.Util.String类库。 <?php class PublicController extends Controller { public function code(){ $w=isset($_GET['w'])?$_GET['w']:30; $h=isset($_GET['h'])?$_GET['h']:30; import('ORG.Util.Image'); Image::buildImageVerify(2,1,'png',$w,$h,'code'); //Image类的buildImageVerify方法用于生成验证码 } } ?>
2、其次 在ThinkPHP\Library\Think\Template\TagLib 创建TagLibMessage.class.php
代码如下:
<?php Class TagLibMessage extends TagLib{ //必须继承于TagLib protected $tags = array( // 定义code 标签 'code'=>array('attr'=>'width,height','close'=>0), //attr:标签支持的属性列表,用逗号隔开 ); //每个标签的解析方法在定义的时候需要添加“_”前缀,可以传入两个参数,属性字符串和内容字符串(针对非闭合标签)。必须通过return 返回标签的字符串解析输出 public function _code($attr) { $tag = $this->parseXmlAttr($attr,'code');//表示分析input标签的标签定义,并返回input的所有标签属性 $width = $tag['width']; $height = $tag['height']; $str = "<img src='__APP__/Public/code?w={$width}&h={$height}' onclick='this.src=this.src+\"?\"+Math.random()'/>"; return $str; } } ?>
3、最后是html部分:
(1)在涉及到验证码的Html页面,将
<taglib name='Message' /> //Message 与TagLibMessage保持一致这段代码插入到该页面html代码的第一行(必须在第一行)
(2)之后在适当位置加入以下html代码即可
验证码:<input type='text' name='code'/> <Message:code width='30' height='30'/> //Message下的code标签 <br/>
相关文章推荐
- thinkphp5.0调用云片接口实现发送短信验证码找回密码功能
- thinkphp实现验证码(tp5同样可以实现)
- 使用 chrome 扩展 Vimium 实现快捷键关闭其他标签页
- ThinkPHP扩展,实现Redis的CURD操作。
- thinkphp中的验证码的实现
- ThinkPHP5.0安装MongoDb和验证码扩展包
- 【IOS】扩展UIImageViewEx实现:手势移动,旋转,缩放(附带一个收缩的文字标签功能)
- 使用ThinkPHP扩展,实现Redis的CURD操作。
- 学习笔记---使用prototype.js扩展struts标签实现xmlhttprequest
- thinkPHP中验证码的简单实现方法
- 使用ThinkPHP扩展,实现Redis的CURD操作。
- thinkPHP3.1验证码的简单实现方法
- ThinkPHP3.1实现中文验证码
- 使用ThinkPHP实现生成/校验验证码功能
- 用thinkphp实现验证码
- ThinkPHP实现验证码过程
- thinkphp3.2实现在线留言提交验证码功能
- javascript修改IMG标签的SRC实现验证码火狐不正常
- Extjs 简单扩展 Component 实现点击刷新的验证码。
- thinkphp标签实现bootsrtap轮播carousel实例