Переменная, присвоенная значению сеанса, иногда пуста

#php #variables #session

#php #переменные #сеанс

Вопрос:

Чтобы управлять сеансами на моем веб-сайте, я включаю (фактически require ) на каждую отдельную переднюю страницу PHP-скрипт, который, как я думал, должен обрабатывать вещи. Первые части этого требуемого скрипта:

Дайте сеансу мое предпочтительное имя (и, как я понимаю, « session_name() должно быть вызвано раньше session_start() «) :

 session_name('deviceSID');
 

Затем следующее, которое должно поддерживать значение сеанса, когда оно отправляется в корзину и возвращается из нее — для поддержания текущего значения сеанса на протяжении всего сеанса. В основном формы в корзину, которые появляются позже, отправляют значение сеанса, записанное в переменной (см. Ниже), в корзину, которая отправляет его обратно для поддержания состояния сеанса. (Я читал, что « session_id() нужно вызвать раньше session_start() «) :

 if (isset($_GET['sd'])) {
$sd = $_GET['sd'];
session_id($sd);
} elseif (isset($_POST['sd'])) {
$sd = $_POST['sd'];
session_id($sd);
}
 

Запустите или возобновите сеанс с указанным выше именем (и указанным выше значением, если отправлено обратно из корзины):

 session_start();
 

Фиксируйте значение сеанса в переменной:

 $deviceSID = session_id();
 

Насколько я могу судить, у меня есть порядок session_name() session_id() и session_start() правильный.

Большую часть времени все это работает без проблем; значение сеанса сохраняется до закрытия браузера, и я могу использовать значение $deviceSID переменной во всех сценариях / страницах, где все вышеперечисленное всегда требуется, для других целей.

Но только иногда я вижу уведомление в моем журнале ошибок PHP, сообщающее мне, "PHP Notice: Undefined variable: deviceSID in..." и «in» относится к другому скрипту, который включен ( include() ) на тех же страницах, и всегда после того, как приведенный выше код уже был необходим.

Казалось бы, просто иногда нет значения для сеанса, которое должно быть присвоено переменной $deviceSID , и я не вижу какой-либо конкретной серии событий, которые совпадают с несколькими случаями, когда переменная внезапно становится неопределенной.