Itu karena drupal menyimpan sesi dengan kunci, ini berarti Anda harus melakukan sesuatu seperti
$_SESSION['yourkey']['xxx'] = serialize($data);
Anda bisa mencoba ini.
function lists_session($key, $value = NULL) {
global $user;
static $storage;
// If the user is anonymous, force a session start.
if(!user->uid) {
drupal_session_start();
}
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];
}
Jadi, untuk menyimpan variabel di Sesi:
lists_session("xxx", serialize($data));
Dan untuk mengambil nilainya, cukup gunakan:
$myVar = lists_session("xxx");
dan juga MOLOT menyebutkan kadang-kadang sesi tidak dikilaukan untuk pengguna anonim maka Anda harus drupal_session_start()
secara manual.
Drupal 7 terkadang tidak secara otomatis memulai sesi untuk pengguna anonim. Untuk menggunakan sesi untuk mereka, Anda mungkin perlu memaksa sesi dimulai dengan drupal_session_start untuk dapat digunakan
$_SESSION
.sumber
Setelah Anda menyimpan data dengan mengikuti:
Perlu fungsi lain:
Karena tabel Sesi membutuhkan catatan dengan id = 0, Anda dapat secara manual memasukkan catatan dengan id = 0.
sumber
buat pengguna dengan uid = 0 di tabel pengguna karena drupal selalu menggunakan uid untuk pengguna anonim
sumber