2012-12-12 58 views
0

我有一個在外國網頁上注入按鈕的書籤。點擊該按鈕時,會出現一個包含我網站頁面的彈出窗口。會話變量在彈出窗口中丟失?

我使用所謂的Laravel一個PHP框架,經測試使用Chrome瀏覽器

問題:當我檢查用戶是否是從我的網站頁面發起這是彈出窗口中登錄,它總是返回該用戶沒有登錄。

if(Auth::guest()) { 
    echo "Not logged in"; 
} else { 
    echo "Logged in"; 
} 

然而,當我直接訪問同一頁面(未在其他網站開了一個彈出窗口),我可以看到我在我登錄!

這裏有什麼問題,以及如何解決這個問題?


彈出JS代碼

var popupOptions = 'status=no,resizable=yes,scrollbars=yes,personalbar=no,directories=no,location=no,toolbar=no,menubar=no,width=632,height=295,left=0,top=0'; 
window.open(' http://www.domain.com/controllername/add?url='+url, '_blank', popupOptions); 
+0

兩件事,你沒有啓動在彈出頁面的會話,或設置的cookie會話設置了一個不同的cookie路徑說/ somefolder /該會話將無法在該文件夾之外訪問。檢查您的Cookie以查看設置的內容。 –

+0

當我進入彈出窗口時,我看到2個同名的「laravel_session」cookie,對於'www.domain.com'和'domain.com'。當我在彈出窗口之外查看我的網站時,我只有cookie設置爲'domain.com' ... – Nyxynyx

+0

您可以在頁面上總是拋出一個'print_r($ _ SESSION)',看看*獲得了什麼*通過。 (這可能與「引薦者」字段有關) –

回答

0

你不應該有兩個cookie具有相同的名稱。它看起來像彈出窗口設置另一個相同的名稱,但不同的域名覆蓋有效的應該爲域名的一個cookie