PHP类变量问题

时间:2009-06-15 03:57:45

标签: php

我有以下类来处理我的用户登录/注销(我只包括这里的相关内容)。我想将登录访问login.php的用户重定向到该帐户页面。我这样做......

    $User = new User();
if ($User->loggedin = 'true') header('Location:MyAccountNEW.php');

问题是这重定向到myaccountnew.php天气我将其切换为true或false ..(虽然条件为(2> 3)时不会。当我回显$ User-loggedin时,什么也没有出现。我有点难过......

继承班级

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;
    }
}

heres是什么logout.php看起来像

<?php include ("base.php");
  include("userclass.php");

  $User = new User();
  $User->loggedin = false;

$ _ SESSION = array(); session_destroy(); ?&GT;

2 个答案:

答案 0 :(得分:6)

您使用的是单个等号(=)而不是两个(==)

此外,我强烈建议添加此内容:

if ($User->loggedIn == 'true') {
    header('location: somewhereelse.php');
    die(); // <-- important!!
}

此外,由于该属性是布尔值,因此您应该与实际的布尔值true进行比较,而不是字符串"true"

if ($User->loggedIn == true)

// or even shorter:

if ($User->loggedIn)

这是因为:

true == "true"
true == "foo"
true == "false"

除空字符串或字符串"0"之外的任何字符串值都被视为true。

答案 1 :(得分:1)

替换

if ($User->loggedin = 'true')

if ($User->loggedin == 'true')

,因为

if ($User->loggedin = 'true')

是一项作业,将始终返回true

可能只是你的一个类型=]