Intereting Posts
Загрузить изображение на веб-сервер PHP из iOS Импорт 14-значной метки времени из CSV в MySQL и избежание удаления данных Приложение электронной почты MPDF отправляет пустой PDF-файл Если таблица mysql db не содержит строку с определенным идентификатором, добавьте данные в таблицу Использование PHP для создания PDF-файла из простого текста и текста HTML Функция вызова в массиве (PHP) PHP API для Hotmail, Gmail и Yahoo? PHP – сохранить входную переменную для статического повторного использования Дополнительные группы Regex? Имена функций Php в паре с классами Представление PHP-формы, проверка переменных php одновременная загрузка файлов из одного браузера и одного и того же сценария php В PHP, почему «или die ()» работает, но «или возвращать» нет? Magento – присвоение атрибутов категориям в многоуровневой навигации преобразование числовой базы 10 в основание 62 (a-zA-Z0-9)

Определение того, установлена ​​ли переменная во включенном файле в PHP

не уверен, что у меня есть уникальная проблема или просто не удалось найти правильные термины в 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: Решил его, см. Мой ответ ниже!