2012-02-25 57 views
2

我正在創建一個jQuery ajax彈出評論窗體,但我有一個問題,我在PHP中設置我的「蜜罐」。蜜罐PHP的評論表

蜜罐($ robotest)不起作用;而是腳本返回「電子郵件不正確」。任何人都可以指出我的錯誤?謝謝

HTML表單是:

<form class="cmxform" id="commentForm" method="POST" action=""> 
    <p> 
    <label for="cname">Name</label> 
    <input id="cname" name="name" size="25" class="required" minlength="2" /> 
    </p> 
    <p> 
    <label for="cemail">E-Mail</label> 
    <input id="cemail" name="email" size="25" class="required email" /> 
    </p> 
    <p> 
    <label for="curl">URL</label> 
    <input id="curl" name="url" size="25" class="url" value="" /> 
    </p> 
    <p> 
    <label for="ccomment">Your comment</label> 
    <textarea id="ccomment" name="comment" cols="22" class="required"></textarea> 
    </p> 
    <p class="robotic" id="pot"> 
     <label>Please leave this blank:</label> 
     <input name="robotest" type="text" id="robotest" class="robotest" /> 
    </p> 
    <p> 
    <input class="submit" type="submit" value="Submit"/> 
    </p> 

編輯:

感謝@JamWaffles的支持。以下是實現蜜罐的正確方法。 (正如Kamalo注意到你會希望有「robotest」設置爲顯示的ID:在你的CSS無):

<?php 
$robotest = $_POST['robotest']; 
$email = $_POST['email']; 
if((!filter_var($email, FILTER_VALIDATE_EMAIL)) && ($robotest == "")) { 
    print "E-mail is correct";  
    $to  = '[email protected]'; 
    $subject = 'the subject'; 
    $message = 'hello'; 
    $headers = 'From: [email protected]';  
    mail($to, $subject, $message, $headers);   
} else { 
    print "E-mail is not correct"; 
} 
?> 
+0

跟蹤你的邏輯...'var_dump'每個條件分別跟蹤你的代碼並找到問題 – 2012-02-25 20:26:16

+0

問題在於蜜罐($ robotest)。添加&&($ robotest =「」)會導致腳本返回電子郵件不正確。謝謝 – 2012-02-25 21:03:45

回答

5

filter_var()當電子郵件是有效的,而不是false返回一個非falsy值。在if()刪除filter_var(!

if((filter_var($email, FILTER_VALIDATE_EMAIL)) && ($robotest = "")) 

你執行代碼的if()內部時filter_var()失敗,這就是爲什麼你要

電子郵件是不正確

有效的電子郵件。


別的東西,我錯過了太多是你比較這對一個空字符串賦值給$robotest,而不是事實。您需要使用雙等號比較運算符而不是單個等號賦值運算符。你if()應該是這樣的:

if((filter_var($email, FILTER_VALIDATE_EMAIL)) && ($robotest == "")) 
+0

非常感謝。猜猜我沒有完全理解filter_var()。刪除了!來自if語句,但由於某種原因它仍然返回「電子郵件不正確」。還有什麼我可能會錯過的? – 2012-02-25 20:58:28

+1

請參閱我的編輯。 – Bojangles 2012-02-25 21:19:58

+0

謝謝@JamWaffles。我將操作員更改爲兩倍,但仍然因爲某種原因無法使用。我編輯了上面的php,以便它是最新的。 – 2012-02-25 21:30:50

4

對於備選答案,我成立了一個「蜜罐」在我的HTML與顯示輸入:無

<input type="text" name="honeypot" id="honeypot" style="display:none;"/> 
+0

感謝您的意見。我的蜜罐的css也設置爲顯示:無。 – 2012-02-25 21:00:24