2012-05-07 11 views

risposta

11

Puoi provare questo.

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]; 
} 

Quindi, per salvare una variabile in sessione:

lists_session("s_key", "value"); 

E per recuperare il valore, basta usare:

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

Abbiamo anche bisogno di un session_start o di uno già esistente in drupal? – pal4life

+3

Puoi usare ['drupal_session_start()'] (https://api.drupal.org/api/drupal/includes!session.inc/function/drupal_session_start/7). Avvierà la sessione se non è già stata avviata. –

+2

Non dovresti aver bisogno di chiamare '' 'drupal_session_start()' ''. Non appena i dati vengono aggiunti a '' '$ _SESSION''', Drupal salverà quella sessione alla fine della richiesta. Se devi chiamare '' 'drupal_session_start()' '' direttamente allora qualcosa non va. – greggles

5

non ho alcun problema di utilizzare la variabile $ _SESSION in il mio modulo. Tieni a mente di creare una sottochiave unica per i tuoi dati.

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

Vorrei avere accesso alle variabili di sessione in una pagina php. Questa pagina è disponibile sul mio sito web Drupal con il modulo lightbox2. E ho bisogno di usare le variabili di sessione per comunicare tra queste pagine. Quindi, il codice è: $ _SESSION ['background_menu'] = 'giallo'; E nella mia pagina php: echo $ _SESSION ['background_menu']?> Ho anche il session_start ma non funziona. Aiuto :) – user785975

+0

Il bootstrap Drupal farà il session_start. Quindi come funziona il tuo codice php. È un modulo drupal o hai script php standalone? – Kristoffer

+0

è uno script php – user785975

1

Ricordarsi di serializzare i dati come array, obj ... prima di salvare in sessione. $ arr = array(); $ _SESSION ['mysession'] = serialize ($ arr);

Problemi correlati