2009-06-15 2 views
0

У меня есть следующий класс, который обрабатывает мой пользователь, который входит в систему/выходил из системы (я включил только то, что здесь важно). Я хочу перенаправить пользователей, которые вошли в систему, которые посещают login.php на этой странице учетной записи. Я делаю это с помощью ....Вопрос переменной класса PHP

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

Вопрос заключается в перенаправляет myaccountnew.php погоды переключить его истинным или ложным .. (хотя это не когда условие (2> 3). АОЛО когда я эхо $ User-LoggedIn, ничего не приходит. Я своего рода тупик ...

Heres класс

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

Вот что logout.php выглядит

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

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

$ _SESSION = array(); session_destroy(); ?>

+0

Слишком быстро для меня :) 3 ответа при наборе ответа. –

+0

О, давай ... :) –

+0

Христос, я не могу поверить, что пропустил дополнительный знак равенства. Спасибо;) – asdfasdfasdfasdf

ответ

6

Вы используете одиночные равно (=) вместо двух (==)

Кроме того, я бы сильно рекомендую добавить следующее:

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

Кроме того, поскольку это свойство является логическим, вы должны сравнивать с фактическим значением bool true вместо строки "true".

if ($User->loggedIn == true) 

// or even shorter: 

if ($User->loggedIn) 

это потому, что:

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

Любое значение строки, кроме пустой строки или строки "0" считается истинным.

+0

отличная точка о добавлении die() для предотвращения продолжения обработки страницы –

1

заменить

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

с

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

потому

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

является назначение и всегда возвращает истину

, вероятно, просто typ0 о е ваш =]

Смежные вопросы