У меня есть 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. некоторые другие нерелевантные функции были опущены, однако, если вы думаете, что они могут быть актуальными, я их тоже опубликую.
1 ответ
Для выполнения сравнения необходимо использовать два знака равенства, в противном случае вы повторное выполнение задания:
if($user->loggedin == true){
....
if($user->loggedin == false){
Как вы это написали, вы каждый раз устанавливаете loggedin
равным true
.
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.