2012-11-17 37 views
0

我想將一個隱形CAPTCHA合併到我的聯繫表單中,但是我不確定它是否有效。隱形CAPTCHA無法正常工作,很可能是PHP不正確?

我的代碼如下...

HTML

<span class="test-field"><label for="test">Please leave blank</label> 
    <input type="text" name="test" id="test"/></span> 

CSS

.test-field {Display: none} 

PHP

<?php 
if($_POST["test"]!=""){ 
    header("Location: {$_SERVER[HTTP_REFERER]}");exit; 
} 
// Get Data 
$f_name = strip_tags($_POST['f_name']); 
$f_email = strip_tags($_POST['f_email']); 
$f_message = strip_tags($_POST['f_msg']); 

// Send Message 
mail("[email protected]", "Website Contact", 
"Name: $f_name\nEmail: $f_email\nMessage: $f_message\n", 
"From: My Website"); 

?> 

爲了測試它,我做了一些測試改變...

f($_POST["test"]!="") 

...到...

f($_POST["test"]="") 

我的PHP是不是很好,但我猜這不應該通過,如果該字段爲空發送的形式,但它確實來過。我的PHP有什麼問題嗎?

在此先感謝。

+0

你能解釋一下「不起作用」的含義嗎? –

+1

我真的不明白「隱形」是什麼意思,如果它不可見,爲什麼你首先需要它,並說它不起作用,你的意思是說你得到一些錯誤或其他什麼? – Linas

+0

對不起,我已重新編輯我的帖子,使其更清晰 – Adam

回答

2

至於你的具體問題,它沒有任何意義。用戶CAPTCHA如果隱藏,則絕對無用。

術語CAPTCHA代表...

完全自動化的公共圖靈測試告訴計算機和人類的

注意到它說人類......

我們如何測試如果他們無法看到CAPTCHA挑戰,是否需要進行人際互動?你不能。從來沒有......這裏是你的代碼的快速模擬......由於它沒有意義,我遺漏了CAPTCHA。從這裏拿...

<?php 

if ($_POST['test'] == "") { 

    header("Location: {$_SERVER['HTTP_REFERER']}"); 


} else { 

    // Get Data 
    $f_name = strip_tags($_POST['f_name']); 
    $f_email = strip_tags($_POST['f_email']); 
    $f_message = strip_tags($_POST['f_msg']); 

} 

?> 

<html> 
<head> 
    <style type="text/css"> 

     #demo { 

      width: 250px; 
      height: 250px; 
     } 

     .test-field { 
      display: none; 
      width: 200px; 
      height: 200px; 

     } 

     #form label { 
      width: 50px; 
      float: left; 

     } 

     #form input { 
      width: 150px; 
      float: right; 

     } 


    </style> 

</head> 


<body> 

<div id="demo"> 
    <form name="form" id="form" action="<?php $_SERVER['PHP_SELF'] ?>" method="post"> 
     <label for="test">Empty </label><input type="text" name="test" id="test"/><br/> 
     <label for="f_name">Name</label><input type="text" name="f_name" id="f_name"/><br/> 
     <label for="f_email">Email</label><input type="text" name="f_email" id="f_email"/><br/> 
     <label for="f_msg">Message</label><textarea rows="15" cols="30" name="f_msg" id="f_msg"></textarea> 
     <input type="submit" id="submit"> 

     <div class="test-field"></div> 
    </form> 
</div> 
</body> 

</html> 

<?php var_dump($_POST) ?> 
+0

+1付出瞭如此多的努力 – Linas

+0

謝謝。我已經知道了。我原來的代碼確實工作(這也是這樣),這是一些JavaScript導致的問題。 – Adam

1

嘗試改變

if($_POST["test"]!=""){ 

if(isset($_POST["test"]) && $_POST["test"]){ 
+0

不妨把一些'error_reporting'在那裏,當你在這裏。 – Mike