2013-08-16 2 views
3

Я использую PHP с XAMPP. Мои PHP-файлы работают, но если я вызываю session_start() в любом месте скрипта и запускаю его, записывая «Waiting for localhost» в заголовок страницы, а страница загружается навсегда, просто отображается пустая страница и продолжает загружаться.session_start() сохраняет файл навсегда

Я также попытался включить ошибки и никаких ошибок.

Это работает:

<?php 
echo "test"; 
?> 

Это не работает (пустая страница и страница загружается навсегда)

<?php 
session_start(); 
echo "test"; 
?> 

EDIT: Благодаря предложению Фреда, я отправляю свою сессию информация от phpinfo():

Session Support enabled 
Registered save handlers files user 
Registered serializer handlers php php_binary wddx 

session.auto_start 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:\xampp2\tmp C:\xampp2\tmp 
session.serialize_handler php php 
session.upload_progress.cleanup On On 
session.upload_progress.enabled On On 
session.upload_progress.freq 1% 1% 
session.upload_progress.min_freq 1 1 
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS 
session.upload_progress.prefix upload_progress_ upload_progress_ 
session.use_cookies On On 
session.use_only_cookies Off Off 
session.use_trans_sid 0 0 
+0

*» в заголовке страницы» *? Это ваш полный код? Я не вижу названия страниц, поэтому это, очевидно, не полный код. –

+1

Я думаю, что он означает статус прогресса, Фред. –

+0

Запустите это: 'echo session_status();' Что вы получаете? '0',' 1' или '2' – Bora

ответ

1

Изучив это на своей собственной enviro я думаю, что это сбой в самом стеке программного обеспечения XAMPP, я получаю ошибки в своем системном журнале ошибок, указывающие на то, что дочерний процесс вышел с длинным кодом состояния, за которым следует перезапуск. Это не связанная с PHP ошибка, скорее это ошибка в реализации XAMPP. Я отправил детали ошибки в Bitnami, который является разработчиком проекта, и, надеюсь, они смогут решить эту проблему и опубликовать обновленную версию, тем временем я бы рекомендовал использовать wamp.

0

У меня была эта проблема, когда я запускал более одной страницы, использующей session_start() на локальном хосте одновременно.

" PHP записывает свои данные сессии в файл по умолчанию. При выполнении запроса в PHP скрипт, который запускает сеанс (session_start()), эта сессия файл заблокирован. Это означает, что если ваш веб-страница делает многочисленные запросы на PHP скрипты, например, для загрузки содержимого с помощью Ajax, каждый запрос может быть блокировка сессии и предотвращения других запросов от завершения. « http://konrness.com/php5/how-to-prevent-blocking-php-requests/

+0

Файл заблокирован только за наносекунды. У вас может быть 10000 запросов в секунду, и они не заметно блокируют друг друга. Блокировка происходит очень быстро. – DanFromGermany

+0

http://stackoverflow.com/a/14966334/3787376 «У вас есть классическая проблема с сеансами, поддерживаемыми файловой системой. Ваш сценарий загрузки блокирует файл поддержки сеанса в течение его продолжительности, поэтому невозможно получить доступ к информации о сеансе до тех пор, пока не будет выпускает замок ». и «Чтобы освободить блокировку сеанса, вызовите' session_write_close' в любой момент из вашего сценария загрузки. Это не даст вам доступа к переменным сеанса, пока вы снова не вызовете 'session_start'. Вы можете повторить этот цикл столько, сколько хотите». Вот некоторые доказательства того, где происходит блокировка. – Edward

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