You are here

Drupal专业开发指南 第16章 存储

 

会话信息存储在表sessions中,在引导指令的DRUPAL_BOOTSTRAP_SESSION阶段,它将会话ID和Drupal用户ID关联了起来(关于Drupal引导指令处理流程的更多详细,请参看第15章)。事实上,在Drupal中广泛使用的$user对象,就是在本阶段使用includes/session.inc中的sess_read()函数初步建立的。($user对象是如何建立的,请参看第6章)。
 
    表16-2给出了存储会话的数据库表结构:
 
16-2. Sessions表的结构
字段       类型  长度  描述
uid         int             认证用户的用户ID(匿名用户为0)
sid         int     64      由PHP生成的会话ID
hostname    varchar 128     这个会话ID最后使用的IP地址
timestamp  int             最后页面请求的Unix时间戳
cache       int             用户最后发布的时间,用于执行最小缓存生命周期
session     text    big     存储在$_SESSION中的序列化数据
 
    当Drupal提供一个页面时,最后一项工作就是将会话写入表sessions中(参看includes/session.inc里面的sess_write())。只有当浏览器提供了一个有效的cookie时,才这样做,这样就阻止了网络爬虫抓取页面时向表sessions中写入大量数据。

老葛的Drupal培训班  Think in Drupal

Drupal版本: