$ _SESSION не сохраняет данные - PHP - PullRequest
1 голос
/ 05 октября 2011

Раньше я использовал сеансовые переменные несколько раз, без проблем, но теперь у меня это получилось ...

Параметр $_SESSION var, который я задаю, становится неактивным каждый раз, когда скрипт PHPсработал, хотя он устанавливает нормально для одной переменной за раз.

if (!isset($_SESSION['badList'])) {
    print 'not set - again?';
    $_SESSION['badList'][0] = $lineNum;
}
else
{
    $_SESSION['badList'][count($_SESSION)] = $lineNum;
}

Здесь «не установлено - снова?»срабатывает каждый раз, когда я выполняю подходящее действие, т. е. PHP не может найти начальный сеанс var.Кажется, что кэш сеанса полностью очищается при запуске скрипта, что портит сессию.

Что я могу сделать?Большое спасибо.

1 Ответ

3 голосов
/ 05 октября 2011

Убедитесь, что вы позвонили session_start(), /etc/php.ini (или системный эквивалент) имеет набор session.save_path (обычно /var/lib/php/session/), и этот каталог доступен для записи вашим веб-сервером (в Linux это должно быть drwxrwx---) и что ваш диск не заполнен.Если ваши сеансы записываются в удаленное хранилище (база данных, memcached и т. Д.), Убедитесь, что вы можете подключиться к нему с учетными данными, которые использует ваше приложение (если применимо).

edit: также убедитесь, чтоВы звоните session_write_close() в конце вашего запроса - если вы этого не сделаете, то данные сеанса могут быть не записаны

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...