Вопрос переменной класса PHP - PullRequest
0 голосов
/ 15 июня 2009

У меня есть следующий класс, который обрабатывает моего пользователя, вошедшего / вышедшего из системы (я включил только то, что здесь уместно). Я хочу перенаправить пользователей, которые вошли в систему и которые посещают 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;
    }
}

вот как выглядит logout.php

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

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

$ _ SESSION = array (); session_destroy (); ?>

Ответы [ 2 ]

6 голосов
/ 15 июня 2009

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

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

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", считается истинным.

1 голос
/ 15 июня 2009

заменить

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

с

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

потому что

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...