【问题标题】:PHP session update at certain timePHP会话在特定时间更新
【发布时间】:2022-01-31 07:01:32
【问题描述】:

我有一个 php 网站,例如,我需要在一个月后取消订阅一名学生 .. 对于每个学生,我在 mysql 数据库中有一个“订阅”值,它可以是 0(取消订阅)或 1(订阅)。 .我还有一个注册日期,可以知道每个学生一个月后的时间。 问题是,当时如何取消设置“登录”和“订阅”会话?..如何注销该用户?..因为即使我更新数据库并且订阅变为 0 而不是 1 .. 会话不会自行刷新,它会保持 1 ..

谢谢

【问题讨论】:

  • 您打算在 1 个月后注销用户吗?如果是,我不推荐它。我可以理解订阅/取消订阅的部分,但登录会话不应该保持那么长时间。我看到网络应用程序通常有 30 分钟左右的不活动注销时间?对于银行应用程序来说,它比这要短得多,可能是 5-10 分钟不活动。
  • 我的意思是,如果用户保持登录状态,例如他没有关闭浏览器而只是将其最小化(如在手机中),那么即使“订阅”在数据库中变为零,它将在会话中保持 1(除非用户刷新 + 我有一个 if 语句来检查时间并取消设置会话).. 那么当时间到来时如何强制它刷新?.. 我应该使用阿贾克斯?还是在 php 中有解决方案 ..
  • 试试这个stackoverflow.com/questions/39427783/…。这里的关键词是“会话超时”,我想如果你搜索“PHP 会话超时”,你会发现更多关于它的信息。基本上,超时是在用户登录时强加的,因此无论用户是否注销,会话都会超时。我使用的一些网络应用程序会弹出一个窗口,告诉我我的会话超时但有些没有 - 但是当我刷新页面时,它会将我重定向到登录页面。
  • @FanoFN 谢谢,我在发布我的问题之前检查了这个问题,我已经查看了 cmets 和回复,我觉得它不会完全符合我的意图......但是我开始对取消设置会话的想法深信不疑,并让“踢出”直到用户以某种方式刷新......而且,我避免使用 JavaScript 将所有内容保留在服务器上,远离用户使用代码进行的操作。 . 非常感谢

标签: php mysql session refresh


【解决方案1】:

您可以随时使用

unset($_SESSION['sessionid']);

【讨论】:

  • 但是如果我写一个 if 语句,比如 if(time( )>= $some_time){ //unset the session};除非用户刷新页面,否则它不会被执行..
  • @MuhammadSaif “除非用户刷新页面,否则它不会被执行” - 这有什么问题?无论他们试图通过该点击触发什么 next 操作,都会失败,因为他们不再登录。如果您希望在他们“在”页面上时触发它,但没有任何明确的用户交互 - 然后通过 AJAX 请求或其他方式定期检查会话。
  • @CBroe 这就是我的想法.. 但与此同时,你说你的评论的方式让我再次考虑保留检查时间并取消设置会话的 if 语句,直到用户刷新页面..谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
  • 2013-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多