PHP session_start asılı

2 Cevap php

Garip bir sorunu Tür, tamam burada benim kurulum ...

  1. domain.com aramalar sub.domain.com bir iFrame okur
  2. sub.domain.com sub.domain.com / call.php bir ajax arama yapar
  3. sub.domain.com domain.com ajax çağrısı döner

AKA uzun yoklama

Hiçbir oturum veri yokken Şimdi, her şeyi (ben tarayıcıyı kapatmak ve sayfayı yeniden) mükemmel çalışır. Ancak, bir kez call.php () bir start_session yapar ve orada asılı, ben sayfayı yeniden yükleyin ve oturum verilerini onların olduğunu.

Ben hemen hemen her şeyi denedim ve bu anlamaya olamaz. Ben, oturumu yok tüm oturum değişkenlerini unsetting, bazı ini ayarlarını değiştirerek denedim ve hiçbir şey çalıştı.

Burada oturum veri call.php kodudur ...

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;
        }

Herkes herhangi bir fikir var mı? Ben etki ile yapmak zorunda kalabilirsiniz düşünüyordum ama emin değilim.

Teşekkürler!

2 Cevap

Ben aslında, çünkü PHP oturum kilitleniyor sorun neden ediliyor (hata ayıklama ve araştırma saat ve saat sonra) öğrendim. Sonra, ne zaman yeni sayfa yüklendiğinde, eski oturum zaman aşımına kadar çalışmaz. A session_write_close () bunu çözecektir.

php varsayılan oturum depolama çerez tabanlı. Eğer php.ini içindeki oturum tanımlama için etki alanını ayarlamak gerektiğini kullanıyorsanız

http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-domain