Привет!
Есть 2 блока (1 блок = Вход / Регистрация 2 блок = Личный кабинет пользователя), которые находятся в файле
usercab.php<?php
$login_r = '<div class="reg_wrap">
<a href="../pages/login.php">Вход</a>
<a href="../pages/signup.php">Регистрация</a>
<!-- <a href="#"><img src="img/icons/loginx.svg" style="width: 35px; height: 30px"></a> -->
</div>';
$parea = '<div class="usercab_wrap">
<label class="button_chek" for="formToggler">Кабинет</label>
<input type="checkbox" id="formToggler">
<ul id="parea">
<li>'.$_SESSION['logged_user']->login.'</li> ---- выводит undefined, что логично ведь мы еще не авторизовались
<li><a href="#"></i>Профиль</a></li>
<li><a href="#"></i>Истории</a></li>
<li><a href="#"></i>Сообщения</a></li>
<li><a href="#"></i>Настройки</a></li>
<li><a href="../pages/logout.php">Выход</a></li>
</ul>
</div>'
?>
В index.php я подключаю этот файл, а также подключаю саму БД
<body>
<?php
require 'usercab.php';
require 'pages/db.php'
?>
....
И здесь if else
<?php
if( ! isset($_SESSION['logged_user'])) {
echo $login_r;
} else {
echo $parea;
}
?>
Получается, что когда пользователь не авторизован он видит 1 блок (Вход\Регистрация), а когда авторизован видит 2 блок (Личный кабинет).
Но, когда пользователь не авторизован и видит блок 1 (Вход/Регистрация) появляется ошибка undefiend, интерпретатор не может найти имя пользователя, которое я запрашиваю во 2 блоке командой
$_SESSION['logged_user']->login.
И я не пойму,
- или мой if else в html работает не совсем корректно и подгружает как бы два случая, но показывает один, поэтому и возникает ошибка, когда пользователь не авторизован (хотя это было бы заметно визуально, да и инспекторе HTML в браузере все работает как задуманно)
- или при подключении
require 'usercab.php';
в
index.php интерпретатором прочитывается сначла весь код, а потом уже применяется if else
- или мои догадки вовсе не догадки, а бред.
Поэтому вопрос к вам, как справиться с ошибкой?