2009-10-03 3 views
0

나는 세션을 생성하고 예를 들어, 그래서 나는 변수가 전체 사이트에서 사용할 수있게하려면 :PHP로 세션을 설정할 때 어떻게 전체 사이트를 글로벌하게 만드나요?

붉은 widgets.php라는 페이지

조 비누 땅 - 조의 세션 변수의 말을하자입니다 '빨간 위젯'. Joe는 blue-widgets.php이라는 또 다른 페이지를 클릭합니다. 세션 변수를 여전히 원래 'red-widgets'로하고 싶습니다.

URL을 어떻게 처리 할 수 ​​있습니까?

답변

4

하나의 세션 변수에만 국한되지 않고 필요한만큼 가질 수 있습니다.

session_start(); 

if (!isset($_SESSION['widget'])) { 
    $_SESSION['widget'] = 'i am changed only if there isnt already a widget session var'; 
} 

$_SESSION['someOtherVar'] = 'i am being changed on every page'; 
+0

+1 : 난 그냥 같은 ... – jeroen

+0

죄송 사람, 완전한 신인 질문을 작성했다. 그냥 거기에서 테스트하고 그것은 계획대로 작동합니다. 그래서 기본적으로 세션 변수는 전역 변수입니까?하지만 그들은 어디에 머물러 있습니까? –

+1

서버에 있습니다. 아무것도 바꾸지 않았다면 php-files handler는 세션 데이터를 session.save_path에 지정된 디렉토리의 파일에 저장합니다. http://docs.php.net/session.configuration#ini.session.save-path – VolkerK

4

PHP 페이지가로드 될 때마다 session_start();으로 전화하십시오. 1. 기존 세션이없는 경우 새 세션을 시작하거나 2. 이전에 설정된 세션을 다시 시작합니다. 새 세션 변수를 확인하려면 다음을 수행하십시오

session_start(); // start or restart the session 
$_SESSION['mySessionVariableName'] = "My session variable value."; 

을 당신이 새로 시작할 수 있도록 세션을 죽이고 싶은 경우에, 당신은 할 수 있습니다 :

session_destroy(); 

을 모든 지우려면 세션 변수가 있지만 현재 세션을 죽이지을 수행 할 수 있습니다 :

session_unset(); 
1

간단한 : 을 붉은 widgets.php에 :

블루 widgets.php에 5,
session_start(); 
$_SESSION['red-widgets'] = 1; 

:

session_start(); 
if(!$_SESSION['red-widgets']){ 
    //Joe weren't on red-widget.php, diffrent action here... 
} 
관련 문제