PHP: файлы сессий не содержат данных - PullRequest
2 голосов
/ 11 июля 2011

Я искал в интернете, включая переполнение стека, несколько дней, пытаясь решить мою проблему с помощью PHP-сессий. С одной стороны, я заметил, что большинство уроков просто говорят: «Вот код, иди и используй его». и не так много "Вот как это работает". Кроме того, все вопросы / ответы, которые я нахожу, касаются информации, которая теряется при обновлении или после переключения страниц, и ни одна из них не относится ко мне.

Данные в $ _SESSION сохраняются / загружаются независимо от того, какую страницу я просматриваю. Моя проблема в том, что когда я просматриваю файлы сессий на сервере, в них нет данных. Кроме того, когда я уничтожаю сеанс или сбрасываю переменные, информация все еще сохраняется, и при следующем обращении к $ _SESSION получается старая информация.

Для устранения неполадок в поведении сеансов на моем сервере я создал очень простой скрипт:

<?php
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}

echo $_SESSION['count'];
?>

Это ВСЕ код на странице (можно посмотреть здесь:). Каждый раз, когда эта страница обновляется, новый пустой файл сеанса сохраняется в указанном каталоге на сервере, и счетчик не увеличивается.

Дополнительная информация:
Для получения информации об установке php:
Размещено на общем хостинге GoDaddy - ОС Linux
Я обновлю разрешения для каталога phpsessions, чтобы они были временно доступны для просмотра в ближайшее время. ()

Ответы [ 3 ]

3 голосов
/ 11 июля 2011

Вам нужно позвонить session_start(), прежде чем пытаться использовать сеанс.

2 голосов
/ 11 июля 2011

Вы должны начать сеанс, используя session_start()

Не только один раз на каждой странице используемых вами сеансах убедитесь, что session_start()

Как это:

<?php
session_start();

// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}

echo $_SESSION['count'];
?>
0 голосов
/ 08 декабря 2013

ОБНОВЛЕНИЕ: я давно не собирался переполнять стек и решил оглянуться назад на этот вопрос, потому что это был один из двух вопросов, которые я спросилЯ хотел бы упомянуть, что проблема заключалась в том, что имя сеанса php было изменено, и его необходимо было вернуть к значению по умолчанию.

...