会话文件通常存储在命名为sess_{session_id}
的服务器上的/tmp/
中。我一直在看内容,但不知道它们是如何工作的。
从文件中获取变量名和内容很容易。但是PHP如何知道哪个会话属于谁呢?
session_id看起来完全是随机的,一个IP地址可以有多个用户,如果每个用户打开了多个浏览器窗口,则每个用户可以有多个会话。
那么它是如何工作的呢?
发布于 2009-10-08 04:56:33
会话ID确实是随机的,根据配置的不同,它是在cookie中传递的,还是在URL中传递。您可能已经在一些URL中看到过此PHPSESSID=xxxx,也有一个同名的cookie。
发布于 2016-09-08 16:35:37
PHP中的会话是使用session_start( )函数启动的。与setcookie( )函数类似,session_start( )函数必须出现在页面上任何HTML之前,包括空行。它将看起来像这样:<?php session_start( );?><html><head>
......等,session_start( )函数生成一个随机会话Id,并将其存储在用户计算机上的cookie中(这是客户端实际存储的唯一会话信息)。cookie的默认名称是PHPSESSID,尽管可以在服务器上的PHP配置文件中更改此名称(但是,大多数托管公司不会更改它)。因此,要在PHP代码中引用会话Id,需要引用变量$PHPSESSID (它是一个cookie名称;还记得cookie中的名称吗?)
https://stackoverflow.com/questions/1535697
复制相似问题