PHP高級的圖像驗證碼

jopen 9年前發布 | 1K 次閱讀 PHP

image.php

 <?php
// Font directory + font name
$font = 'fonts/Disney.ttf';
// Total number of lines
$lineCount = 40;
// Size of the font
$fontSize = 40;
// Height of the image
$height = 50;
// Width of the image
$width = 150;
$img_handle = imagecreate ($width, $height) or die ("Cannot Create image");
// Set the Background Color RGB
$backColor = imagecolorallocate($img_handle, 255, 255, 255);
// Set the Line Color RGB
$lineColor = imagecolorallocate($img_handle, 175, 238, 238);
// Set the Text Color RGB
$txtColor = imagecolorallocate($img_handle, 135, 206, 235);

// Do not edit below this point $string = "abcdefghijklmnopqrstuvwxyz0123456789"; $str = ""; for($i=0;$i<6;$i++){ $pos = rand(0,36); $str .= $string{$pos}; } $textbox = imagettfbbox($fontSize, 0, $font, $str) or die('Error in imagettfbbox function'); $x = ($width - $textbox[4])/2; $y = ($height - $textbox[5])/2; imagettftext($img_handle, $fontSize, 0, $x, $y, $txtColor, $font , $str) or die('Error in imagettftext function'); for($i=0;$i<$lineCount;$i++){ $x1 = rand(0,$width);$x2 = rand(0,$width); $y1 = rand(0,$width);$y2 = rand(0,$width); imageline($img_handle,$x1,$y1,$x2,$y2,$lineColor); } header('Content-Type: image/jpeg'); imagejpeg($img_handle,NULL,100); imagedestroy($img_handle);

session_start(); $_SESSION['img_number'] = $str; ?> </pre> form.php

<form action="result.php" method="post">
    <img alt="Random Number" src="image.php">
    <input type="text" name="num"><br>
    <input type="submit" name="submit" value="Check">
</form>

result.php

 <?php
session_start();
if($_SESSION['img_number'] != $_POST['num']){
    echo'The number you entered doesn\'t match the image.<br>
    <a href="form.php">Try Again</a><br>';
}else{
    echo'The numbers Match!<br>
    <a href="form.php">Try Again</a><br>';
}
?>
[url=http://wwww.com/examples/CAPTCHA/form2.php]Example[/url]


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!