You are here

Drupal专业开发指南 第16章 将数据存储在会话中

g089h515r806 的头像
Submitted by g089h515r806 on 星期日, 2009-08-23 16:13

 

由于会话系统能将数据自动存储起来,所以将数据存储在用户的会话中,会非常方便。无论是什么时候,你想在用户访问(或者多次访问,使用session.cookie_lifetime)期间为其存储一些数据时,都可以使用全局变量$_SESSION:
 
$_SESSION['favorite_color'] = $favorite_color;
 
    接着,在接下来的请求中,使用下面代码取回该值:
 
$favorite_color = $_SESSION['favorite_color'];
 
    如果你知道用户的uid,并且你想为用户存储一些数据,那么有一个更实用的方法,就是将数据作为一个唯一的属性存放在$user对象中,比如通过调用user_save($user, array('foo' => $bar))就实现了$user->foo =$bar,该方法将数据序列化并保存到users表的data列中。如果信息是暂时的,并且你不介意它的丢失,或者你想为匿名用户存储一些短期数据,那么你也可以将它存放在会话中。如果你想将用户的偏爱与用户永远的绑定在一起,那么可将它存储在$user对象中。
 
警告$user对象不能用来为匿名用户存储信息。
 

老葛的Drupal培训班 Think in Drupal

Drupal版本: