记住用户在php上的最佳做法

时间:2018-09-20 08:24:24

标签: php session cookies

我想对在PHP脚本上记住用户所处位置的最佳做法提供一些建议。

因此,我们有一个PHP应用程序,该应用程序的HTML + Js放在前面,在那一面上,我们显示了一个分页的项目列表(通过DataTables)。当用户单击项目时,应用程序将加载一个新页面,其中包含项目说明。

我们想要实现的是,当用户单击浏览器的后退按钮时,将被发送到他/她在列表中的确切位置(精确的页面和行)

我们正在使用DataTables列出分页等等,因此将用户定位在特定行上不是问题。

我有两种方法:

  • Cookies (客户端):因此,每次用户更改DataTable中的页面时,我们都会存储一个cookie。每当用户返回页面时,我们都会读取Cookie并将用户定位在该特定页面/行上。
  • 会话(服务器端):每次用户登陆到项目页面时,我们都会存储带有项目ID的会话变量。每当用户返回项目列表时,我们都会读取会话变量,并生成跳转到项目所在的特定页面/行所需的javascript。

关于上述内容的优点/缺点?

还有其他想法/建议吗?

1 个答案:

答案 0 :(得分:0)

您应该始终为用户可以导航到的任何位置发出唯一URL ,这样标准的浏览器导航就可以正常工作。如果您将状态存储在Cookie或会话中(此处没有明显区别),则一次只能存在一个这样的状态,并且用户将无法打开具有不同状态的单独窗口/选项卡。这与HTTP的工作方式背道而驰。

如果您从一页链接到另一页,请在URL中添加参数以表示唯一状态,例如:

如果要在使用Javascript的页面上动态更改状态,则可以添加片段来表达这些状态更改:

您还可以使用Javascript History API来更改URL,而不仅仅是片段。重要的是,您可以读取该URL并再次再现相同的状态。