人機驗證碼是一種常用的驗證碼形式,可以有效地防止惡意機器人攻擊和惡意註冊等行為。 PHP作為一門伺服器端語言,非常適合實作人機驗證碼功能。在本文中,我們將介紹如何使用PHP實作人機驗證碼。
以下是產生驗證碼圖片的程式碼範例:
<?php session_start(); $code = rand(1000, 9999); $_SESSION["code"] = $code; $width = 100; $height = 50; $image = imagecreatetruecolor($width, $height); $textColor = imagecolorallocate($image, 0, 0, 0); //设置文本颜色 $bgColor = imagecolorallocate($image, 255, 255, 255); //设置背景颜色 imagefilledrectangle($image, 0, 0, $width, $height, $bgColor); //绘制矩形背景 //绘制验证码字符串 $font = 'arial.ttf'; //字体 $fontSize = 24; //字体大小 $x = 20; //x轴位置 $y = 30; //y轴位置 for ($i = 0; $i < 4; $i++) { $char = substr(str_shuffle("ABCDEFGHJKMNPQRSTUVWXYZ23456789"), 0, 1); imagettftext($image, $fontSize, rand(-15, 15), $x, $y, $textColor, $font, $char); $x += 20; } header('Content-type: image/png'); imagepng($image); imagedestroy($image); ?>
這段程式碼將會在伺服器端產生驗證碼圖片,並輸出給瀏覽器顯示。
以下是驗證使用者輸入的程式碼範例:
<?php session_start(); if($_POST["code"] != $_SESSION["code"]) { echo "验证码输入错误"; } else { echo "验证码输入正确"; } ?>
這段程式碼將會驗證使用者提交的驗證碼是否與Session中儲存的驗證碼相同。如果不相同,則會輸出錯誤提示;如果相同,則表示使用者輸入正確。
以下是將人機驗證碼嵌入表單中的程式碼範例:
<form method="post" action="verify.php"> <p>用户名:</p> <input type="text" name="username"> <p>密码:</p> <input type="password" name="password"> <p>验证码:</p> <input type="text" name="code"> <img src="code.php" alt="验证码"> <input type="submit" value="提交"> </form>
這段程式碼將會在表單中新增一個圖片,用於展示驗證碼。使用者需要輸入圖中展示的驗證碼才能提交表單。點擊提交按鈕後,表單將會跳到驗證腳本程式碼,並進行驗證。
總結
本文介紹如何使用PHP實作人機驗證碼。透過產生驗證碼圖片並儲存到Session中,可以有效地防止惡意攻擊和註冊。在表單中嵌入人機驗證碼,可以有效提升網站的安全性和使用者體驗。
以上是如何使用PHP實現人機驗證碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!