会话处理-如何区分用户


Session handling - how to differentiate between users

我在web应用程序中使用php会话。对于单个用户,我需要存储许多变量,例如用户名、表示用户是否登录的标志等。我曾想过将一个数组分配给$_SESSION,作为一个包含所有值的变量。有办法做到这一点吗?

Charu

会话基本上用于存储user-specific数据(状态)和标识。要为页面启用会话,请在向响应缓冲区写入任何内容之前调用session_start()方法。

<?php
  session_start();
  ....
?>

正如其他人所说,会话是存储用户特定信息的一种方式。但如果你对它是如何实现的感到困惑,这就是故事:

当有人启动浏览器并向你的网站发送请求时,你的网络服务器会发现这是浏览你网站的新会话,因此它会分配一个唯一的编号,因为它是会话id,并将此会话id发送给你(通常由COOKIE完成。也就是说,网络服务器包括一个"SET-COOKIE"http响应头字段。请参阅有关COOKIE的更多信息)
现在,您的浏览器在将来向您的web服务器发送的每个请求中都会发送以前获得的"会话id"
因此,您的web服务器现在可以区分您的流量和其他流量,并且您创建的每个$_SESSION[]变量都将分配给相应的会话id。
我希望它是清楚的
有关会话和Cookie的更多信息,请参阅此链接。

到目前为止,您尝试了什么?您可以只使用数据库中的数据作为用户的唯一标识符:

session_start();
$_SESSION['user_data'] = array('username'=>$username, 'user_id'=>$user_id);