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