PHP Session_start 挂起

标签 php session

有点奇怪的问题,好的,这是我的设置...

  1. domain.com 调用从 sub.domain.com 上的 Iframe 读取数据
  2. sub.domain.com 对 sub.domain.com/call.php 进行 ajax 调用
  3. sub.domain.com 返回对 domain.com 的 ajax 调用

又名长轮询

现在,当没有 session 数据时一切正常(我关闭浏览器并重新启动页面)。但是,一旦我重新加载页面并且它们是 session 数据,call.php 就会执行 start_session() 并卡在那里。

我几乎尝试了所有方法,但无法解决这个问题。我试过销毁 session 、取消设置所有 session 变量、修改一些 ini 设置,但没有任何效果。

这是 session 数据所在的 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 锁定引起的。然后,当新页面加载时,它不会工作,直到旧 session 超时。 session_write_close() 将修复它。

关于PHP Session_start 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2323734/

相关文章:

服务器离线时 session 持久性 Hazelcast 客户端初始化

java - 在 doPost/doGet 期间处理 session 时 session 是否会过期,如果是,可以采取什么操作

php - 像亚马逊一样无休止的 PHP session (理论)

php - CodeIgniter 两个表Left Join在右表缺失时不返回左表的Join Condition id

php - 从同一文件夹获取 php

php - 将动态填充的下拉列表的值传递给 PHP 文件

javascript - 无法使 AJAX 调用或 session 正常运行

.net - 如何在 WCF 中使用 SSL wsHttpBinding 启用 session

php - Google map (api v3) - 循环遍历 mysql 查询结果以进行地理编码并在 map 上放置多个标记

php - 应用程序中管道/阶段的设计模式