首頁  >  文章  >  後端開發  >  PHP驗證碼的製作方法

PHP驗證碼的製作方法

墨辰丷
墨辰丷原創
2018-06-05 13:42:471429瀏覽

這篇文章主要介紹PHP驗證碼的製作方法,有興趣的朋友參考下,希望對大家有幫助。

驗證碼在表單實作越來越多了,但用js的寫的驗證碼,總覺得不方便,所以學習了下php實作的驗證碼。好吧,其實是沒有事情幹,但又不想浪費時間,所以學習了下php實作驗證碼。正所謂,技多不壓身。而且,也可以封裝成函數,以後使用的時候也是很方便的,當然現在沒有封裝。

先給大家附上一張效果圖:

1、產生一張png的圖片

2、設定背景色
3、設定字體顏色和樣式
4、產生4位數的隨機的驗證碼
5、把產生的每個字元調整旋轉角度和位置畫到png圖片上
6.加入雜訊和乾擾線防止註冊機器分析原始圖片來惡意註冊
7、輸出圖片
8、釋放圖片所佔記憶體

authcode.php檔案

程式碼

<?php
session_start ();
header ( &#39;Content-type: image/png&#39; );
//创建图片
$im = imagecreate($x=130,$y=45 );
$bg = imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155)); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色
$fontColor = imageColorAllocate ( $im, 255, 255, 255 ); //字体颜色
$fontstyle = &#39;rock.ttf&#39;; //字体样式,这个可以从c:\windows\Fonts\文件夹下找到,我把它放到和authcode.php文件同一个目录,这里可以替换其他的字体样式
//产生随机字符
for($i = 0; $i < 4; $i ++) {
$randAsciiNumArray = array (rand(48,57),rand(65,90));
$randAsciiNum = $randAsciiNumArray [rand ( 0, 1 )];
$randStr = chr ( $randAsciiNum );
imagettftext($im,30,rand(0,20)-rand(0,25),5+$i*30,rand(30,35),$fontColor,$fontstyle,$randStr);
$authcode .= $randStr; 
}
$_SESSION[&#39;authcode&#39;] = $randFourStr;//用户和用户输入的验证码做比较
//干扰线
for ($i=0;$i<8;$i++){
$lineColor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imageline ($im,rand(0,$x),0,rand(0,$x),$y,$lineColor);
}
//干扰点
for ($i=0;$i<250;$i++){
imagesetpixel($im,rand(0,$x),rand(0,$y),$fontColor);
}
imagepng($im);
imagedestroy($im); 
?>

總結#:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

相關推薦:

php實作一段簡單機率的方法

php中while循環控制的方法及簡單實例

PHP實作跨域操作的方法

#

以上是PHP驗證碼的製作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn