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;
}
嘗試用'die();' –
'var_dump($ reg_email);''取代'exit;' - 它會有一些falsy值。然後你可以問下一個問題,比如*「爲什麼我的'$ reg_email'總是僞造的?」* – hakre
好吧,我嘗試了var_dump,它什麼也沒有顯示,所以我var_dumped在腳本的開頭,它顯示正確的電子郵件,但是唯一的代碼是執行一個(stripslash,strip_tags和mysql_real_escape_string),這會不會導致電子郵件變量無效? – Arken