本驗證碼是在深入淺出(Head First)那本書裡頭"參考"過來的驗證碼教學
這本書寫的真是好,真的是"第一次寫驗證碼就上手"
底下程式碼以及我打上的註解,喜歡的朋友可以參考看看給小第指點指點
1).index.php
2).TFT.php
DownLoad File
這本書寫的真是好,真的是"第一次寫驗證碼就上手"
底下程式碼以及我打上的註解,喜歡的朋友可以參考看看給小第指點指點
1).index.php
<?php
session_start();
if (!empty($_POST["Code"])) {
if ($_POST["Code"] == $_SESSION['pass_phase']) {
echo "驗證成功";
} else {
echo "驗證失敗";
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form method="post" action="index.php" name="f1">
<img src="TFT.php" alt="">
<input type="text" name="Code" value="">
<input type="submit" name="subutton" name="送出">
</form>
</body>
</html>
2).TFT.php
<?php
session_start();
define('CAPTCHA_NUMCHARS',6);//自訂字數
define('CAPTCHA_WIDTH',100);//自訂寬度
define('CAPTCHA_HEIGHT',25);//自訂高度
$pass_phase="";
//英文字母A-Z取6位亂數
for($i=0;$i<CAPTCHA_NUMCHARS;$i++){
$pass_phase.=chr(rand(97,122));
}
//A-Z取6位亂數存成session
$_SESSION['pass_phase']=$pass_phase;
//建立圖像物件
$img= imagecreatetruecolor(CAPTCHA_WIDTH, CAPTCHA_HEIGHT);
//字定顏色
$bg_color= imagecolorallocate($img, 255, 255, 255);
$text_color=imagecolorallocate($img, 64, 0, 64);
$graphic=imagecolorallocate($img, 255, 128, 0);
$graph_fu=imagecolorallocate($img, 0, 0, 0);
//建立一個矩形
imagefilledrectangle($img, 0, 0, CAPTCHA_WIDTH, CAPTCHA_HEIGHT, $bg_color);
//底色干擾線
for($i=0;$i<3;$i++){
imageline($img, 0, rand() % CAPTCHA_HEIGHT, CAPTCHA_WIDTH, rand() % CAPTCHA_HEIGHT, $graphic);
}
//底色干擾點
for($i=0;$i<100;$i++){
imagesetpixel($img, rand() % CAPTCHA_WIDTH, rand() % CAPTCHA_HEIGHT, $graph_fu);
}
//寫 TTF 文字到圖中。
imagettftext($img, 18, 0, 5, CAPTCHA_HEIGHT-5, $text_color, 'MSJHBD.TTF', $pass_phase);
header("Content-type:image/png");
//輸出PNG圖形
imagepng($img);
//結束圖形
ImageDestroy($img);
?>
DownLoad File
沒有留言:
張貼留言