Drupal使用一个自定义会话处理程序来改变熟悉的…:
$_SESSION [‘foo’] =’bar’;
echo $_SESSION [‘foo’];
…行为. “foo”的上述会话变量在页面之间不会保留.
Drupal.com上的许多评论和论坛条目引发了Drupal使用自定义会话处理程序的性能和服务器群集支持的问题.但是,我没有找到具体的例子回答这个问题 – “需要在Drupal的页面上管理你自己的会话变量,而不想诉诸于cookies?
有没有人有这方面的经验?我的使用不会在外部Drupal页面中,而在模板页面中.这是一个匿名用户,不是登录的用户.在这种情况下,$_SESSION行为是预期的.
好的,这里是答案 – $_SESSION适用于经过身份验证的用户以及匿名用户,如果没有其他问题!
我发现我有以下问题;我的Drupal“用户”表(或在我的情况下为“drupal_users”)缺少UID为零(“0”)的用户.
Drupal使用UID 0通过其自定义会话处理程序来管理数据库中的会话.如果表中不存在该用户(应该在默认情况下安装),则Drupal无法将会话信息附加到匿名用户.