2010-01-18 6 views
2

사이트에서 JSONP를 사용하면 xyz.com이라고하며 사이트 abc.com/test.php를 호출합니다. 그러나이 사이트를 호출 할 때마다 IE6과 IE7에서 새로운 세션 ID를 얻습니다. 다른 브라우저에서는 일정하게 유지됩니다. JSONP PHP 세션이 일정하지 않습니다.

test.php의 코드

은 같은 것입니다 : 내가 다른 창에서 http://abc.com/test.php를 방문하여 JSONP 코드 xyz.com에서 내 페이지를 새로 고침 한 후,

<?php 
session_start(); 
echo session_id(); 
?> 

그러나, 일정한 ID를 보여줍니다. 나는 이유가 없다. 어떤 제안?

이는 IE6 및 IE7에서만 발생합니다. 예상대로 모든 작업을 중단하십시오. 어떻게 든 IE6과 IE7은 실제로 다른 창에서 사이트를 방문 할 때까지 세션 ID (즉 쿠키 이름)를 유지하기 위해 이음매를 사용하지 않습니다.

답변

3

PHP.net에 대한 일부 정보를 기반으로이 헤더가 추가됩니까?

<?php header('P3P: CP="CAO PSA OUR"'); ?> 

인용구 :

"해결 방법 서빙 서버가 아닌 다른 서버에있는 프레임 (.html 중에서 또는 다른 파일 타입)로 지칭되는 .PHP 파일 세션 변수를 이용. PHP : 이러한 조건 IE6 이상 자동에서

는 (으로 session_start()를 invoquing에 의해 암시 적으로 또는 명시 적으로) 인 세션 쿠키를 만드는 시도를 거부

.3210

결과적으로 세션 변수는 빈 값을 리턴합니다.

MS kb에 따르면 원격 .php 페이지 이 권한이 부여되었다는 사실을 악용하지 않겠다는 헤더를 추가하는 것이 좋습니다.

장소 원하는 세션 변수 생성/업데이트됩니다 .PHP 파일에이 헤더 : IE는 아무튼 그대로 "이이 해결되지 않으면

는, HTTReferer 함께 할 수있는 뭔가가 될 수도를 JavaScript로 시작하는 요청에 대해 보내지 마십시오 (IE에서이 작업을 수행하면 HTTR Referer를 보낼 수 없습니다) document.location.href = 'http://example.com/';

+0

대단히 고맙습니다. 내 점수를 줄 수 있다면 정말 도움이 될 것입니다. –

+0

도움이 되니 기쁩니다! – scunliffe

관련 문제