3

正如我们所知,每个用户的会话变量 $_SESSION 都是不同的。我想知道像 $_SERVER 这样的服务器变量的范围。我正在我的 RestFul API 中进行 http 身份验证。如果我设置$_SERVER['PHP_AUTH_USER'],会为 1 个用户或所有访问我的服务器页面的用户设置吗?

谢谢

4

2 回答 2

0

这将只为当前用户设置,但你为什么不使用 $GLOBALS 而不是 $_SERVER?

$GLOBALS — 引用全局范围内可用的所有变量

对于这样的任务,这个超全局数组比 $_SERVER 更合适。请注意,请求完成后 $GLOBALS 或 $_SERVER 不会保存其数据。因此,如果您想将一些数据从一个请求保留到另一个请求,您应该使用 $_SESSION。

于 2013-04-28T19:58:06.833 回答
0

php.net

PHP 中的会话支持包括一种在后续访问中保留某些数据的方法。这使您能够构建更多定制的应用程序并增加您网站的吸引力。

访问您的网站的访问者被分配一个唯一的 id,即所谓的会话 id。这要么存储在用户端的 cookie 中,要么在 URL 中传播。

这意味着在用户之间是不同的,因为每个用户的会话 ID 不同,并且会话允许用户访问所有者关联数组

为 $_SERVER 设置的值在RAM上并且没有存储在文件数据库中,并且在请求完成后从RAM中删除。对于像在用户在线期间保存变量这样的工作,您可以使用 $_SESSION 但如果您想为所有用户保存变量,您可以使用数据库

于 2013-04-28T20:10:10.570 回答