2015-10-18 65 views
1

嘿,我有一些問題沒有讓我的錯誤顯示在我的表單上。這是代碼我現場運行(只是在我的託管網站上測試它),當我把東西放到測試領域時它沒有顯示任何東西。任何想法可能是錯的?註冊表單上的Php「errors」

<?php 

    if ($_POST['submit']) { 

     if (!$_POST['email']) $error.="Please enter your email!"; 
     else if !(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) $error.="Uh Uh uh, you didn't enter a valid email address!"; 

    if (!$_POST['password']) $error.="Please enter a password!"; 
     else { 

     if (strlen($_POST['password'])<8) $error.="Please enter a password of at least 8 characters."; 
     if (!preg_match('`[A-Z]`',$_POST['password'])) $error.="Please include at least one capital letter in your password." 

     } 

    if ($error) echo "There were error(s) in your sign up details:".$error; 
    } 


?> 


<form method="post"> 

    <input type ="email" name="email" id="email" /> 

    <input type ="password" name="password" /> 

    <input type ="submit" name="submit" value ="Click for Cookies" /> 

</form> 
+0

有很多事情要說,但最重要的是要以合理的方式縮進代碼(如果您對如何編寫格式良好的代碼沒有任何意見,請查看PSR建議)。要知道數組項是否存在,請不要寫'if($ _POST ['thing'])'但使用'isset',例如:if(isset($ _ POST ['thing']))'並在需要後檢查值。 –

回答

1

我要重複一下@Casmir中有關使用isset評論說,但你有沒有嘗試過的東西提交不正確,然後簡單地瀏覽網頁源?當你這樣做時,那裏的文字是?

如果不是那麼您的測試條件和可能的條件查找錯誤是不正確的,請嘗試在$ error變量上使用isset。

還有一件事,你說這是在一個託管網站上,確保你已經通過本地php.ini文件將display_error設置爲On(或者你的主機支持自定義PHP配置值)以確保沒有代碼錯誤導致執行無法完成,這可能會通過「生產級別」設置隱藏(也可以在完成當然測試後刪除它們!)。

+0

我真的很感激幫助,但是我發現代碼沒有任何問題。儘管顯示它的php配置正確,但沒有運行任何php代碼,結果我的主機(iPage)不見了。我甚至把最簡單的PHP代碼放在那裏,它不工作。所以我花了一個多星期的時間嘗試處理錯誤的問題。現在我必須弄清楚我的主機有什麼問題。 再次感謝! – PsYcHoSiD

0

你的條件是不正確的,你檢查!$ _ POST [郵件],因爲你每次你需要的是檢查is_empty得到它($ _ POST [郵件]),如果是你可以回顯「不允許空」或什麼的,如果不是空的,你可以放置正則表達式來檢查有效的電子郵件ID。