php完整验证码代码
生活随笔
收集整理的這篇文章主要介紹了
php完整验证码代码
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
<?phprequire_once 'string.func.php';//通過GD庫做驗證碼/*** 添加驗證文字* @param int $type* @param int $length*/function buildRandomString($type=1,$length=4) {$row='';if ($type == 1) {$row = join('', range(0, 9));} else if ($type == 2) {$row = join('', array_merge(range('a', 'z'), range('A', 'Z')));} else if ($type == 3) {$row = join('', array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9)));};$row = str_shuffle($row);$row = substr($row, 0, $length);return $row;}/*** 生成縮略圖* @param int $type //包含數(shù)字或者英文* @param int $length 多少個字符* @param int $pixel 干擾小點的密度* @param int $dst_h 干擾線的密度* @param string //驗證碼在$_SESSION中的名字*/function verifyImage($type=1, $length=4, $pixel=0, $line=0, $sess_name="verify") {//session_start();//創(chuàng)建畫布$width = 100;$height = 40;$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("SIMKAI.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, $fontfile, $text);}if ($pixel) {for ($i = 0; $i < 50; $i++) {imagesetpixel($image, mt_rand(0, $width-1), mt_rand(0, $heigth - 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, $heigth - 1), $color);}}header("content-type:image/gif");imagegif($image);imagedestroy($image);}
主要要點:1、如果前面沒有申明session_start();則需要申明;2、字體可以在cmf輸入fonts下載到自己定義的fonts文件夾;3、$_SESSION [$sess_name]可以通過$_POST獲得用戶輸入的驗證碼進行比較。
總結
以上是生活随笔為你收集整理的php完整验证码代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis集群的三种模式
- 下一篇: 动态规划算法php,php算法学习之动态