Answers:
$_SESSION
变量存储的位置由PHP的session.save_path
配置确定。通常这是/tmp
在Linux / Unix系统上。phpinfo()
如果无法100%确定,请使用此功能查看您的特定设置,方法是在DocumentRoot
在您域的中:
<?php
phpinfo();
?>
这是有关此配置设置的PHP文档的链接:
http://php.net/manual/zh-CN/session.configuration.php#ini.session.save-path
如前所述,内容存储在服务器中。但是,该会话由会话ID标识,该会话ID存储在客户端并随每个请求一起发送。通常,会话ID存储在Cookie中,但是也可以将其附加到网址中。(这是PHPSESSID
您有时看到的查询参数)
它们通常存储在服务器上。它们的存储位置取决于开发人员。您可以使用session.save_handler
配置变量和session_set_save_handler
来控制如何将会话保存在服务器上。默认的保存方法是将会话保存到文件。它们的保存位置由session.save_path
变量控制。
我正在使用Ubuntu,并且我的会话存储在/ var / lib / php5中。
对于Ubuntu 16.10,会话保存在/ var / lib / php / session / ...
它是如何工作的?怎么知道是我
大多数会话在用户计算机上设置一个用户密钥(称为sessionid),如下所示:765487cf34ert8dede5a562e4f3a7e12。然后,在另一个页面上打开会话时,它将在计算机上扫描用户密钥,然后运行到服务器以获取变量。
如果您错误地清除了缓存,那么您的用户密钥也会被清除。您将无法再从服务器获取变量,因为您不知道自己的ID。
在我的Ubuntu机器中,会话存储在
/var/lib/php/sessions
而且您必须sudo ls
在此目录中ls
它将抛出
ls:无法打开目录“。”:权限被拒绝
在我的Windows Wamp服务器上,php会话存储在
C:\wamp64\tmp
如果您在Windows上安装独立php,则默认情况下未设置任何值
session.save_path => no value => no value
上面的许多答案都是不透明的。我认为这个问题的作者只是想知道默认情况下会话变量存储在哪里。据此:https : //canvas.seattlecentral.edu/courses/937693/pages/10-advanced-php-sessions 默认情况下,它们仅存储在服务器上。希望其他人会发现此贡献有意义。