您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關使用php怎么實現(xiàn)一個網(wǎng)站驗證碼功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。
核心:img.php
這個頁面生成一張驗證碼并將正確數(shù)值寫入 Session
隨機一個4位驗證碼
$check=rand(1000,9999);
將生成的驗證碼寫入session
Session_start(); $_SESSION["check"] = $check;
創(chuàng)建一張圖片
$im = imagecreate(80,30);
由于這種圖片的背景默認是黑色的所以我們要用白色填充。
imagefill($im,0,0,ImageColorAllocate($im, 255,255,255));
使用imageline隨機繪制兩條實線
$y1=rand(0,30); $y2=rand(0,30); $y3=rand(0,30); $y4=rand(0,30); imageline($im,0,$y1,70, $y3,000); imageline($im,0,$y2,70, $y4,000);
在隨機位置繪制文字
$strx=rand(3,15); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,0,1),ImageColorAllocate($img,34,87,100)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,1,1),ImageColorAllocate($img,781,117,78)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,2,1),ImageColorAllocate($img,160,40,40)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,3,1),ImageColorAllocate($img,25,55,10));
輸出圖像
Header("Content-type: image/PNG"); ImagePNG($img);
結束,下面是完整代碼
<?php $check=rand(1000,9999); Session_start(); $_SESSION["check"] = $check; $img = imagecreate(80,30); imagefill($img,0,0,ImageColorAllocate($img,255,255,255)); $y1=rand(0,30); $y2=rand(0,30); $y3=rand(0,30); $y4=rand(0,30); imageline($img,0,$y1,70, $y3,ImageColorAllocate($img,55,255,25)); imageline($img,0,$y2,70, $y4,ImageColorAllocate($img,55,55,255)); $strx=rand(3,15); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,0,1),ImageColorAllocate($img,34,87,100)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,1,1),ImageColorAllocate($img,781,117,78)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,2,1),ImageColorAllocate($img,160,40,40)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,3,1),ImageColorAllocate($img,25,55,10)); Header("Content-type: image/PNG"); ImagePNG($img);
用戶界面:index.php
想必大家都知道怎么做,我就直接給出代碼了
<!DOCTYPE html> <html> <body> <form action="action.php" method="post"> <input type="text" name="cikle" placeholder="驗證碼"> <br> <img id="cikle" src="img.php"><input type="submit" value="Submit"> </form> </body> </html>
以上的代碼將用戶輸入的數(shù)值傳遞到“action.php”中
檢查:action.php
這一步要將用戶輸入數(shù)值與session中的數(shù)值進行比對
相等,輸出“正確”
不相等,輸出“不正確”
<?php Session_start(); if ($_SERVER["REQUEST_METHOD"] == "POST") { if($_SESSION["check"]!=intval($_POST["cikle"])){ echo "不正確"; }else{ echo "正確"; } }
看完上述內容,你們對使用php怎么實現(xiàn)一個網(wǎng)站驗證碼功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。