2011-03-20 51 views
0

我不喜欢必须显式地管理会话中的值,我无法想象我在这个单独...所以我希望得到反馈:干净地在请求之间传递值(在会话中,作为GET/POST参数...?)

  1. 如何其他程序员/平台/框架处理这个
  2. 我使用的方法(下文解释)

我使用的方法包括控制器类型的脚本支持在会话中添加一个变量,当我知道它可能需要在下一个请求...并自动r之后将其冲走(TTL通过柜台进行控制)。

例如,

  • 请求1 - 脚本将值与键selectedValue
  • 请求2的会话 - selectedValue从会话了 - 脚本从会话
  • 请求3读取selectedValue (这是好的,因为它不再需要)

这是我能想到的最干净的方式通过不同的请求传递值,而不是在会话中存储global变量(例如,经过认证的用户ID)。

在这种情况下,页面刷新将被忽略,如果需要将值传递给其他请求,则需要重新设置。

+0

你愿意投票给出帮助你并可能接受其中一个的答案吗? – markus 2011-08-13 16:20:54

+0

嗨@mar​​kus!感谢您的关注,但迄今为止的答案并没有多大帮助。这里没有什么新东西 - 我认为这个问题在某个地方可以被优雅地解决,也许它没有,或者我找不到它。或者,也许这不是问题?! – 2011-08-14 15:47:15

回答

1

而不是将它存储在会话中,也可以将它作为请求参数传递给后续请求。假设您正在使用表单,<input type="hidden">对此很有用。

例如

<form action="confirm.php" method="post"> 
    <input type="submit" name="confirm" value="Confirm" /> 
    <input type="hidden" name="foo" value="<?=htmlspecialchars($foo)?>" /> 
</form> 

然后您可以通过$_POST['foo']来保留它。

+0

没关系,只要客户修改该值也可以。在很多情况下,这不是存储在会话中的好选择。 – 2014-11-22 18:22:42

1

在调试$ _SESSION相关问题后,我去了隐藏的域路由,但现在我更有经验,我认为会话变量是更好的方法。我宁愿明确地管理$ _SESSION中的值,也不愿意使用隐藏字段做同样的事情,如果你想在多次刷新时保留它,你必须在每次加载页面时重新编码这些信息。