共計 1128 個字符,預計需要花費 3 分鐘才能閱讀完成。
以下是一個使用 PHP 和 GD 庫生成和處理圖形驗證碼的示例代碼:
<?php
// 創建一個驗證碼圖像
$width = 200;
$height = 50;
$image = imagecreatetruecolor($width, $height);
// 創建白色背景
$bg_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bg_color);
// 生成隨機驗證碼文本
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$code = '';
for ($i = 0; $i < 6; $i++) {$code .= $chars[rand(0, strlen($chars) - 1)];
}
// 將驗證碼文本保存到 session 中
session_start();
$_SESSION['captcha_code'] = $code;
// 將驗證碼文本繪制到圖像中
$text_color = imagecolorallocate($image, 0, 0, 0);
imagettftext($image, 20, 0, 10, 30, $text_color, 'arial.ttf', $code);
// 添加干擾線
for ($i = 0; $i < 10; $i++) {$line_color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
imageline($image, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $line_color);
}
// 輸出驗證碼圖像
header('Content-type: image/png');
imagepng($image);
// 釋放內存
imagedestroy($image);
?>
您可以將上面的代碼保存為一個 PHP 文件,然后在需要顯示驗證碼的頁面上引用該文件的 URL 來顯示驗證碼圖像。當用戶提交表單時,您可以通過比對用戶輸入的驗證碼和 session 中保存的驗證碼來驗證驗證碼是否正確。
請注意,上面的代碼中使用了 imagettftext
函數來繪制驗證碼文本,因此您需要確保服務器上安裝了 GD 庫和 FreeType 支持。您還需要提供一個 TrueType 字體文件(比如arial.ttf
)來用于繪制文本。您可以在網上找到免費的 TrueType 字體文件來使用。
丸趣 TV 網 – 提供最優質的資源集合!
正文完