2014-11-02 45 views
-3

我在嘗試使用Ajax檢查驗證碼時遇到問題! 形式如何使用ajax檢查驗證碼而不刷新

<img src="captcha.php" width="100px"/> 
<input size="20" id="rand" type="text" name="rand"> 

JS

$("#rand").keyup(function() { 
var rand = $("#rand").val(); 
if(rand != rand2) 
{ 
     $("#rand").removeClass('object_error'); // if necessary 
     $("#rand").addClass("object_ok"); 
     $("#status5").html('<img src="tick.gif" align="absmiddle">'); 
} 
else 
    { 
    $("#status5").html('<font color="red">Wrong Captcha</font>'); 
    $("#rand").removeClass('object_ok'); // if necessary 
    $("#rand").addClass("object_error"); 
    } 
}); //rand 

如何使如果蘭特!=驗證碼 而在不同的文件驗證碼!

+0

您使用的是什麼captcha服務或插件? – PeterKA 2014-11-02 23:34:05

+0

這裏是<?php session_start(); $ string = md5(rand(0,99)); $ new_string = substr($ string,17,6); $ _SESSION ['magic'] = $ new_string; // imagecreate(寬度,高度)的背景 $ im = imagecreate(90,25); $ white = imagecolorallocate($ im,255,255,255); $ black = imagecolorallocate($ im,0,0,0); imagefill($ im,0,0,$ black); // imagestring(「」,「」,margin-left,margin-top,$ string,$ string_color) imagestring($ im,5,20,5,$ new_string,$ white); header(「Content-Type:image/png」); imagepng($ im); imagedestroy($ im); ?> – Ism3lawy 2014-11-02 23:37:31

+0

長段的代碼不屬於評論。任何人都很難理解代碼。你能把它作爲你的問題的更新嗎? – PeterKA 2014-11-02 23:42:46

回答

1

您無法在客戶端進行驗證碼檢查。你確實需要一個服務器端腳本來爲你做檢查。然後您需要使用ajax來調用帶有用戶數據和其他加密數據的服務器端腳本,以便在服務器端進行驗證。

AJAX調用會是這個樣子:

$.post('captcha-verifier.php', <user+captcha-data>).done(function(data) { 
    //check 'data' for verification result 
    //decide next step 
}); 

這段代碼將需要包含在這些語句觸發事件處理程序,當用戶表示,他們已經完成了進入他們的意見,如按鈕點擊。例如:

$(function() { 
    $('.some-button').on('click', function() { 
     //gather data for ajax call if necessary 
     //make ajax call above 
    }); 
}); 
+0

一個captha必須完成客戶端,否則用戶看不到它。 – dandavis 2014-11-02 23:44:38