Мне не удалось выяснить эту проблему - это просто не имеет никакого смысла.PHP переменная сеанса не сохраняется (хотя некоторые из них)
Сервер является PHP 5.2.6 работает на Windows NT PDP-IIS 5.2 сборки 3790.
Сначала я подтвердивших сессии работают через этот тестовый сценарий:
<?php
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Counter ".$_SESSION['counter']++.".<br><a href=".$_SERVER['PHP_SELF'].">reload</a>";
?>
приращений
счетчик - это работает.Мой сайт использует пользовательский встроенный фреймворка (я написал), и я положил последний код функции приложения к этому для целей тестирования:
echo session_id(); echo '<pre>'; var_dump($_SESSION); echo '</pre>';
session_write_close(); exit();
Первые несколько строк этого файла являются :
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
session_start();
Сессия дампов и выглядит так, как ожидалось. Теперь я иду на сервер и открываю файл сеанса - и результат, похоже, зависит от того, какой браузер я использую. Для Chrome и Safari файл сеанса пуст. Для Opera и IE8 файл сеанса выглядел отлично. Я доберусь до FireFox через минуту, но в этот момент FireFox оказался прекрасным.
Таким образом, для целей тестирования сразу после session_start() Я добавил следующие строки:
$_SESSION['bogus'] = -5;
$_SESSION['test'] = 'other';
Я закрыл браузеры и попытался снова на сайт, чтобы я мог быть уверен, что у меня был новый сеанс. Снова файлы сеансов Opera и IE8 оказались прекрасными. У Chrome и Safari были «фиктивные» и «тестовые» значения, но мое другое значение SESSION отсутствовало. FireFox сначала имел ту же проблему, что и Chrome и Safari, - но после обновления страницы, остальная часть сессии появилась. Обновление не помогло Chrome или Safari.
Вот что var_dump выглядит на данный момент:
array(3) {
["bogus"]=>
int(-5)
["test"]=>
string(5) "other"
["saved_form"]=>
array(1) {
["dgvSJM"]=>
array(4) {
["method"]=>
string(4) "post"
["processor"]=>
string(0) ""
["formid"]=>
string(10) "searchForm"
["fields"]=>
array(2) {
["searchTerm"]=>
array(5) {
["label"]=>
string(10) "SearchTerm"
["type"]=>
string(6) "search"
["required"]=>
bool(false)
["multiple"]=>
bool(false)
["selectempty"]=>
string(6) "B5BMXw"
}
["formInput_0"]=>
array(5) {
["label"]=>
string(0) ""
["type"]=>
string(6) "submit"
["required"]=>
bool(false)
["multiple"]=>
bool(false)
["selectempty"]=>
string(6) "TkZUfo"
}
}
}
}
}
я создал другой сайт с другой подобласти, и скопировал мой код точно над - и он прекрасно работает «saved_form» показывает вверх отлично в файлы сеанса. Поэтому я попытался удалить оригинальный сайт и воссоздать его - это не помогло.
Кто-нибудь знает, что происходит и/или как я могу это исправить?
Спасибо.
Вы пытались очистить кеш/куки в проблемных браузерах? –
Да на самом деле, хотя это не помогло. Хотя я не уверен, как кэш/файлы cookie повлияют на файл сеанса на сервере. Проводка cookie сеанса передается - сеанс просто не сохраняется должным образом. – Chris