У меня есть 2 страницы и один класс, index.php, loggedin.php и userclass.php.

**

Index.php

**

require 'userclass.php';
$user = new User();


if($user->loggedin = true){
    header("location: loggedin.php");
    die();
}   

**

Loggedin.php

**

require 'userclass.php';
$user = new User();

if($user->loggedin = false){
    header("location:index.php");
    die();
}


if(isset($_POST['logout'])){
    $user->logout();
    header("location:index.php");
}

**

Userclass.php

**

public $loggedin = false;


public function logout(){
    session_destroy();
    $this->loggedin = false;
    return $this->loggedin;
}

Я не могу выйти из системы или посетить индексную страницу без перенаправления на loggedin.php. У меня такое чувство, что это может быть связано с моей областью действия переменной, вошедшей в систему, или с тем, где она используется? Извините, я новичок в OO php и буду признателен за любую помощь. Спасибо

P.s. некоторые другие нерелевантные функции были опущены, однако, если вы думаете, что они могут быть актуальными, я их тоже опубликую.

0
user1571463 3 Авг 2012 в 18:36

1 ответ

Лучший ответ

Для выполнения сравнения необходимо использовать два знака равенства, в противном случае вы повторное выполнение задания:

if($user->loggedin == true){

....

if($user->loggedin == false){

Как вы это написали, вы каждый раз устанавливаете loggedin равным true.

2
nickb 3 Авг 2012 в 18:37