服务器如何存储使用PHP创建的会话变量?
我想知道服务器如何存储(不是位置,而是过程/方法)和管理会话变量。如果我错了,请更正 我将其想象为:- 假设我创建了三个会话变量服务器如何存储使用PHP创建的会话变量?,php,session,session-variables,sessionid,Php,Session,Session Variables,Sessionid,我想知道服务器如何存储(不是位置,而是过程/方法)和管理会话变量。如果我错了,请更正 我将其想象为:- 假设我创建了三个会话变量 $_SESSION['id']=12; $_SESSION['flag']=t; $_SESSION['name']=alex; 然后,服务器创建一个表(或文件等) 会话id由服务器创建,对于每个用户都是唯一的。然后,服务器将会话id作为cookie发送到客户端浏览器。当用户在会话期间发送另一个请求时,该会话id也将随请求一起由浏览器发送。然后服务器引用该表并可以识
$_SESSION['id']=12;
$_SESSION['flag']=t;
$_SESSION['name']=alex;
然后,服务器创建一个表(或文件等)
会话id由服务器创建,对于每个用户都是唯一的。然后,服务器将会话id作为cookie发送到客户端浏览器。当用户在会话期间发送另一个请求时,该会话id也将随请求一起由浏览器发送。然后服务器引用该表并可以识别用户。
作为程序员,我们可以使用id(由我们存储)从数据库中获取不同的信息。
(如果我错了,请简要解释过程)。默认情况下,会话数据存储在session.save_path()中保存的文件中。会话数据序列化为文本字符串,并存储在每个会话的文件中,通常名为“sess_sessiondhere”,可能位于/var/lib/php5中(至少在Debian上默认)。查看PHPINI设置“session.save_path”以发现会话文件的存储位置
看看这个。它通常作为文件存储在服务器的/tmp目录中
变量存储的位置由PHP的
会话.save\u路径
配置决定。通常这是Linux/Unix系统上的/tmp。如果无法100%确定,请使用phpinfo()函数在域的DocumentRoot中创建包含此内容的文件,以查看特定设置
详情请参阅:
会话可以但不必使用数据库后端。您的其他声明通常都很好(cookies、会话id) PHP中的默认会话存储是
/tmp
文件夹中的一个文件-可以通过打印session.save_path
来检查路径
总之,会话可以利用:
/dev/shm
及其子文件夹中的文件(/tmp也可以驻留在RAM中)如果您在
$\u SESSION
变量中存储user\u id
,那么是的-您可以在任何后续请求中使用它从PHP脚本中查询数据库中的用户相关信息。我不是问它存储在哪里,而是问过程。因此我更新了答案。
-----------------------------------------------
session_id | id | flag | name
-----------------------------------------------
a45sdg665 | 12 | t | alex
| | |
| | |