Своего рода странная проблема, хорошо вот моя установка...
Иначе длинный опрос
Теперь, все работает отлично, когда нет никаких данных сессии (я закрываю браузер и перезапускаю страницу). Однако, после того как я перезагружаю страницу, и их данные сессии, call.php делает start_session () и зависает там.
Я попробовал почти все и не могу понять это. Я попытался уничтожить сессию, сбросив все переменные сеанса, изменив некоторые ini настройки, и ничто не работало.
Вот код call.php, где данные сессии...
session_start();
$sql = ("SELECT userid FROM status WHERE typing = '".mysql_real_escape_string($userid)."'");
$result = mysql_query($sql);
if ($result && mysql_num_rows($result) > 0) {
$row = mysql_fetch_array($result);
$typing_id = $row['userid'];
if (!empty($typing_id)) {
if (isset($_SESSION['typing2'])) {
unset($_SESSION['typing2']);
}
} else {
$typing_id = "-1";
}
} else {
$typing_id = "-1";
if (isset($_SESSION['typing'])) {
unset($_SESSION['typing']);
}
}
if ($_SESSION['typing'] != $typing_id && !isset($_SESSION['typing2']) || $initialize == "1") {
$typing = array('typing_id' => $typing_id);
}
if ($typing_id == "-1") {
$_SESSION['typing2'] = "-1";
} else {
$_SESSION['typing'] = $typing_id;
}
У кого-либо есть какие-либо идеи? Я думал, что это могло бы иметь отношение к домену, но я не уверен.
Спасибо!
Я действительно выяснил (после многих часов отладки и исследований), что проблема возникает из-за блокировки PHP-сессии. Затем, когда загружается новая страница, она не будет работать, пока не завершится старая сессия. Функция session_write_close() исправит это.
Хранение сеансов по умолчанию в php основано на файлах cookie. если вы его используете, вы должны установить домен для cookie сеанса в php.ini
http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-domain