嗨,我是一名 php 程序员。我在面试中被问到一个问题,会话存储在客户端计算机上的浏览器/cookie文件中,然后服务器如何识别我从我自己的PC登录的同一用户,我必须只显示属于的信息我?请帮忙。
5 回答
当您登录系统(或会话开始)时,会创建唯一的会话 ID,它通常存储在cookie中。这将识别您的浏览器。
然后,服务器使用此会话 ID从服务器获取数据。
SESSION
存储在服务器端,而不是客户端。
SESSION
存储PHPSESSID
在客户端COOKIE
以识别相应的用户。
Session are stored on server side. and every time login session generate a unique session id. the session id server identifies the user. $_SESSION is session variable.
会话以
session_start()
. 如果实际会话没有分配的唯一会话 id,php 会生成一个并将其与响应一起发送给客户端。浏览器将会话 ID 存储为 cookie(如果允许)PHPSESSID
,否则您必须使用查询参数创建每个链接?PHPSESSID=uniquesessionid
。否则不可能有一致的会话对于每个请求,都会发送会话 cookie(如果允许)或查询参数。PHP 使用此会话 ID 标识存储在服务器端的数据,并且您可以通过
$_SESSION
数组访问。因此,您可以在会话数组中存储用户名或用户 ID。对于每个会话 ID,会话数组都是唯一的。您只能访问从浏览器提供的会话。在大多数服务器上,会话存储在文件系统中配置的路径下
session.save_path
。文件名通常是sess_uniquesessionid
. 您可以使用 以编程方式确定此路径session_save_path()
,但也可以更改(如果您有权访问目标路径)。会话 cookie/参数的名称(标准:)在 php.ini
PHPSESSID
中配置。session.name
您可以使用 确定和更改会话名称session_name()
。这必须在你打电话之前完成session_start()
$_SESSION 变量存储在服务器中,并带有相应的 session_id,在会话启动时生成。在客户端,cookie 以完全相同的 session_id 存储。这样浏览器可以识别到服务器,并且服务器可以为这个会话/用户释放存储在 $_SESSION 中的正确信息。