2010-02-24 65 views
6

樣的奇怪問題,確定這裏是我的設置...PHP的session_start掛

  1. domain.com從通話將iFrame讀取sub.domain.com
  2. sub.domain.com品牌一個AJAX調用sub.domain.com/call.php
  3. sub.domain.com返回Ajax調用domain.com的

AKA長輪詢現在

,EV當沒有會話數據時,我可以很好地工作(關閉瀏覽器並重新啓動頁面)。但是,一旦我重新加載頁面並且它們是會話數據,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; 
     } 

有沒有人有什麼想法?我認爲這可能與域有關,但我不確定。

謝謝!

+2

歡迎來到SO Chris。沒有提供代碼示例,你不可能獲得有用的答案。這裏沒有足夠的數據來解答這個問題。它可能會被視爲「不是真正的問題」。我建議在您決定重新發布時提供更多更詳細的信息。 – hobodave 2010-02-24 04:51:31

回答

7

我居然發現,這個問題正在引起(小時,調試和研究小時後),因爲PHP會議鎖定。然後,當新頁面加載時,直到舊會話超時纔會工作。 session_write_close()將修復它。

+0

你剛剛爲我節省了很多時間。謝謝。 – richo 2011-08-04 05:42:00