【发布时间】:2009-10-06 20:22:23
【问题描述】:
我在理解 PHP 的会话时遇到了一些麻烦。首先,我将会话数据保存在数据库中,我使用 PHP 的 session_set_save_handler() 函数来定义它。
PHP 将会话数据保存到数据库时我理解的方式是这样的:
如果我定义了一些会话变量,然后将一些文本输出到用户的浏览器,我相信会话数据在输出文本之前不会保存到数据库中。请看这段代码:
$_SESSION['username'] = $username;
//check if session variable set
if($_SESSION['username'] != $username)
{
die('error...');
}
在代码中,if 语句返回 false,因此 die() 永远不会出现。此外,PHP 直到 if 语句之后才会将会话数据写入数据库。我不明白的是,如果会话数据还没有写入数据库,PHP 如何比较$_SESSION['username'] 和$username? $_SESSION['username'] 是否存储在服务器内存中,直到会话数据写入数据库时脚本结束?
感谢您的宝贵时间。
【问题讨论】:
-
不确定您是否偶然这样做,但在您的第一行,将 $username 括在引号中是不必要的。