調用我想弄清楚爲什麼這不起作用。我想要做的是在函數被調用後返回一個值。它是一個登錄功能,應該檢查數據庫中的用戶狀態。該值爲$ userStatus。根據狀態,我想返回一個值,然後觸發錯誤。然而,腳本只會觸發第一個if語句。PHP從If/Else返回值如果語句通過類
這裏是索引網頁,其中調用腳本
if(isset($_POST['btn-login'])) {
$uname = strip_tags($_POST['txt_uname_email']);
$umail = strip_tags($_POST['txt_uname_email']);
$upass = strip_tags($_POST['txt_password']);
if ($login->doLogin($uname,$umail,$upass)) {
$login->userLoginTime($uname);
$login->redirect('home.php');
} else if ($userStatus == 0) {
$error = "Your account is not active!";
} else if ($userStatus == "") {
$error = "You don't have an account, please sign up";
}
}
?>
這裏是網頁類函數的位置安置。
public function doLogin($uname,$umail,$upass)
{
try
{
$stmt = $this->conn->prepare("SELECT
user_id, user_name, user_email, user_pass, Enabled
FROM users WHERE user_name=:uname OR user_email=:umail ");
$stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
$userStatus = $userRow['Enabled'];
if ($userStatus == 5) {
if ($stmt->rowCount() == 1) {
if (password_verify($upass, $userRow['user_pass'])) {
$_SESSION['user_session'] = $userRow['user_id'];
return true;
}
} else {
return false;
}
}
if ($userStatus == 0) {
return $userStatus;
}
if ($userStatus == "") {
return $userStatus;
}
}
您是否在某處創建類的實例? – 2016-03-07 23:45:44
是的,我在頁面的最頂部有一個類的實例,抱歉沒有包含它。 – CoderPoet
是的,我有一個catch塊,但沒有錯誤。 – CoderPoet