在多级系统列表中传递变量

这个问题是关于在后台数据列表,使用变量样订货,网页排名,过滤器等。

我使用GET传递页面之间的变量,但我有很多的麻烦和改变会话存储这个变量。 我不介意书签的问题,因为它是一个后台工具。 一切都OK直到今天:我看名单,我换了一个过滤器,然后我就想回到以前的结果。 我自然的手势被按下浏览器“返回”按钮。 当然,我并没有考虑到以前的结果,因为我已经覆盖了会议。

所以,这是要做到这一点,最好的方法? 铭记不仅是用户的体验,但编码设备和避免错误。

麻烦我发现,当我在两个或三个级别列表传递变量通过网址,特别是:

  • 有很多变量,很多地方我必须把他们:链接编辑工作的项目,表单的动作,反向链接,页面导航链接...
  • 某些变量可以具有相同的名称(即,每级将有一批页)。 这很容易犯错误这一点,特别是当你有一个以前的脚本代码里面新的东西。
  • 我不能只使用查询字符串,因为有我不得不改变一些VAR值的情况下(即在分页导航链接我已经改变number_of_pag变量)。

我想最好的办法是不是“嘿,如果你付出更多的关注,你会不会让这些错误。” 有没有我还没有发现任何系统? 伟大的人怎么办呢?

也许实现方法来自动呈现链接?

谢谢。

--------------解决方案-------------

对于这些类型的变量的地方查询字符串。 不仅是它需要的书签,但是它需要导航到给定的内容在一般情况下,当你与后退按钮发现的。 但是,如果你真的想缩写查询字符串,请考虑使用令牌或标识代替。

也就是说,在会议上,可以考虑使用的系统是这样的:

// this represents the query data for one page request
$_SESSION['queryid']['38hghfd85423lk'] = array(
'all' => array('the => 'query', 'data'),
'is' => array('stored', 'like', 'this)
);

// this represents the query data for another page request
$_SESSION['queryid']['432423jkgrfsd9'] = array(
// .... other data ....
);

现在,您的查询字符串像这样:

http://www.example.com/index.php?queryid=38hghfd85423lk

或者是这样的:

http://www.example.com/index.php?queryid=432423jkgrfsd9

当然,你使用在GET数据给出查明,从使用的查询数据的queryid $_SESSION 。 现在,浏览器后退按钮会工作。

一个问题可能是,长会议后,查询缓存中的$_SESSION会变得相当大。 为了缓解这个你可以限制缓存的长度,说最后的100页。 如果用户试图浏览100多页回来,你会发现他们的queryid不再存在,并且将能够通知他们该页面已过期。

如果你想支持书签功能,您可以在queryids和数据保存到数据库中。 当然,你仍然可能要考虑修剪方法 - 比方说,你还没有在一个月内被用来清除queryids。 这可能是令人沮丧的一个用户,但是。

分类:php 时间:2015-03-15 人气:0
本文关键词: PHP中,变量
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.927 (s). 10 q(s)