从iphone应用程序登录时,我调用一个php脚本登录函数来存储用户id的会话。这个Id是存储在服务器上还是存储在iphone上?
$_SESSION['IdUser'] = $result['result'][0]['IdUser'];
我问的原因是b / c当我退出模拟器并开始备份时,会话显然没有存储,所以我相信它存储在服务器上。如果我希望一次有多个用户在我的应用程序上,或者在客户端上会更好,我是否希望会话存储在服务器上?服务器如何从客户端知道/获取会话ID?感谢。
此外,我希望我的用户保持登录状态。显然。
答案 0 :(得分:2)
The PHP Documentation on Sessions对此很清楚,但我会总结一下:
$_SESSION
存储在服务器上。它实际上在一个临时文件中,具有会话名称(通常)。如果你很容易让设备发送每个请求的相应会话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 [] =(客户端)