我有以下类来处理我的用户登录/注销(我只包括这里的相关内容).我想将登录访问login.php的用户重定向到该帐户页面.我这样做......
$User = new User();
if ($User->loggedin = 'true') header('Location:MyAccountNEW.php');
Run Code Online (Sandbox Code Playgroud)
问题是这重定向到myaccountnew.php天气我把它切换为真或假..(虽然它不是条件是(2> 3).当我回应$用户登录时,没有任何事情出现.我是有点难过......
这是班上的人
Class User {
public $loggedin = false;
public $username = "";
public $ShopperID = "";
function __construct() {
$this->CheckLogin();
}
function CheckLogin() {
if (!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) {
$this->loggedin = true;
$this->username = $_SESSION['Username'];
}
else {
$this->loggedin = false;
}
}
Run Code Online (Sandbox Code Playgroud)
看看logout.php是什么样的
<?php include ("base.php");
include("userclass.php");
$User = new User();
$User->loggedin = false;
Run Code Online (Sandbox Code Playgroud)
$ _SESSION = array(); session_destroy(); ?>
你使用单个等于(=)而不是两个(==)
另外,我强烈建议添加:
if ($User->loggedIn == 'true') {
header('location: somewhereelse.php');
die(); // <-- important!!
}
Run Code Online (Sandbox Code Playgroud)
此外,由于该属性是布尔值,您应该与实际的bool值true而不是字符串进行比较"true".
if ($User->loggedIn == true)
// or even shorter:
if ($User->loggedIn)
Run Code Online (Sandbox Code Playgroud)
这是因为:
true == "true"
true == "foo"
true == "false"
Run Code Online (Sandbox Code Playgroud)
除空字符串或字符串之外的任何字符串值都"0"被视为true.