AJAX 요청시 $_SESSION
superglobal에 문제가 있습니다.
session_start()
세션 코딩 전에 함수가 호출됩니다. 세션 ID는 호출 코드와 AJAX 응답 코드에서 동일합니다 (두 스크립트 모두에 session_id()
이 표시됨). AJAX PHP 파일은 같은 도메인에 있습니다. 모든 것은 표준에 정의 된대로 작동해야하지만 print_r($_SESSION)
이라는 AJAX 스크립트 파일에서 나는 Arrray()
출력을 얻습니다. 내가 벽돌 벽에 충돌 한
...이 작동하지 않는 이유를 몰라요 ...
는 크롬과 파이어 폭스에 모두를 검사하였습니다.
아이디어가 있으십니까?
UPDATE :
문제는 $.ajax(...)
요청입니다! 내가 AJAX 요청을하면 올바른 세션 ID를 알게되고 session_start()
함수는 TRUE
(성공적으로 세션을 계속 진행 함)을 반환하지만 내 $_SESSSION
superglobal을 다시 설정합니다!
의 index.php :
<?php
session_start();
$_SESSION['Test']='O.K.';
echo("SESSION_ID: " . session_id());
echo("SESSION_SIZE:" . sizeof($_SESSION));
?>
... Standard HTML stuff and jQuery include ...
<script>
$.ajax(
{
type: "POST",
url: "AJAXTest.php",
data: null,
success: function(sData) { alert(sData); }
});
</script>
AJAXTest.php :
<?php
session_start();
echo("SESSION_ID: " . session_id());
echo("SESSION_SIZE:" . sizeof($_SESSION));
?>
지수는 ... 내가 왜 아직 모른다 ...
코드를 걷어 웁니다 .php 출력 :
SESSION_ID: xxxxxxxxxxxxxxxxxxxxxxx
SESSION_SIZE: 1
경고 출력 :
SESSION_ID: xxxxxxxxxxxxxxxxxxxxxxx (right session id)
SESSION_SIZE: 0
AJAX 호출 후 $ _SESSION이 비어 있습니다. 같은 세션의 다른 모든 스크립트에서 ... 나는 당황 스럽다.
'session_start()'이전에 코드가 있습니까? –
브라우저에 쿠키가 활성화되어 있습니까? – somnath
var_dump()로 확인하십시오. – sohaan