2012-06-27 4 views
1

다른 PHP 파일에서 선언 한 세션 변수에 액세스하려고합니다.다른 PHP 파일에서 세션 변수에 액세스

어떻게하면됩니까?

내가 한 일은 다음과 같습니다.

test.php

$_SESSION['SESS_VERSION'] = $member['Version']; 
session_write_close(); 
header('location: '.$_SESSION['SESS_VERSION']); 

이 세션 변수가 작동하고 나는 제대로 다른 페이지로 이동하고있다. 예를 들어 해당 페이지에

:

test2.php 

내가 나에게 JSON 형식의 데이터를 반환하는 자바 스크립트에서 PHP 스크립트를 호출하고 있습니다.

내가 그 test3.php 스크립트에서 일을하려고 한 것은 여기 test.php

에서 세션 변수에 액세스하는 코드 것입니다 :

<?php 
header("Content-type: application/json; charset=UTF-8"); 

echo '{ "results" : [ '; 

$result = dbMySql::Exec("SELECT 
    m.data1 
    v.data2, 
    k.data3 
FROM {$_SESSION['SESS_MAIN_BASE']} m, {$_SESSION['SESS_SECOND_BASE']} v, {$_SESSION['SESS_THIRD_BASE']} k"); 
$result_array = array(); 
?> 

나는이에 세션 변수에 액세스 할 수없는 이유 PHP 페이지? 어쩌면 내 구문이 올바르지 않을 수도 있습니다. 그러나 이것은 내가 얻는 오류입니다 :

Warning: Cannot modify header information - headers already sent 

물론 변수가 비어있는 오류입니다.

+0

내가 아는 한 동시에 'echo'와'header '를 동시에 사용할 수 없습니다. –

+1

[망할 설명서 읽기] (http://php.net/manual/en/functionsession-start.php) 또는 [search StackOverflow] (http://stackoverflow.com/questions/9942907/php-sessions) -not-working-correctly) – PenguinCoder

답변

4

당신은 다른 세션 변수가 PHP 파일에서 의미가 PHP 스크립트의 각 상단에

으로 session_start()

이 필요합니다.

또한 당신은 당신이 여기

을 가지고 있기 때문에 헤더 오류를 수정할 수 없음 코드가 점점됩니다 콘텐츠하기 전에 모든 헤더 기능을 이동

는 헤더 전에 브라우저로 전송중인

+1

코드 블록에있는 * '여기 코드'*는 실제로 부적절한 SO 형식이며 실제 파일 내용이 아닙니다. – PenguinCoder

+0

사실이 경우 그는 php 태그 앞에 공백이있을 뿐이므로 그 코드로 헤더 오류가 발생하는 것입니다. 하지만 $ _SESSION을 사용하기 전에 session_start를 사용하지 않는다면 결코 LOL을 알 수 없습니다. –

관련 문제