2012-12-12 4 views
0

외국 웹 페이지에 버튼을 삽입하는 책갈피가 있습니다. 버튼을 클릭하면 내 웹 사이트의 페이지가 포함 된 팝업이 나타납니다.팝업 창에서 세션 변수가 손실 되었습니까?

내가 크롬 브라우저를 사용하여, Laravel라는 PHP 프레임 워크를 테스트 한 사용하고

문제 : 나는 사용자가 팝업 창에서 내 웹 사이트에서 페이지의 원래에서 로그인되어 있는지 여부를 검사 할 때, 항상 사용자가 로그인하지 않은 것을 반환합니다.

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

두 가지, 팝업 페이지에서 세션을 시작하지 않았거나 세션이 다른 쿠키 경로로 설정되었습니다. say/somefolder/세션은 해당 폴더 외부에서 액세스 할 수 없습니다. 쿠키가 설정되었는지 확인하십시오. –

+0

나는'www.domain.com'과'domain.com'을 위해 팝업 창에있을 때'laravel_session'과 같은 이름의 쿠키 2 개를 보았습니다. 팝업창 밖에서 웹 사이트를 볼 때'domain.com'에 설정된 쿠키 만 있습니다 ... – Nyxynyx

+0

언제나 페이지에'print_r ($ _ SESSION)'을 던져서 *가 * 무엇인지 확인하십시오. 통과했다. ("referrer"필드와 관련이있을 수 있습니다.) –

답변

0

. 팝업 창이 다른 이름의 동일한 쿠키를 설정하고있는 것처럼 보이지만 도메인이 다른 유효한 쿠키를 덮어 씁니다.