2011-05-23 53 views
1

這是愚蠢的簡單,但我不明白爲什麼我經常在這裏得到錯誤味精,它看起來是正確的,並在其他應用程序中正常工作....這是由於「0」零?它不應該是因爲它在返回到其他任何東西之前返回錯誤,請幫助!一直盯着這個很長的時間來說,「看不到樹林裏的森林」。爲什麼這個PHP驗證返回錯誤消息?

PHP

<?php 
    if(empty($_POST['Contact0FirstName']) || empty($_POST['Contact0LastName']) || 
    empty($_POST['Contact0Email']) || empty($_POST['Contact0Phone1']) || 
    empty($_POST['CaptchaInput']) || !empty($_POST['LeadBlind'])) { 
echo "Please fill out all fields marked *"; 
die(); 
} else { 

//curl stuff 
} 
?> 

和形式

<form id="Lead" method="post" action="PHP/Lead.php" accept-charset="UTF-8"> 


       <ul id="LeadForm"> 
        <li>*required field</li> 
        <li> 
         <input type="hidden" name="LeadBlind" id="LeadBlind"> 
         <label for="Contact0FirstName">1| First Name*</label> 
         <label for="Contact0LastName">2 | Last Name*</label> 
         <label for="Contact0Email">3 | Email*</label> 
        </li> 
        <li> 
         <input type="text" name="Contact0FirstName" id="Contact0FirstName"> 
         <input type="text" name="Contact0LastName" id="Contact0LastName"> 
         <input type="text" name="Contact0Email" id="Contact0Email"> 
        </li> 

        <li> 
         <label for="Contact0Phone1">4| Daytime Phone*</label> 
         <label for="Contact0Phone2">5| Evening Phone</label> 
         <label for="CaptchaInput">6| Please enter the code</label> 
        </li> 
        <li> 
         <input type="text" name="Contact0Phone1" id="Contact0Phone1"> 
         <input type="text" name="Contact0Phone2" id="Contact0Phone2"> 
         <input type="text" class="numbers" name="Captcha" id="Captcha" value="" readonly> 
         <input type="text" class="numbers" name="CaptchaInput" id="CaptchaInput" size="6" maxlength="6"> 
        </li> 
        <li> 
         <input type="submit" id="LeadSend" value="Try It Now!"> 
         <span id="processing">Submitting Your Request</span> 
        </li> 

        <li class="text">You will get 30 days of NinjaTrader + Rithmic (the data feed) to experience how trading should really be.</li> 
        <li class="text"><a href="mailto:[email protected]?subject=Trader's Platform Support Request">Email Support</a> or call 800 771 6748 (Optimus Trading Group)</li> 
       </ul> 
       <div class="clear"></div> 
      </form> 

在Firebug,它顯示領域獲得通過,具有價值,但我得到「請填寫所有標有*」的錯誤回。

回答

1

之間。這裏:

<?php 
     if(empty($_POST['Contact0FirstName']) ... 

請把

print_r($_POST); 

,並確保所有的按鍵,你正在訪問來自數據是正確的,填充。

IE:

<?php 
print_r($_POST); 
if(empty($_POST['Contact0FirstName']) ... 
+0

我把print_r($ _ POST);並返回螢火蟲陣列 ( ) 請填寫標記爲* – 2011-05-23 17:00:36

+0

的所有字段您可以在firebug中查看它,但只是在實際運行代碼的問題頁面上查看源代碼,您會看到一個數組鍵(表單鍵)和值......匹配起來,看看你是否有拼寫錯誤。 – 2011-05-23 21:24:42

0
!empty($_POST['LeadBlind'] 

此字段只能是空的,因爲它是隱藏的,你沒有賦值給它。此外,這是非常糟糕的HTML(標籤應該關閉),我會使用$_POST-功能在您的表格中設置的每個$_POST-功能。因爲如果某個字段沒有值並且表單正在發送,則首先排除$_POST-陣列中的條目。

+1

不錯,同樣的想法,Facebook放慢了我發佈的第一個= P – SAFAD 2011-05-23 16:45:23

+0

我使用'LeadBlind'來「嘗試」和檢測殭屍,因爲它是一個人類不會看到的隱藏領域,所以如果一個機器人填充它,然後它有一個價值 - 它失敗了。 – 2011-05-23 16:54:12

+0

博特會填充隱藏字段? – 2011-05-23 17:54:08

2
!empty($_POST['LeadBlind']) 

閒來無事導致問題

嘗試使檢查其空 別的嘗試刪除一個接一個領域,看看問題究竟出

否則

var_dump($_POST);<?php標籤

+0

我在第二行中就像上面那樣,它在第二行返回了一個Parse Error。我有「LeadBlind」來嘗試和檢測機器人,它是一個隱藏的輸入,如果一個機器人填充它應該返回和錯誤。人們不會看到它,因此不應該填寫它。我錯了嗎? – 2011-05-23 17:02:47

+0

什麼是你的PHP信息,你可能正在使用過時的版本(4)或其他東西,或者你編譯錯誤,嘗試做phpinfo();並將版本退回 – SAFAD 2011-05-24 08:12:22