Проблемы с переменными isset () и $ _SESSION - PullRequest
0 голосов
/ 29 февраля 2012

В настоящее время я работаю над проектом, который требует переменных сеанса для хранения информации о поиске, что является довольно распространенным явлением. Обычно я использовал isset (), чтобы проверить, существует ли переменная сеанса. Тем не менее, кажется, что есть проблема, которая сбивает с толку ... не уверен, что происходит. Любая помощь приветствуется. Код ...

<?php
# Check to make sure the session is started 
if (session_id() != '') echo 'Session has started<br/>';
# Check every possible way I know to make sure variable is set
if (array_key_exists('adminsearchrange', $_SESSION) && isset($_SESSION['adminsearchrange']) 
    && !empty($_SESSION['adminsearchrange']) && $_SESSION['adminsearchrange'] != NULL) {
    echo 'Search range is set and is not empty<br/>';
    echo $_SESSION['adminsearchrange'];
}
?>

Выход ...

Session has started
Search range is set and is not empty
Notice: Undefined index: adminsearchrange in /Users/.../events_items.php on line 1182

Основываясь на комментариях, я выбрал самый простой подход ... создал новый файл, все содержимое которого указано ниже. По-прежнему получаю ту же ошибку (см. Выше), и, как ни странно, она все еще ссылается на точную строку и файл (даже если этот файл не включен ни в коем случае) ... и нет, переписывания .htaccess любого рода. Код (все в одном файле) ...

<?php
session_start();
if (session_id() != '') echo 'Session has started<br/>';
if (array_key_exists('adminsearchrange', $_SESSION) && isset($_SESSION['adminsearchrange']) 
    && !empty($_SESSION['adminsearchrange']) && $_SESSION['adminsearchrange'] != NULL) {
    echo 'Search range is set and is not empty<br/>';
    echo $_SESSION['adminsearchrange'];
}
?>

1 Ответ

1 голос
/ 07 июня 2012

Похоже, сессия была проведена (каким-то образом). Простой session_destroy() решил проблему.

...