PHP驗證碼的製作方法

墨辰丷
發布: 2023-03-29 19:30:02
原創
1441 人瀏覽過

這篇文章主要介紹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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!