$ _SESSION存储在哪里?

时间:2013-01-17 03:36:25

标签: php mysql session

从iphone应用程序登录时,我调用一个php脚本登录函数来存储用户id的会话。这个Id是存储在服务器上还是存储在iphone上?

  $_SESSION['IdUser'] = $result['result'][0]['IdUser'];

我问的原因是b / c当我退出模拟器并开始备份时,会话显然没有存储,所以我相信它存储在服务器上。如果我希望一次有多个用户在我的应用程序上,或者在客户端上会更好,我是否希望会话存储在服务器上?服务器如何从客户端知道/获取会话ID?感谢。

此外,我希望我的用户保持登录状态。显然。

4 个答案:

答案 0 :(得分:2)

The PHP Documentation on Sessions对此很清楚,但我会总结一下:

  1. $_SESSION存储在服务器上。它实际上在一个临时文件中,具有会话名称(通常)。
  2. 服务器通过cookie识别用户的会话
  3. 如果你很容易让设备发送每个请求的相应会话cookie(就像网站一样),那么服务器存储对你来说很好。否则,您可能希望使用本地存储。多个用户的会话相互重叠并不用担心。

答案 1 :(得分:2)

默认情况下,会话数据存储在服务器上。在linux中,它通常位于目录/ var / lib / php /中的一个文件中,但也可以存储在db或内存中。

cookie存储在客户端上,其sesion id用作标识服务器端数据的令牌。在/ var / lib / php /中的会话数据示例中,存储在客户端cookie中的会话ID映射到该目录中的文件名。

答案 2 :(得分:1)

在PHP的默认配置中,会话数据存储在服务器上,标识符作为cookie存储在客户端上。

此Cookie是否会在应用会话中持续存在取决于调用脚本的代码;您可以通过对同一个脚本进行几次调用来查看会话是否保持“活动”,从而轻松地对此进行测试。退出应用程序可能会也可能不会销毁您使用过的任何cookie,但这正是会话的内容,即它们并不是持久的。

如果您想要登录持久性,您可以将登录凭据存储在手机上(确保使用密钥链),这样您就可以重新建立与服务器的会话,以防它被中断。

答案 3 :(得分:0)

会话或$ _SESSION []变量存储在服务器上。它与Cookie非常相似,只是它存储在服务器上。

所以总结一下,

$ _ SESSION [] =(服务器端)

$ _ COOKIE [] =(客户端)