не уверен, что у меня есть уникальная проблема или просто не удалось найти правильные термины в Google, чтобы найти ее, но моя проблема связана с неопределенной переменной и не может ее проверить.
Через мой сайт для меню я включаю php-файл со всеми элементами меню в нем, а затем выделяю различные части по мере необходимости. Моя проблема в том, что один из параметров меню показывает текущего пользователя. Конечно, если не войти в систему, это не задано, что приводит к тому, что файл журнала заполняется неопределенными ошибками.
Вот структура:
static.php:
<?php $menu=' <ul class="menu"> <li class="menu"><a href="#">Home</a></li> <li class="menu"><a href="#">Option</a></li> </ul>'; $usermenu=' <ul class="usermenu"> <li class="menu"><a href="#">'.$_SESSION['user_name'].'</a></li> <li class="menu"><a href="#">Change Pass</a></li> <li class="menu"><a href="#">Logout</a></li> </ul>';
index.php:
<?php include 'static.php'; echo "$menu"; if ($login->isUserLoggedIn() == 'true') { echo "$usermenu"; } if ($login->isUserAdmin() == 'true') { echo "$usermenuadmin"; } ?>
Как вы можете видеть, $_SESSION['user_name']
находится внутри статического файла, поэтому, если вы не вошли в него, он не установлен и создает ошибку.
Обычно я просто использовал if (!session_status() == PHP_SESSION_NONE) {}
, но так как он посередине, я не могу его там положить.
Один из способов исправить это – это иметь отдельный статический файл для таких вещей и включать его только в том случае, если сеанс установлен, но тогда мне нужно будет пойти и изменить код на многих страницах, и для этого потребуется отдельный файл для одна запись.
Я что-то пропустил здесь или есть простой способ исправить это? Из того, что я нашел в Интернете, невозможно откликнуться на php-код, чтобы предотвратить любые обычные способы его исправления.
EDIT: Решил его, см. Мой ответ ниже!