2012-11-10 27 views
0

我想弄清楚我的驗證,下面是我的代碼,我已經嘗試了很多東西,包括把它變成if else結構,但是無論我用它測試總會返回沒有電子郵件的錯誤,我不確定爲什麼。我甚至嘗試從第一個中刪除exit;,但仍然沒有顯示任何電子郵件。PhP驗證不正常退出

if(!$reg_username){ 

    $reg_error = "You have not entered a Username."; 
     $_SESSION['error'] = $reg_error; 
     header("Location: register.php"); 
     exit; 
} 

if (!$reg_email){ 

    $reg_error = "You have not entered an Email."; 
     $_SESSION['error'] = $reg_error; 
     header("Location: register.php"); 
     exit; 

} 
if (!$reg_password){ 

    $reg_error = "You have not entered a Password."; 
     $_SESSION['error'] = $reg_error; 
     header("Location: register.php"); 
     exit; 
} 
if (!$reg_password_1){ 

    $reg_error = "You have not entered your Verification Password."; 
     $_SESSION['error'] = $reg_error; 
     header("Location: register.php"); 
     exit; 
} 

任何想法?

感謝

編輯:這裏是代碼的其餘部分

$reg_username = $_POST['reg_username']; 
    $reg_email = $_POST['reg_email']; 
    $reg_password = $_POST['reg_password']; 
    $reg_password_1 = $_POST['reg_password_1']; 
    $reg_dob_day = $_POST['reg_dob_day']; 
    $reg_dob_month = $_POST['reg_dob_month']; 
    $reg_dob_year = $_POST['reg_dob_year']; 


    include_once "connect_to_mysql.php"; 
    $reg_username_length = ""; 
    $reg_password_length = ""; 
    $reg_dob_day_length = ""; 
    $reg_dob_year_length = ""; 


    $reg_email = stripslashes($reg_email); 
    $reg_password = stripslashes($reg_password); 
    $reg_password_1 = stripslashes($reg_password_1); 
    $reg_dob_day = stripslashes($reg_dob_day); 
    $reg_dob_month = stripslashes($reg_dob_month); 
    $reg_dob_year = stripslashes($reg_dob_year); 

    $reg_email = strip_tags($email); 
    $reg_password = strip_tags($password); 
    $reg_password_1 = strip_tags($reg_password_1); 
    $reg_dob_day = strip_tags($reg_dob_day); 
    $reg_dob_month = strip_tags($reg_dob_month); 
    $reg_dob_year = strip_tags($reg_dob_year); 



    $reg_username = mysql_real_escape_string($reg_username); 
    $reg_email = mysql_real_escape_string($reg_email); 
    $reg_password = mysql_real_escape_string($reg_password); 
    $reg_password_1 = mysql_real_escape_string($reg_password_1); 
    $reg_dob_day = mysql_real_escape_string($reg_dob_day); 
    $reg_dob_month = mysql_real_escape_string($reg_dob_month); 
    $reg_dob_year = mysql_real_escape_string($reg_dob_year); 


    if(!$reg_username){ 

     $reg_error = "You have not entered a Username."; 
      $_SESSION['error'] = $reg_error; 
      header("Location: register.php"); 
      exit; 
    } 

    if (!$reg_email){ 

     $reg_error = "You have not entered an Email."; 
      $_SESSION['error'] = $reg_error; 
      header("Location: register.php"); 
      exit; 
    } 
    if (!$reg_password){ 

     $reg_error = "You have not entered a Password."; 
      $_SESSION['error'] = $reg_error; 
      header("Location: register.php"); 
      exit; 
    } 
    if (!$reg_password_1){ 

     $reg_error = "You have not entered your Verification Password."; 
      $_SESSION['error'] = $reg_error; 
      header("Location: register.php"); 
      exit; 
    } 
    if ($reg_password != $reg_password_1){ 

     $reg_error = "Your Verification Passwords do no match."; 
      $_SESSION['error'] = $reg_error; 
      header("Location: register.php"); 
      exit; 
    } 
+0

嘗試用'die();' –

+1

'var_dump($ reg_email);''取代'exit;' - 它會有一些falsy值。然後你可以問下一個問題,比如*「爲什麼我的'$ reg_email'總是僞造的?」* – hakre

+0

好吧,我嘗試了var_dump,它什麼也沒有顯示,所以我var_dumped在腳本的開頭,它顯示正確的電子郵件,但是唯一的代碼是執行一個(stripslash,strip_tags和mysql_real_escape_string),這會不會導致電子郵件變量無效? – Arken

回答

2

你下面一行:

$reg_email = strip_tags($email); 

應該是這樣的:

$reg_email = strip_tags($reg_email); 

似乎你只是輸入變量名字。