成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何使用PHP制作驗證碼-創(chuàng)新互聯(lián)

這篇文章主要介紹了如何使用PHP制作驗證碼,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站-專業(yè)網站定制、快速模板網站建設、高性價比科爾沁右翼前網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式科爾沁右翼前網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋科爾沁右翼前地區(qū)。費用合理售后完善,十載實體公司更值得信賴。

網站注冊、登錄又或者是留言頁面,都需要注冊碼來驗證當前操作者的合法性,為了防止網站被機器惡意注冊。

生成驗證碼無非就那么幾個步驟,首先是獲取一個隨機字符串,然后創(chuàng)建一個布畫,將生成的字符串寫到布畫上,我們還可以在布畫上畫線畫雪花,現(xiàn)在帖一段生成驗證碼的代碼。

源代碼:

<?php
session_start(); //開啟session
//創(chuàng)建隨機碼,并保存在session中
for($i=0;$i<4;$i++)
{
$_nmsg.=dechex(mt_rand(0,15));
}
//保存到session中
$_SESSION['code']=$_nmsg;
//設置圖片長和高

$_width=75;
$_height=25;
//創(chuàng)建一張圖像
$_img=imagecreatetruecolor($_width,$_height);

//白色背景
$_white=imagecolorallocate($_img,255,255,255);
//填充到背景上
imagefill($_img,0,0,$_white);

//黑色邊框
$_black=imagecolorallocate($_img,0,0,0);
imagerectangle($_img,0,0,$_width-1,$_height-1,$_black);

//隨即畫出5個線條
for($i=0;$i<5;$i++)
{
$_rnd_color=imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
imageline($_img,mt_rand(0,$_width),mt_rand(0,$_height),mt_rand(0,$_width),mt_rand(0,$_height),$_rnd_color);
}

//雪花
for($i=0;$i<10;$i++)
{
$_rnd_color=imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
imagestring($_img,1,mt_rand(1,$_width),mt_rand(1,$_height),"*",$_rnd_color);
}

//輸出驗證碼

for($i=0;$i<strlen($_SESSION['code']);$i++)
{
imagestring($_img,5,10+$i*15,mt_rand(0,10),$_SESSION['code'][$i],$_blackr);
}

//輸出圖像
header('Content-Type:image/png');
imagepng($_img);
//銷毀圖像
imagedestroy($_img);
?>

代碼中將使用以下函數(shù):

mt_rand — 生成更好的隨機數(shù)
int mt_rand ([ int $min ], int $max )很多老的 libc 的隨機數(shù)發(fā)生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數(shù)默認使用 libc 隨機數(shù)發(fā)生器。

mt_rand()函數(shù)是非正式用來替換它的。該函數(shù)用了Mersenne Twister中已知的特性作為隨機數(shù)發(fā)生器,它可以產生隨機數(shù)值的平均速度比 libc 提供的 rand() 快四倍。

dechex — 十進制轉換為十六進制返回一字符串,包含有給定 number參數(shù)的十六進制表示。所能轉換的較大數(shù)值為十進制的 4294967295,其結果為 "ffffffff"。

imagecreatetruecolor — 新建一個真彩色圖像
resource imagecreatetruecolor ( int $x_size , int $y_size )

imagecreatetruecolor() 返回一個圖像標識符,代表了一幅大小為 x_size 和 y_size 的黑色圖像。

imagecolorallocate — 為一幅圖像分配顏色
int imagecolorallocate ( resource $image , int $red , int $green , int $blue )
imagecolorallocate() 返回一個標識符,代表了由給定的 RGB 成分組成的顏色。red,green 和 blue 分別是所需要的顏色的紅,綠,藍成分。這些參數(shù)是 0 到 255 的整數(shù)或者十六進制的 0x00 到 0xFF。imagecolorallocate()必須被調用以創(chuàng)建每一種用在 image 所代表的圖像中的顏色。

imagefill — 區(qū)域填充
bool imagefill ( resource $image , int $x , int $y , int $color )
imagefill() 在 image圖像的坐標 x,y(圖像左上角為 0, 0)處用 color顏色執(zhí)行區(qū)域填充(即與 x, y 點顏色相同且相鄰的點都會被填充)。

imagerectangle — 畫一個矩形
bool imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $col )
imagerectangle() 用 col 顏色在 image 圖像中畫一個矩形,其左上角坐標為 x1, y1,右下角坐標為 x2, y2。圖像的左上角坐標為 0, 0。

imageline — 畫一條線段
bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )
imageline() 用 color顏色在圖像 image 中從坐標 x1,y1 到 x2,y2(圖像左上角為 0, 0)畫一條線段。

imagestring — 水平地畫一行字符串
bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col )
imagestring() 用 col顏色將字符串 s 畫到 image所代表的圖像的 x,y坐標處(這是字符串左上角坐標,整幅圖像的左上角為 0,0)。如果 font 是 1,2,3,4 或 5,則使用內置字體。

imagepng — 以 PNG 格式將圖像輸出到瀏覽器或文件
imagepng() 將 GD 圖像流(image)以 PNG 格式輸出到標準輸出(通常為瀏覽器),或者如果用 filename 給出了文件名則將其輸出到該文件。

imagedestroy — 銷毀一圖像

imagedestroy() 釋放與 image 關聯(lián)的內存。

將源代碼保存為code.php是個php文件,我們該如何使用他呢?


imagepng已經將這個php文件輸出成了png文件

直接調用就可以了

<img src="mycode.php"/>

如果要使用驗證碼,記得開啟session哦


<?php
session_start();
echo $_SESSION['code'];
?>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用PHP制作驗證碼”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網站建設公司,,關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!

標題名稱:如何使用PHP制作驗證碼-創(chuàng)新互聯(lián)
網頁地址:http://jinyejixie.com/article46/peihg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、品牌網站建設、企業(yè)建站ChatGPT、小程序開發(fā)、微信小程序

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網站建設
临清市| 芒康县| 固始县| 凤山县| 宕昌县| 海盐县| 临沭县| 扬中市| 临泉县| 木兰县| 札达县| 股票| 阜新| 青铜峡市| 牙克石市| 焦作市| 兖州市| 琼结县| 沅陵县| 张家港市| 平定县| 天全县| 虎林市| 察雅县| 日照市| 堆龙德庆县| 梁河县| 林州市| 梓潼县| 张北县| 九寨沟县| 台山市| 封开县| 册亨县| 伊金霍洛旗| 郑州市| 县级市| 平利县| 青神县| 梓潼县| 新竹市|