2016-08-26 22 views
-3

它沒有檢測到一個大寫字母,這是別人的代碼,似乎每個人都在網上工作,但我。 儘管我有專用代碼,但它似乎沒有檢測到大寫字母。爲什麼在PHP

有人能找到這個錯誤在我的代碼:

<?php 

if($_POST['submit']){ 


    if(!$_POST['email']) $error.="<br />Please enter your email"; 
     else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) $error.="<br />Please enter a valid mail"; 

    if(!$_POST['password']) $error.="<br />Please enter your password"; 
    else { 

      if(strlen($_POST['password'])<8) $error.="<br />Please enter a password with atleast 8 characters"; 
      if(!preg_match('/[A-Z]/', $_post['password'])) $error.="<br />Please enter atleast one capital letter"; 
     } 

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

    } 

?> 




<form method="post"> 

     <input type="email" name="email" id="email" /> 
     <input type="password" name="password" /> 
     <input type="submit" name="submit" value="signup" /> 

</form> 

這裏是鏈接到它:

http://hassannasir.co.uk/mysql/

+4

區分大小寫:'$ _ POST [ '密碼']','不是$ _POST [ '密碼']' –

+3

一種諷刺,因爲你要找的大寫字母。 –

+0

@MarkBaker Zend爲不支持的PHP版本提供認證的一種諷刺。 –

回答

5

PHP變量是區分大小寫的。 $_POST$_post是兩個完全不同的變量。

如果你已經使用error_reporting並啓用的display_errors,你會被告知約$ _ POST既是未定義和undefined指數在使用未定義的變量。

+0

AHHHH規劃。爲什麼我總是錯過最明顯的。謝謝! –

+2

打開這些設置。他們不應該放在調試/開發系統上。 –

+0

我加了: ini_set('display_errors',1); ini_set('display_startup_errors',1); error_reporting(E_ALL); 以及一個php.ini文件: display_errors = on。 但現在由於某種原因,它口口聲聲說「未定義指數:第7行提交」。 提交已在html中定義。此外它沒有采取任何其他錯誤。對不起,我是新人,很難學習這一點。 –