欢迎访问 生活随笔!

尊龙游戏旗舰厅官网

当前位置: 尊龙游戏旗舰厅官网 > 编程语言 > php >内容正文

php

php 验证码 -尊龙游戏旗舰厅官网

发布时间:2025/1/21 php 20 豆豆
尊龙游戏旗舰厅官网 收集整理的这篇文章主要介绍了 php 验证码 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

学习地址:http://www.imooc.com/video/2458

php /*** 生成验证码* @param int $type* @param int $length* @return string*/ function buildrandomstring($type=1,$length=4){if ($type == 1) {$chars = join ( "", range ( 0, 9 ) );} elseif ($type == 2) {$chars = join ( "", array_merge ( range ( "a", "z" ), range ( "a", "z" ) ) );} elseif ($type == 3) {$chars = join ( "", array_merge ( range ( "a", "z" ), range ( "a", "z" ), range ( 0, 9 ) ) );}if ($length > strlen ( $chars )) {exit ( "字符串长度不够" );}$chars = str_shuffle ( $chars );return substr ( $chars, 0, $length ); }//通过gd库做验证码 function verifyimage($type=1,$length=4,$pixel=0,$line=0,$sess_name = "verify"){session_start();//创建画布$width = 80;$height = 28;$image = imagecreatetruecolor ( $width, $height );$white = imagecolorallocate ( $image, 255, 255, 255 );$black = imagecolorallocate ( $image, 0, 0, 0 );//用填充矩形填充画布imagefilledrectangle ( $image, 1, 1, $width - 2, $height - 2, $white );$chars = buildrandomstring ( $type, $length );$_session [$sess_name] = $chars;//$fontfiles = array ("msyh.ttf", "msyhbd.ttf", "simli.ttf", "simsun.ttc", "simyou.ttf", "stzhongs.ttf" );$fontfiles = array ("simyou.ttf" );//由于字体文件比较大,就只保留一个字体,如果有需要的同学可以自己添加字体,字体在你的电脑中的fonts文件夹里有,直接运行输入fonts就能看到相应字体for($i = 0; $i < $length; $i ) {$size = mt_rand ( 14, 18 );$angle = mt_rand ( - 15, 15 );$x = 5 $i * $size;$y = mt_rand ( 20, 26 );$fontfile = "../fonts/" . $fontfiles [mt_rand ( 0, count ( $fontfiles ) - 1 )];$color = imagecolorallocate ( $image, mt_rand ( 50, 90 ), mt_rand ( 80, 200 ), mt_rand ( 90, 180 ) );$text = substr ( $chars, $i, 1 );imagettftext($image, $size, $angle, $x, $y, $color, "", $text);}if ($pixel) {for($i = 0; $i < 50; $i ) {imagesetpixel ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $black );}}if ($line) {for($i = 1; $i < $line; $i ) {$color = imagecolorallocate ( $image, mt_rand ( 50, 90 ), mt_rand ( 80, 200 ), mt_rand ( 90, 180 ) );imageline ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $color );}}header ( "content-type:image/gif" );imagegif ( $image );imagedestroy ( $image ); }

 

网上找到的不错的验证码:http://www.jb51.net/article/40341.htm

需要下载字体:elephant.ttf

html使用:

php session_start(); //验证码类 class validatecode {private $charset = 'abcdefghkmnprstuvwxyzabcdefghkmnprstuvwxyz23456789';//随机因子private $code;//验证码private $codelen = 4;//验证码长度private $width = 130;//宽度private $height = 50;//高度private $img;//图形资源句柄private $font;//指定的字体private $fontsize = 20;//指定字体大小private $fontcolor;//指定字体颜色//构造方法初始化public function __construct() {$this->font = dirname(__file__).'/font/elephant.ttf';//注意字体路径要写对,否则显示不了图片 }//生成随机码private function createcode() {$_len = strlen($this->charset)-1;for ($i=0;$i<$this->codelen;$i ) {$this->code .= $this->charset[mt_rand(0,$_len)];}}//生成背景private function createbg() {$this->img = imagecreatetruecolor($this->width, $this->height);$color = imagecolorallocate($this->img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));imagefilledrectangle($this->img,0,$this->height,$this->width,0,$color);}//生成文字private function createfont() {$_x = $this->width / $this->codelen;for ($i=0;$i<$this->codelen;$i ) {$this->fontcolor = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));imagettftext($this->img,$this->fontsize,mt_rand(-30,30),$_x*$i mt_rand(1,5),$this->height / 1.4,$this->fontcolor,$this->font,$this->code[$i]);}}//生成线条、雪花private function createline() {//线条for ($i=0;$i<6;$i ) {$color = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$color);}//雪花for ($i=0;$i<100;$i ) {$color = imagecolorallocate($this->img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));imagestring($this->img,mt_rand(1,5),mt_rand(0,$this->width),mt_rand(0,$this->height),'*',$color);}}//输出private function output() {header('content-type:image/png');imagepng($this->img);imagedestroy($this->img);}//对外生成public function doimg() {$this->createbg();$this->createcode();$this->createline();$this->createfont();$this->output();}//获取验证码public function getcode() {return strtolower($this->code);} }//使用方法,通常是在另一个单独的php页面执行的: /* $_vc = new validatecode(); $_vc->doimg(); $_session['validatecode'] = $_vc->getcode();//验证码保存到session中 */ //然后在html中引用php页面: /**/?>

 

转载于:https://www.cnblogs.com/cylee/p/5725518.html

总结

以上是尊龙游戏旗舰厅官网为你收集整理的php 验证码的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。

网站地图