2012-04-05 2 views
1

Данные сеанса PHP хранятся только один раз, не в состоянии обновить!Данные сеанса PHP не сохраняются просто

Пожалуйста, помогите мне сеансы сохраняются, но нет никакого способа, чтобы обновить данные сеанса:

Рассмотрим следующий пример кода:

<?php 

session_start(); 


header("Cache-control: private"); 


    $_SESSION['counter']++; 

    echo $_SESSION['counter']; 

    session_write_close(); 

?> 

При вызове в первый раз файл сессии C: \ Window \ Temp \ sess_fs3r6tfmoc2tpv9ggnv8542ib2 генерируется содержащий правильные данные: counter|i:1; и session_cookie также установлено, содержащий тот же sessionID:fs3r6tfmoc2tpv9ggnv8542ib2

Когда я снова побежал, счетчик не увеличивается! Файл \ Temp \ sess_fs3r6tfmoc2tpv9ggnv8542ib2 не обновляется. Идентификатор сеанса правилен.

Пожалуйста, помогите, мне кажется, проблема с конфигурацией.

I Use: 
PHP Version 5.3.10 
Windows 7 
Microsoft-IIS/7.5 
with Zend Extension  220090626 

Session Setting were all default: 
Session Support  enabled 
Registered save handlers  files user 
Registered serializer handlers  php php_binary wddx 

Directive Local Value Master Value 
session.auto_start Off Off 
session.bug_compat_42 Off Off 
session.bug_compat_warn Off Off 
session.cache_expire 180 180 
session.cache_limiter nocache nocache 
session.cookie_domain no value no value 
session.cookie_httponly Off Off 
session.cookie_lifetime 0 0 
session.cookie_path //
session.cookie_secure Off Off 
session.entropy_file no value no value 
session.entropy_length 0 0 
session.gc_divisor 1000 1000 
session.gc_maxlifetime 1440 1440 
session.gc_probability 1 1 
session.hash_bits_per_character 5 5 
session.hash_function 0 0 
session.name PHPSESSID PHPSESSID 
session.referer_check no value no value 
session.save_handler files files 
session.save_path C:\Windows\Temp C:\Windows\Temp 
session.serialize_handler php php 
session.use_cookies On On 
session.use_only_cookies On On 
session.use_trans_sid 0 0 
+0

Вы запустили ее из браузера, а не из командной строки? Сессии не работают из CLI (по крайней мере, не просто). Также убедитесь, что ваш браузер принимает файлы cookie. – DaveRandom

ответ

2

Первый комментарий пользователя о session_write_close() @http://www.php.net/manual/en/function.session-write-close.php#107945

«Остерегайтесь session_write_close при вызове PHP скрипты из страницы Ajax: это не„завершить“запись данных сеанса, но на самом деле она сбрасывает его !»

Просто удалите эту строку;)

+0

Спасибо за помощь. Я удалил эту строку. Но это все равно. Запрос страницы также не содержит ajax. –

+0

Это я снова, я нашел решение, поэтому любой, у кого такая же проблема: Мне кажется, что IIS и PHP не работают вместе хорошо. Я установил XAMPP для Windows -> XAMPP USB Lite. Используйте C: \ xampp для установки. Изменить порт в C: \ xampp \ apache \ conf \ httpd.conf от 80 до свободного порта, такого как 8001. Начало: C: \ xampp \ apache_start.bat и C: \ xampp \ mysql_start.bat Проверьте свою установку: http://127.0.0.1:8001/xampp/index.php PHPAdmin: http://127.0.0.1:8001/phpmyadmin/index.php Webroot является: C: \ XAMPP \ HTDOCS –

Смежные вопросы