У меня странная ситуация, когда я снова открываю Firefox утром, я получаю ошибки PHP на странице, потому что переменные сеанса используются, но не определены.require_once action при повторном открытии браузера (Firefox?)
Браузер настроен на повторное открытие вкладок, которые были оставлены открытыми, а скрипт PHP, который генерирует вывод страницы, начинается с require_once, вызываемый сценарий обеспечивает запуск сеанса и установку переменных сеанса для сайта.
В течение дня это прекрасно работает, однако, утром утром, когда я снова открываю браузер и нажимаю на вкладку, выражения «2», которые обрабатывают ошибки сеанса, вызывают ошибки, поскольку эти переменные сеанса не определены.
Они «безоговорочно» определены в сценарии require_once, поэтому я предполагаю, что если страница перезагружается браузером, предполагается, что сценарий уже загружен и не перезапускается, однако сеанс не выполняется начал.
Я не могу найти статей, которые описывают эту проблему, и поскольку я могу только «легко» протестировать ее один раз в день, я подумал, что лучше спросить гуру.
В соответствии с просьбой, добавил пример кода ...
Верх главной страницы
// Include Site Configuration And Global Functions
require_once 'thissite.php';
echo <<<HTML
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>My Company - B2B Trade Stockist Sign In</title>
HTML;
include'head.php';
echo <<<HTML
</head>
<body>
<div class="container padding-10" style="text-align:center;">
etc......
HTML;
Часть head.php, который выводит раздел страницы днищем
if ($_SESSION['ZEN_DESK'] == "on") {
echo <<<HTML
<!-- Start of Zendesk Widget script -->
code removed
<!-- End of Zendesk Widget script -->
HTML;
}
Часть ofsite.php, который контролирует настройки сайта
// Ensure session started
if (!session_id()) {
session_start();
}
// Zen Desk:
// This allows you to control whether Zen Desk is active for a site.
$_SESSION['ZEN_DESK'] = "off"; //(on/off)
В обычных условиях в течение дня, когда страница загружается, определяется переменная сеанса ZEN_DESK. Однако, если браузер закрыт, а вкладки остаются открытыми в конце дня, когда утром нажимается вкладка, я получаю сообщение об ошибке PHP, потому что ZEN_DESK не определен.
Ну, пожалуйста, разместите код, который вы используете? Трудно решить ошибки, угадывая –
. Какое условие вы проверили для проведения сеансов? Я имею в виду, что '' if isset ($ _ SESSION) && $ _SESSION! = '') '' – Tarunn
Я «ожидаю», что thissite.php будет выполняться каждый раз, когда страница загружается, но, похоже, это не так, после того, как браузер был перезагружен.Возможно, хотя срок действия сессии истек, тот факт, что страница по-прежнему открыта, не приводит к тому, что thissite.php будет выполнен снова? –