2012-05-07 21 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'] =シリアライズ($ arr);

関連する問題