2009-07-10 77 views
12

Drupal的採用,改變熟悉的自定義會話處理程序...:如何在Drupal 6中存儲和檢索自定義會話變量?

$_SESSION['foo'] = 'bar';
echo $_SESSION['foo'];

...行爲。上面的「foo」會話變量不會在頁面間持續存在。

Drupal.com上的許多評論和論壇條目都提出了Drupal使用自定義會話處理程序出於性能原因和服務器集羣支持的問題。然而,我沒有找到具體的例子來回答這個問題 - 「需要在Drupal中跨頁面管理你自己的會話變量,並且不想訴諸cookie?下面就是你如何做的......」

任何人都有這方面的經驗?我的用法不在外部的Drupal頁面內,而是在模板頁面內。這是爲匿名用戶,而不是登錄的用戶。在這種情況下$ _SESSION的行爲與預期一致。

回答

17

好吧,這裏的答案 - $ _SESSION適用於已認證的用戶以及匿名用戶 - 如果沒有其他問題!

我發現我有以下問題;我的Drupal「用戶」表(或者在我的情況下是「drupal_users」)缺少一個UID爲零(「0」)的用戶。

Drupal使用UID 0通過自定義會話處理程序管理數據庫中的會話。如果該用戶在表中不存在(它應該在默認安裝中),則Drupal無法將會話信息附加到匿名用戶。

+4

「博客」帖子鏈接已損壞。 – dkiscool 2012-09-02 19:50:43

相關問題