2012-04-19 2 views
1

그래서 PHP 세션 변수를 처리하는 데 약간의 문제가 있습니다. 나는 PHP 파일에 변수를 게시 할 수있는 jQuery를 기능을 가지고 (일, 여기에 코드를 볼 수) : 그 delicious.php 변수를 받아 볼 수 있습니다 방화범에PHP 세션 변수 및 jQuery

$('#practiceid').blur(function() { 
    var practiceid = $(this).val(); 
    $.post("delicious.php", {"pid": practiceid}); 
    }); 

감사합니다. 자, PHP 파일의 코드는 다음과 같습니다

$_SESSION['uploaddir'] = $_POST['pid']; 

문제는 지금은 다른 PHP 파일에 세션 변수를 사용하려고하면 그냥 존재하지 않는 것처럼 보인다는 것이다. index.php 파일에 session_start();을 선언했습니다.

아이디어가 있으십니까?

고마워요.

+5

'으로 session_start을 초래할 수 사용되는 할당은'단지 세션을 _initiate_하지 않습니다. 세션을 사용하는 모든 페이지에서 세션에 대한 액세스를 생성하며'$ _SESSION'을 읽거나 쓰는 _every_ 스크립트에서 호출해야합니다. –

답변

5

에 $ _SESSION 멤버를 사용해야하는 페이지마다 session_start()가 호출되었는지 확인 했습니까?

+0

나는 그것을 시험해 보았다, 그것은 일하는 것처럼 보이지 않았다. 어쨌든 세션이 _started_해야합니까? –

+2

@ user1342734 : 당신이 생각하는대로'session_start()'를 호출하면 세션이 "시작"되지 않습니다. 세션은 관계없이 활성화됩니다. 'session_start()'는 나머지 스크립트가 세션에 접근하는 것을 허용합니다. 따라서 네, 응용 프로그램 전체에서 세션 상태에 의존한다면 모든 요청이 시작될 때 호출해야합니다. – David

+0

나는 그것을 다시 시도 할 것이다. 건배. –

0

session_start()은 세션 값을 사용하는 모든 페이지에 작성해야합니다.

또한 SESSION 변수에 직접 값을 할당하지 마십시오. 이 옵션을 사용합니다 : -

if(isset($SESSION['uploaddir'])){ 
unset($_SESSION['uploaddir']); 
} 
$_SESSION['uploaddir'] = $_POST['pid']; 

당신은() 경고를