【问题标题】:PHP load SESSION design on new pagePHP 在新页面上加载 SESSION 设计
【发布时间】:2015-11-20 01:53:11
【问题描述】:

我环顾四周并没有找到类似问题的运气。如果有的话,请链接可能的重复项,以前帖子的建议会有所帮助。

场景:

当用户打开create.php 页面时,我将$_SESSION['id'] 设置为该页面上的ID。如果用户刷新浏览器,则可以获取内容。它工作得很好,因为在更新时所有内容都链接到 sql 数据库

当同一个用户点击另一个create.php 页面,同时初始create.php 已经打开时,就会出现问题。然后将 $_SESSION['id'] 设置为 NEWER 页面。刷新 OLDER 页面时,由于在最新操作上设置了 $_SESSION['id'] 变量,它将重新加载为在 NEWER 页面上看到的页面。

我该如何解决这个问题? 使用您建议的方法有什么潜在的问题吗?

请提供一些意见!

编辑:如果被否决,请告诉我如何调整问题,使其更清楚。

编辑:将$_SESSION['create'] 更改为$_SESSION['id'] 以更好地反映问题

【问题讨论】:

  • 您不能对不同的值使用相同的会话名称。它将用最新的值覆盖
  • 当用户加载新页面时你希望发生什么?也许尝试做一些Rubber Duck Debugging 可能会有所帮助。
  • 当用户加载新页面时,它应该是这样的,所有字段都是空白的。仅当用户打开两个相同页面时才会出现问题。即 Stackoverflow 提出一个问题,您打开另一个问题并对其进行编辑,旧问题在刷新时丢失
  • 您是否有理由需要在会话中保存任何内容?为什么不将查询中的参数发送到 create.php?像create.php?id=5 并使用id 来显示正确的数据而不是会话值
  • 我认为我不应该发布这个问题.. 有人对所有事情投反对票。我考虑过使用 '?id=5' 但用户不会有无缝体验,并且用户在编程时更改该 id 需要在后端添加额外的逻辑......如果这是唯一的方法,那么我想我可以去那条路线。感谢您的反馈。 @binnyb

标签: php session


【解决方案1】:

在创建会话时检查会话是否已经存在

if(!isset($_SESSION['create'])){
    // create session if it doesnt exists.
}

【讨论】:

  • 感谢您的反馈。我并不是真的在寻找如何创建会话检查。
猜你喜欢
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 2015-05-26
  • 2016-03-13
相关资源
最近更新 更多