Php $\u会话变量存储在哪里?

Php $\u会话变量存储在哪里?,php,Php,$\u会话变量存储在客户端还是服务器上?正如泰勒先生指出的,这通常是在php.ini中设置的。通常,它们作为文件存储在特定目录中 变量存储的位置由PHP的会话.save\u路径配置决定。在Linux/Unix系统上,这通常是/tmp。如果无法100%确定,请使用phpinfo()函数查看您的特定设置,方法是在域的DocumentRoot中创建包含此内容的文件: <?php phpinfo(); ?> 以下是有关此配置设置的PHP文档的链接: 它们通常存储在服务器上。它们

$\u会话
变量存储在客户端还是服务器上?

正如泰勒先生指出的,这通常是在php.ini中设置的。通常,它们作为文件存储在特定目录中

变量存储的位置由PHP的
会话.save\u路径
配置决定。在Linux/Unix系统上,这通常是
/tmp
。如果无法100%确定,请使用
phpinfo()
函数查看您的特定设置,方法是在域的
DocumentRoot
中创建包含此内容的文件:

<?php
    phpinfo();
?>

以下是有关此配置设置的PHP文档的链接:


它们通常存储在服务器上。它们的存储位置取决于作为开发人员的您。您可以使用
session.save\u处理程序
配置变量和来控制会话在服务器上的保存方式。默认保存方法是将会话保存到文件。保存它们的位置由
会话.save\u path
变量控制。

如上所述,内容存储在服务器上。但是,会话由会话id标识,会话id存储在客户端并随每个请求一起发送。通常会话id存储在cookie中,但也可以附加到URL中。(这是您有时看到的
PHPSESSID
query参数)

在Debian上(大多数Linux发行版不是这样吗?),它保存在/var/lib/php5/中。如上所述,它是在php.ini中配置的。

一个补充:应该注意的是,如果“/tmp”是存储会话数据的目录(似乎是默认值),则会话在该web服务器重新启动后将不会持续,因为“/tmp”通常在重新启动期间被清除。客户端持久化的概念随着服务器上存储的持久化而起起伏伏——如果将“/tmp”目录用于会话数据,则可能会失败。

我正在使用Ubuntu,我的会话存储在/var/lib/php5中。

对于Ubuntu 16.10,会话是否保存在/var/lib/php/session/…

它是如何工作的?它怎么知道是我

大多数会话在用户计算机上设置一个用户密钥(称为sessionid),该密钥如下所示:765487cf34ert8dededa562e4f3a7e12。然后,当在另一个页面上打开会话时,它会扫描计算机以查找用户密钥,然后运行到服务器以获取变量


如果您错误地清除了缓存,那么您的用户密钥也将被清除。您将无法再从服务器获取变量,因为您不知道自己的id。

上面的许多答案都是不透明的。在我看来,这个问题的作者只是想知道会话变量默认存储在哪里。根据这一点:它们默认存储在服务器上。希望其他人会发现这一贡献有意义

在我的Ubuntu中,机器会话存储在

/var/lib/php/sessions
你必须
sudols
在这个目录中,它只会抛出
ls

ls:无法打开目录“”:权限被拒绝

在我的Windows Wamp服务器上,php会话存储在

C:\wamp64\tmp
如果在windows上安装独立php,则默认情况下没有设置值

session.save_path => no value => no value

+1因为您暗示Cookie不存储$\u会话的内容(这些内容存储在服务器上,因此不易被客户端修改),所以回答得很好!我一直在寻找这样一个问题:“为什么删除浏览器缓存后会话会过期?”。您在浏览器警报(getCookie('PHPSESSID')上保存了my day.server创建文件sess_7NU9P0FVIDVA6OUAUGQCC8292аnd//7nu9p0fvidvva6ouaugqcc8292Plus1-感谢您回答以下问题:“…存储在客户端或服务器上?”谢谢,这就是我想要的。是的,如果它们不在通常的位置,我需要打开INIs,但我只想知道“嘿,会话通常存储在哪里?”/var/lib/php/sessions/it is