#php
#php
Вопрос:
У меня есть несколько скриптов в моем корне mysite, и они свободно вызывают друг друга, либо с помощью ссылки, на которую нажали:
<a href="http://main.com/login.php">login</a>
или вызов местоположения заголовка:
header("Location: http://main.com/index.php");
login.php и index.php вызовите session_start() вверху, чтобы я мог поддерживать общие переменные сеанса во всех сценариях.
Теперь у меня есть jQuery в index.php для этого необходимо вызвать другой скрипт в корне сайта, util.php , используя ajax:
` galleryStatus2$.load('util.php', {
id : g.user_id,
op : "register_keys",
test_sk : test_sk,
test_pk : test_pk,
live_sk : live_sk,
live_pk : live_pk
}, `
Если я помещу session_start() в начало util.php он зависает, так что ясно, что я делаю здесь что-то не так.
Может ли кто-нибудь пролить свет на эту ситуацию и объяснить, почему я не могу поместить session_start в начало util.php ?
Спасибо.
Комментарии:
1. Одна конкретная ситуация, в которой это может произойти, — это когда два скрипта пытаются получить доступ к одному и тому же сеансу одновременно (используя стандартный сеанс на основе файлов).
2. Попробуйте вызвать
session_close()
, как только узнаете, что больше не изменяете сеанс, и то же самое касается вызова толькоsession_start()
тогда, когда вам нужно получить доступ к сеансу или выполнить запись. В качестве альтернативы, если это проблема с файловой системой, как упоминал @Jack, вы можете заменить обработчик сеанса для записи в ядро базы данных.3. При зависании должен быть журнал. Пожалуйста, приложите это к вопросу.
4. Что еще более важно, попытайтесь выяснить, почему скрипт (без необходимости) зависает в конкретном сеансе. Скрипты должны выполняться только короткое время.
5. @Scuzzy Более важно установить, действительно ли необходим обработчик сеанса с поддержкой базы данных, поскольку у них есть свои особенности.