如何在服务器上为用户标识会话

时间:2013-05-02 06:15:20

标签: php session

您好,我是一名php程序员。 我在面试中被问到会话存储在客户端的客户端计算机上的浏览器/ cookie文件中,然后服务器如何识别从我自己的PC登录的同一用户,并且我必须只显示属于的信息我? 请帮忙。

5 个答案:

答案 0 :(得分:2)

当您在系统中登录( OR会话已启动)时,会创建唯一会话ID,并且通常会将其存储在 Cookie 中。这将识别您的浏览器。

然后,服务器使用此会话ID 从服务器获取数据。

答案 1 :(得分:2)

SESSION存储在服务器端,而不是客户端。

SESSIONPHPSESSID存储在客户端,COOKIE用于标识相应的用户。

答案 2 :(得分:0)

$ _SESSION变量存储在服务器上,并在会话启动时生成相应的session_id。在客户端,cookie与完全相同的session_id存储。通过这种方式,浏览器可以识别服务器,服务器可以为此会话/用户释放存储在$ _SESSION中的正确信息。

答案 3 :(得分:0)

会话存储在服务器端。 每次登录会话生成唯一会话ID 。 会话ID服务器标识用户。 $ _ SESSION 是会话变量。

答案 4 :(得分:0)

  • 会话以session_start()启动。如果实际会话没有已发布的唯一会话ID,则php会生成一个并将响应发送给客户端。浏览器将会话ID存储为cookie(如果允许)PHPSESSID,否则您必须使用查询参数?PHPSESSID=uniquesessionid创建每个链接。否则,不可能进行一致的会话

  • 每次请求都会发送会话cookie(如果允许)或查询参数。 PHP使用此会话ID识别存储在服务器端的数据,并且您可以访问$_SESSION数组。因此,您可以在会话数组中存储用户名或用户ID。对于每个会话ID,会话数组是唯一的。您只能访问从浏览器提供的会话。

  • 在大多数服务器上,会话存储在session.save_path中配置的路径下的文件系统中。文件名通常为sess_uniquesessionid。您可以使用session_save_path()以编程方式确定此路径,但也可以更改(如果您可以访问目标路径)。

  • 会话cookie /参数的名称(标准:PHPSESSID)在php.ini中配置了session.name。您可以使用session_name()确定和更改会话名称。在致电session_start()

  • 之前,必须先完成此操作