2016-11-25 2 views
2

У меня есть PHP 5.6, работающий на IIS 8.5. Я использовал этот тест журнала:Сброс PHP-сессии

echo '<p>'.sizeof($_SESSION).' - '.session_id().' - '.ini_get('session.cookie_domain').'</p>';

С ней я вижу, что $_SESSION есть некоторые элементы, cookie_domain правильно установлен в php.ini, как мой домен, но session_id() имеет другую строку на каждой загрузке страницы. session_start() вызывается при каждой загрузке страницы.

Любая идея о том, что я могу сделать, чтобы сделать сеанс постоянным?

$sessionfile = ini_get('session.save_path') . '/' . 'sess_'.session_id(); показывает, где находится файл сеанса. Я могу открыть его и данные есть. Действительно, это что-то в создании каждой сессии, а не в сохранении их файлов.

Возможно ли, что некоторые настройки IIS или некоторые asp перезаписывают сеанс?

+0

Вы вызываете этот код ПОСЛЕ 'session_start();' right? – OptimusCrime

+0

Да, session_start() - одна из первых вещей. – Hikari

ответ

0

Эта проблема возникает чаще всего, если у вас нет разрешений для хранения сеанса в вашем IIS. Раньше у меня была такая же проблема. Для исправления разрешений или путей сеанса решена моя проблема.

+0

Я понимаю. Но я считаю, что это не проблема, потому что я могу найти файл сеанса и открыть его, и данные сохраняются в этом файле. Что-то сбрасывает сеанс, возможно, файл cookie, в котором хранится его ссылка. – Hikari