2012-05-07 7 views

답변

11

시도해 볼 수 있습니다.

function lists_session($key, $value = NULL) { 
    static $storage; 
    if ($value) { 
    $storage[$key] = $value ; 
    $_SESSION['lists'][$key] = $value ; // I use 'lists' in case some other module uses 'type' in $_SESSION 
    } 
    else if (empty($storage[$key]) && isset($_SESSION['lists'][$key])) { 
    $storage[$key] = $_SESSION['lists'][$key]; 
    } 
    return $storage[$key]; 
} 

그래서, 세션에 변수를 저장 :

lists_session("s_key", "value"); 

그리고 값을 검색하는 바로 사용

$myVar = lists_session("s_key"); 
+0

또한 우리는 session_start가 필요합니까, 아니면 drupal에 이미 존재합니까? – pal4life

+3

['drupal_session_start()'] (https://api.drupal.org/api/drupal/includes!session.inc/function/drupal_session_start/7)를 사용할 수 있습니다. 아직 시작되지 않은 경우 세션을 시작합니다. –

+2

'''drupal_session_start()''를 호출 할 필요는 없습니다. 데이터가''$ _SESSION'''에 추가 되 자마자 Drupal은 요청이 끝날 때 그 세션을 저장합니다. '''''drupal_session_start()'''를 직접 호출해야한다면 뭔가 잘못된 것이다. – greggles

5

나는 $ _SESSION 변수를 사용하여 아무 문제가 없다 내 자신의 모듈. 데이터에 대한 고유 한 하위 키를 만드는 데 유의하십시오.

$_SESSION['mydata'] = array(of your data); 
+0

PHP 페이지에서 세션 변수에 액세스하고 싶습니다. 이 페이지는 Drupal 웹 사이트에서 lightbox2 모듈을 사용할 수 있습니다. 그리고 나는이 페이지들 사이에서 통신하기 위해 세션 변수를 사용할 필요가있다. 코드는 다음과 같습니다 : $ _SESSION [ 'background_menu'] = 'yellow'; 그리고 내 PHP 페이지에서 : echo $ _SESSION [ 'background_menu']?> 나는 session_start도 가지고 있지만 작동하지 않습니다. 도움말 :) – user785975

+0

Drupal 부트 스트랩은 session_start를 수행합니다. 그래서 어떻게 PHP 코드가 실행됩니다. Drupal 모듈입니까 아니면 독립 실행 형 PHP 스크립트입니까? – Kristoffer

+0

그것은 PHP 스크립트 – user785975

1

세션에 저장하기 전에 배열, obj ...와 같은 데이터를 직렬화하는 것을 잊지 마십시오. $ arr = array(); $ _SESSION [ 'mysession'] = serialise ($ arr);

관련 문제