跟踪多个页面引用者级别

时间:2012-05-10 04:46:25

标签: php kohana

场景(所有发生在管理区域/后端内):

  1. 在列表页面中,用户单击链接以查看文章(在后端)。
  2. 在文章视图页面中,用户单击链接以编辑该文章。
  3. 在文章编辑页面中,表单将提交给当前的uri。
  4. 如果验证成功或用户取消,则会将用户重定向到文章视图页面。
  5. 在文章视图页面中,用户点击“返回”链接返回列表页面。
  6. 列表< - >查看< - >修改

    现在,我只能跟踪前一页的引荐网址。在编辑表单中,我使用隐藏字段来维护对视图页面的引用,以免在失败的表单POST提交到自身时进行更改,并且用户仍保留在编辑页面中。

    问题是,当用户从编辑返回到视图页面时,列表页面的“后退”链接现在链接到编辑页面。

    仅供参考,

    • 列表页面网址是动态的,因为用户应该返回到同一页面上的列表和排序顺序(存储在查询字符串中);因此,一个固定的网址是不可能的。
    • 在过去,我尝试过使用会话(例如SESSION ['view_to_list_ref'] SESSION ['edit_to_view_ref']),但它搞砸了多个标签。
    • 我可以通过ajax在view / edit之间进行转换,但我希望在这个时间点保持应用程序的简单和无。
    • 我正在使用PHP + Kohana 3.2 Framework

    我能想到的唯一解决方案是将列表页面网址编码并通过查询字符串附加到“查看文章”链接。这样,即使在编辑页面中,也会保留列表页面的位置;因为引用URL回到视图页面还将包含查询字符串中的列表页面URL。但是,我真的不喜欢使用长参数值(编码或不编码)“弄脏”网址的想法。

    我真的希望有一个更优雅的解决方案来解决这个通常跟踪多个页面引用级别的问题;不只是专门解决我提到过的情景。

    编辑:哦,解决方案应该能够支持执行相同方案的多个标签。

1 个答案:

答案 0 :(得分:0)

您可以使用PHP会话中的唯一标识代码,临时变量以及使用临时数据库表来跟踪页面,该临时数据库表通过这些临时值跟踪页面加载。

数据库结构可能是:

+-------------+-------------------+---------------------+
|  Unique ID  |    Page Referral  |   Time of page load |
+-------------+-------------------+---------------------+

跟踪页面加载时间将允许您有选择地擦除超过X分钟的加载,并保持表格相对较小。

无论如何,这将允许你保持尽可能多的级别,如果你想添加一个自动递增计数器字段,或你自己的计数器字段,你甚至可以保持一个简单易用的数字系统跟踪页面加载,但我相信页面加载的时间就足够了。