2014-11-25 25 views
-2

我正在做一個驗證碼的形式驗證和我做了這個至今(我有一個教程做的話)如何獲得外部PHP變量jQuery的

<?php 
session_start(); 

function random($length){ 
    $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
    $str = ""; 
    $size = strlen($chars); 
    for($i=0;$i<$length;$i++){ 
     $str .= $chars[rand(0, $size-1)]; 
    } 
    return $str; 
} 

$cap = random(6); 
$_SESSION['real'] = $cap; 

$image = imagecreate(70, 20); 
$background = imagecolorallocate($image, 86, 178, 167); 
$foreground = imagecolorallocate($image, 255, 255, 255); 

imagestring($image, 5,5,1,$cap,$foreground); 
header("Content-type: image/png"); 
imagepng($image); 
?> 

然後寫上我的HTML的代碼:

<img src="image-captcha.php" alt="captcha"> 

圖像captcha.php是與上面的PHP代碼外部文件的名稱。 我想實現從HTML獲取PHP變量$帽(jQuery中),這樣的:

$(function(){ 
    var captcha = '<? php echo $cap; ?>'; 
}); 

在此先感謝!

+0

是不是工作? – 2014-11-25 13:12:46

+0

不,你沒有。如果你這樣做,那麼用戶可以查看你的頁面源並知道該字符串是什麼。因此,機器人可以做同樣的事情。結果=驗證碼不值得擁有 – RiggsFolly 2014-11-25 13:16:09

+0

不,我用alert(captcha),它顯示'<? php echo $ cap; '>' – 2014-11-25 13:16:28

回答

3
<? php echo $cap; ?> 

應該

<?php echo $cap; ?> 
+0

嗯......很好的接收......雖然!!!! – Jai 2014-11-25 13:18:43

+0

但仍然**你不想這樣做**它使一個沒有Captcha沒有! – RiggsFolly 2014-11-25 13:19:55

-1

爲什麼你想在你的JavaScript驗證碼? 如果你這樣做,機器人將能夠閱讀你的源代碼並繞過你的驗證碼。

爲了與PHP這項工作,假設你有使用POST方法的表單,您可以在處理網頁上使用if語句一樣(包括無確認)

if ($_POST['captcha'] == $_SESSION['real']) { .... } 
+0

所以你建議我用PHP來做? – 2014-11-25 13:17:21

+0

這是一個評論,而不是一個答案。 – RiggsFolly 2014-11-25 13:17:21

+0

是的,我會用PHP處理驗證碼,因爲它是服務器端,機器人將無法讀取驗證碼。 – Casper 2014-11-25 13:19:29