本教程主要利用jquery 的ajax來實現無刷新jquery php驗證碼代碼的提前驗證操作。
本教程主要利用jquery 的ajax來實現無刷新jquery php教程驗證碼代碼的提前驗證操作。
//調用此頁面,如果下面的式子成立,則生成驗證碼圖片
if($_get['action']=='verifycode'){
rand_create();
}
//驗證碼圖片生成
function rand_create(){
//通知浏覽器將要輸出png圖片header('content-type: image/png');
//准備好隨機數發生器種子
srand((double)microtime()*1000000);
//准備圖片的相關參數
$im = imagecreate(62,20);
$black = imagecolorallocate($im, 0,0,0); //rgb黑色標識符
$white = imagecolorallocate($im, 255,255,255); //rgb白色標識符
$gray = imagecolorallocate($im, 200,200,200); //rgb灰色標識符
//開始作圖
imagefill($im,0,0,$gray);
while(($randval=rand()%100000)<10000);{
//將四位整數驗證碼繪入圖片
session_start();
$_session['login_check_num'] = $randval;
imagestring($im, 5, 10, 3, $randval, $black);
}
//加入干擾象素
for($i=0;$i<200;$i++){
$randcolor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
//輸出驗證圖片
imagepng($im);
//銷毀圖像標識符
imagedestroy($im);
}
?>
靜態頁面上顯示驗證碼代碼為:
驗證碼:
jquery部分的ajax驗證代碼為:
$.post("session.php",
{reg_code:$("#reg_code").val()},
function(data){
if(data === "1"){
//do...
}else{
do... }
}
);
而協助ajax驗證的php頁面名為session.php,其代碼為:
session_start();
//檢驗驗證碼
if($_post['reg_code'] == $_session['login_check_num']){
echo 1;
}else{
echo 0;
exit();
}
?>