php驗證碼實現代碼
PHP驗證碼實現原理
生成隨機數或者字母保存到session中(驗證驗證碼的時候用),然后對生成的數字或者字母進行繪圖!然后呈現在我們眼前
刷新驗證碼:用js改變驗證碼圖片所帶的參數,讓瀏覽器不讀緩存的圖片,從而實現刷新驗證碼效果!
代碼示例 $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890";
$image=imagecreate(50,25);
imagecolorallocate($image,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125));
$color = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
for($i=1;$i<=4;$i++) {
$date=$str[mt_rand(0,strlen($str)-1)];
$code.=$date;
}
session_start();
$_SESSION['code'] = $code;
imagestring($image,4,8,4,$code,$color);
for($i=1;$i<=30;$i++) {
imagesetpixel($image,mt_rand(0,50),mt_rand(0,25),mt_rand(125,200));
}
for($i=1;$i<=mt_rand(1,5);$i++) { imageline($image,mt_rand(0,50),mt_rand(0,25),mt_rand(0,50),mt_rand(0,25),mt_rand(100,150)); } header("content-type:image/png"); imagepng($image); ?>
數字+字母驗證碼(各字母顏色不同):
<!--?php <br ?--> $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890";
$image=imagecreate(50,25);
imagecolorallocate($image,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125));
$color[0] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
$color[1] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
$color[2] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
$color[3] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
for($i=0;$i<4;$i++) {
$date=$str[mt_rand(0,strlen($str)-1)];
$code.=$date;
imagestring($image,5,6+$i*10,4,$code[$i],$color[$i]);
}
session_start();
$_SESSION['code'] = $code;
for($i=1;$i<=30;$i++) {
imagesetpixel($image,mt_rand(0,50),mt_rand(0,25),mt_rand(125,200));
}
for($i=1;$i<=mt_rand(1,5);$i++) {
imageline($image,mt_rand(0,50),mt_rand(0,25),mt_rand(0,50),mt_rand(0,25),mt_rand(100,150));
}
header("content-type:image/png");
imagepng($image);</pre> </strong> </h2>
來自:php驗證碼實現原理
$image=imagecreate(50,25); imagecolorallocate($image,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125)); $color = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); for($i=1;$i<=4;$i++) { $date=$str[mt_rand(0,strlen($str)-1)]; $code.=$date; } session_start(); $_SESSION['code'] = $code; imagestring($image,4,8,4,$code,$color); for($i=1;$i<=30;$i++) { imagesetpixel($image,mt_rand(0,50),mt_rand(0,25),mt_rand(125,200)); } for($i=1;$i<=mt_rand(1,5);$i++) { imageline($image,mt_rand(0,50),mt_rand(0,25),mt_rand(0,50),mt_rand(0,25),mt_rand(100,150)); } header("content-type:image/png"); imagepng($image); ?> 數字+字母驗證碼(各字母顏色不同):
<!--?php <br ?--> $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890"; $image=imagecreate(50,25); imagecolorallocate($image,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125)); $color[0] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); $color[1] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); $color[2] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); $color[3] = imagecolorallocate($image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); for($i=0;$i<4;$i++) { $date=$str[mt_rand(0,strlen($str)-1)]; $code.=$date; imagestring($image,5,6+$i*10,4,$code[$i],$color[$i]); } session_start(); $_SESSION['code'] = $code; for($i=1;$i<=30;$i++) { imagesetpixel($image,mt_rand(0,50),mt_rand(0,25),mt_rand(125,200)); } for($i=1;$i<=mt_rand(1,5);$i++) { imageline($image,mt_rand(0,50),mt_rand(0,25),mt_rand(0,50),mt_rand(0,25),mt_rand(100,150)); } header("content-type:image/png"); imagepng($image);</pre> </strong> </h2> 來自:php驗證碼實現原理