首页 > php教程 > php手册 > 正文

tp5验证码

php中文网
发布: 2016-06-20 08:42:47
原创
2533人浏览过

tp5验证码
类文件位于extend/other/Captcha.php<br><br><br><br>        //控制器中 获取验证码<br>        public function get_captcha(){    <br>         //使用memcheck 设置session    <br>         Session::init(['prefix'=&gt; 'wll_','type'=&gt; '','auto_start' =&gt; true]);<br>         $captcha = new \other\Captcha(86,48,4);<br>         echo $captcha-&gt;showImg();        <br>         Session::set('code',$captcha-&gt;getCaptcha());<br>         exit;    <br>     }<br><br><br><br><br> 模块中:  <img alt="tp5验证码" ><br><br><br><br><br> echo Session::get('code','wll_'); 输出验证码<br><br><br> 以下是Captcha.php 类<br><?php <br /> namespace other;<br> class Captcha{<br>     private $width;<br>     private $height;<br>     private $codeNum;<br>     private $code;<br>     private $im;<br>     //初始化<br>     function __construct($width=80, $height=20, $codeNum=4){<br>         $this-&gt;width = $width;<br>         $this-&gt;height = $height;<br>         $this-&gt;codeNum = $codeNum;<br>     }<br>     //显示验证码<br>     function showImg(){<br>         //创建图片<br>         $this-&gt;createImg();<br>         //设置干扰元素<br>         $this-&gt;setDisturb();<br>         //设置验证码<br>         $this-&gt;setCaptcha();<br>         //输出图片<br>         $this-&gt;outputImg();<br>     }<br>     <br>     //获取显示的验证码,用来验证验证码是否数据正确<br>     function getCaptcha(){<br>         return $this-&gt;code;<br>     }<br>     <br>     //创建图片<br>     private function createImg(){<br>         $this-&gt;im = imagecreatetruecolor($this-&gt;width, $this-&gt;height);<br>         $bgColor = imagecolorallocate($this-&gt;im, 255, 255, 255);//创建的前景为白色<br>         imagefill($this-&gt;im, 0, 0, $bgColor);<br>     }<br>     <br>     //设置干扰元素<br>     private function setDisturb(){<br>         $area = ($this-&gt;width * $this-&gt;height) / 20;<br>         $disturbNum = ($area &gt; 250) ? 250 : $area;<br>         //加入点干扰<br>         for ($i = 0; $i              $color = imagecolorallocate($this-&gt;im, rand(0, 255), rand(0, 255), rand(0, 255));<br>             imagesetpixel($this-&gt;im, rand(1, $this-&gt;width - 2), rand(1, $this-&gt;height - 2), $color);<br>         }<br>         //加入弧线<br>         for ($i = 0; $i              $color = imagecolorallocate($this-&gt;im, rand(128, 255), rand(125, 255), rand(100, 255));<br>             imagearc($this-&gt;im, rand(0, $this-&gt;width), rand(0, $this-&gt;height), rand(30, 300), rand(20, 200), 50, 30, $color);<br>         }<br>     }<br>     //设置验证码随机数<br>     private function createCode(){<br>         $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ";<br>         for ($i = 0; $i codeNum; $i++) {<br>             $this-&gt;code .= $str{rand(0, strlen($str) - 1)};<br>         }<br>     }<br>     //设置验证码<br>     private function setCaptcha(){<br>           <br>         //设置验证码随机数        <br>         $this-&gt;createCode();<br>         <br>         //文字前景<br>         $color = imagecolorallocate($this-&gt;im, rand(50, 250), rand(100, 250), rand(128, 250));<br>                <br>         //因为imagechar最大的文字字体为5,字体太小而不用这个方式了<br>         //imagechar($this-&gt;im, $size, $x, $y, $this-&gt;code{$i}, $color);           <br>                <br>         //因为imagechar最大的文字字体为5,而这里要显示更大的文字,所以用 imagefttext <br>         imagefttext($this-&gt;im,30,0,10,35,$color,'static/pc/fonts/monofont.ttf',$this-&gt;code);//图象资源,尺寸,角度,x轴,y轴,颜色,字体路径,文本插入图像<br>     }<br>     //输出图片<br>     private function outputImg(){<br>         if (imagetypes() &amp; IMG_JPG) {<br>             header('Content-type:image/jpeg');<br>             imagejpeg($this-&gt;im);<br>         } elseif (imagetypes() &amp; IMG_GIF) {<br>             header('Content-type: image/gif');<br>             imagegif($this-&gt;im);<br>         } elseif (imagetype() &amp; IMG_PNG) {<br>             header('Content-type: image/png');<br>             imagepng($this-&gt;im);<br>         } else {<br>             die("Don't support image type!");<br>         }<br>     }//end<br> }

AD:真正免费,域名+虚机+企业邮箱=0元

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号