Не уверен, что у меня есть уникальная проблема или просто не удалось найти правильные термины в Google, чтобы найти ее, но моя проблема связана с неопределенной переменной и не в состоянии проверить его.Определение того, установлена ли переменная во включенном файле в PHP
На моем сайте для меню я включаю 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: Решил его, см. Мой ответ ниже!
Был ли у вас сеанс юр? Как 'session_start(); ' – devpro