2012-09-25 4 views
1

두 페이지가 있습니다. 한 페이지에서 배열을 $_SESSION에 추가합니다. 두 번째 페이지에서 배열 (성공적으로)을 읽은 다음 unset 배열을 $_SESSION에서 배열합니다.PHP 세션 배열이 계속 변경됨

그러나 두 번째 페이지는 첫 번째 페이지가 세션에 저장된 것과 다른 값을 보여 주며 첫 페이지가 반복해서 호출된다고 생각하게합니다.하지만 내가 켜져 있다면 어떻게 될 수 있습니까? 세션 및 아니 다시 페이지를 다시로드?

내가 뭘 잘못하고 있니? 감사합니다

EDIT : 두 번째 스크립트가 웹 사이트의 플래시 파일로 요청되었음을 잊어 버렸습니다. 플래시 파일의 세션 ID는 매개 변수 중 하나이며 두 번째 스크립트로 전송하여 올바른 세션을로드합니다 (session_id($_REQUEST['token']); 부분).

페이지 1 :

$_SESSION['HEADER_MODEL'] = getModelForHeaderVideo(); 
/* 
    [HEADER_MODEL] => Array 
     (
      Yes these are just random numbers (for testing) 
      [modID] => 303768959 
      [modUsername] => 347073152 
     ) 
*/ 

2 페이지 :

<?php 
     session_id($_REQUEST['token']); 
     session_start(); 

     header('Content-Type: text/html; charset=utf-8'); 

     if (!isset($_SESSION['HEADER_MODEL']['modID']) || (trim($_SESSION['HEADER_MODEL']['modID']) == '')) { 
       echo "modID=0"; 
     } else { 
       echo "&modID={$_SESSION['HEADER_MODEL']['modID']}&modUsername={$_SESSION['HEADER_MODEL']['modUsername']}"; 
       unset($_SESSION['HEADER_MODEL']); 
     } 
?> 
+2

을하도록 지시 무엇 때문에 계속 변화? –

+1

'session_id'는 무엇을하는지 알고 있습니까? – Jon

+0

사과드립니다. 나는 중요한 정보를 잊어 버렸다. 두 번째 파일은 값을 가져 오기 위해 플래시 무비에서 요청합니다. 동일한 세션을로드하기 위해 세션 ID를 두 번째 파일에 게시합니다. 나는 어제 어딘가에서이 해결책을 보았다. 원래 질문에 추가했습니다. – pilau

답변

1

는 PHP 문서를 참조하십시오

참고 : SESSION_ID에 대한 ID를 지정 세션 쿠키를 사용하는 경우() session_start()가 호출 될 때 현재 세션 id가 설정중인 것과 동일하더라도 항상 새로운 쿠키를 보냅니다.

PHP 세션 배열은 내가 문제가`으로 session_start()가`..Why 당신이 2 페이지에 새로운 세션을 시작으로 생각하는 코드가이

+0

예 방금 읽었습니다. 위의 대답에 대한 의견을 게시했습니다. 그러나 페이지 리플레시,'HEADER_MODEL' 배열에 NEW 값을 얻고 있습니다. 즉, 세션에 다시 삽입되는 것을 의미합니다. 그러나 어떻게 그럴 수 있을까요? 미안하지만 이해가 안 돼 .. 고마워. – pilau

+0

빠른 질문 ?? 왜'session_id'를 설정해야합니까? – Baba

+0

두 번째 페이지가 플래시 파일에서 호출되기 때문입니다. 그것을하는 올바른 방법이 아닌가요? – pilau