Drupal 采用自定义 session 处理程序来改变熟悉的...:
$_SESSION['foo'] = 'bar';<br/>
echo $_SESSION['foo'];
...行为。上面的“foo” session 变量不会在页面之间持续存在。
Drupal.com 上的许多评论和论坛条目提出了 Drupal 出于性能原因和服务器集群支持而使用自定义 session 处理程序的问题。但是,我无法找到回答这个问题的具体示例 - “需要在 Drupal 中跨页面管理自己的 session 变量,并且不想诉诸 cookie?您可以这样做...”
有人有这方面的经验吗?我的使用不会在外部 Drupal 页面内,而是在模板页面本身内。这是针对匿名用户的,而不是针对登录用户的。在这种情况下,$_SESSION 的行为符合预期。
最佳答案
好的,这就是答案 - $_SESSION 按预期适用于经过身份验证的用户以及匿名用户 - 如果没有其他问题!
我发现我有以下问题;我的 Drupal“users”表(或者在我的例子中为“drupal_users”)缺少 UID 为零(“0”)的用户。
Drupal 使用 UID 0 通过其自定义 session 处理程序来管理数据库中的 session 。如果该用户不存在于表中(默认安装时应该存在),则 Drupal 无法将 session 信息附加到匿名用户。
关于php - 如何在 Drupal 6 中存储和检索自定义 session 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1110376/