【问题标题】:Session getting terminated after 30+ minutes of inactivity automatically?会话在 30 多分钟不活动后自动终止?
【发布时间】:2020-09-28 04:42:36
【问题描述】:

我正在做一个项目,我需要有多个用户的登录系统,每个用户都将登录并将表单条目保存在一个文件中。我最多有 10 个内部用户,这个项目仅供内部用户使用。

这就是想法-

  • 我有一个带有两个文本框和一个保存按钮的简单表单。此页面上还有一个logout 链接。此页面名为index.php。
  • 一旦用户在login.php页面上成功登录,他将被重定向到具有上述表单的index.php页面。
  • 现在用户将在index.php页面的文本框中输入一些条目,然后单击保存按钮。单击保存按钮后,数据将以 json 格式保存在文件中,并弹出警告框,显示写入文件中的数据(或者如果写入文件中有任何问题)。
  • 单击logout 按钮后,它会重定向回login.php 页面。

现在整个系统适用于多个用户,如果多个用户登录,则在给定时间只允许一个用户将条目保存在文件中。

案例 1:

  1. 如果“userA”第一次登录成功,那么他可以将表单条目保存在一个文件中。
  2. “userA”退出。

案例 2:

  1. 现在“userB”登录成功。然后他应该能够通过覆盖将表单条目保存在同一个文件中。
  2. “userB”退出。

案例 3:

  1. 现在“userA”再次成功登录。他正在努力改变表格。
  2. “userB”突然尝试从不同的浏览器登录。然后他应该能够看到一个提示告诉userA is logged in. Do you want to take over?。如果他点击ok 按钮,那么他应该可以成功登录。但是如果他点击cancel按钮,他将无法登录。
  3. 假设“userB”点击确定按钮并且他现在也登录了。此时“userA”和“userB”都已登录。因此,一旦“userB”登录,如果“userA”尝试单击表单中的保存按钮,尝试将条目保存在文件中,那么它应该弹出告诉您“由于用户 B 现在登录,写访问被撤销”。所以用户 A 仍然可以看到表单,但由于他的写入权限被撤销,因此应该无法保存任何内容。

案例 4:

  1. 如果“userC”也成功登录。现在我们所有三个用户都登录了。此时应该只有“userC”能够进行更改,因为“userA”和“userB”的写访问权限将被撤销。
  2. 但如果“userC”退出,那么“userB”在尝试保存时应该能够保存表单。因为“userB”的访问权限是最后被撤销的,所以如果“userC”退出,他将恢复访问权限,但“userA”的访问权限仍将被撤销。

问题陈述

php 服务器中有什么东西可以在特定时间后终止我的会话。

【问题讨论】:

  • 搜索 php session lifetime 以获得所有答案
  • @JaromandaX 我明白了。有趣的是,当我在我的 Mac 上运行时,我使用的是 XAMPP,并且在我的 php.ini 文件中,我也有 24 分钟的默认时间,但它根本不会让我退出,但是当我在公司服务器上运行这个确切的代码时,它会让我退出24 分钟后的样子。为什么这在我的 mac 和我的公司服务器之间有所不同?如果这是关于这个文件的,那么它在两种情况下都应该类似,对吧?
  • 是的,我应该在我的问题中提到这一点,但因为我认为可能不需要它。对不起,我结束了。不过我会添加这个细节。现在我在想,在使用 XAMPP 服务器时,可能由于某种原因没有考虑 mac php.ini 文件?
  • 我现在已经删除了关于其他服务器的 cmets

标签: javascript php html jquery ajax


【解决方案1】:

这取决于服务器配置或php.ini中的相关指令http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

通常默认值为 24 分钟(1440 秒),但您的虚拟主机可能已将默认值更改为其他值。

更新

根据 OP 新 cmets。

如果会话存储在文件中,请授予服务器中存储目录的权限 777。如果您将会话存储在数据库中,那么我们必须找出其他替代解决方案。

【讨论】:

  • 我明白了。有趣的是,当我在我的 Mac 上运行时,我使用的是 XAMPP,并且在我的 php.ini 文件中,我也有 24 分钟的默认时间,但它根本不会让我退出,但是当我在公司服务器上运行这个确切的代码时,它会让我退出24 分钟后的样子。为什么这在我的 mac 和我的公司服务器之间有所不同?如果这是关于这个文件的,那么它在两种情况下都应该类似,对吧?
  • 现在我在想mac php.ini文件在使用XAMPP服务器时可能由于某种原因没有考虑到?
  • 你的意思是说我给了我本地mac php.ini文件的文件权限?
  • 本地服务器和实时服务器有很大的区别,,,您需要给实时服务器中的会话目录授予777权限。不是本地/mac
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
  • 2015-12-06
  • 2022-10-20
相关资源
最近更新 更多