2010-09-14 66 views
2

表单(方法POST)提交后,我想重定向用户到特定页面。后重定向

通常我使用了简单的线

header("Location: /path/to/redirect/"); 
exit; 

化Zend_Controller_Action有方法_redirect例如:

$this->_redirect("/path/to/redirect/"); 

但它有一个简单的问题:如果我刷新页(按F5),最后一个控制器动作被激活。所以它像双重职位。
当然,我可以使用旧时尚的方式,但我只想找到zend风格的重定向。

编辑:p.s后重定向我想要清理表单数据。当然,我可以使用自己的方法与标题(“位置:/路径”),但我搜索它实施标准zf

任何想法?

+0

+1我以前也有过这个问题。我仍然使用'header'重定向。 – ashurexm 2010-09-14 19:43:15

+1

_redirect($ url,array $ options = array()):重定向到另一个位置。这个方法需要一个URL和一组可选的选项。默认情况下,它执行HTTP 302重定向。这是你的浏览器做的转发,而不是zend – 2010-09-14 19:50:23

+0

@Byron Whitlock:我知道这是浏览器的问题。只是在这一步寻找更好的做法; 刷新之后,它只是将相同形式的数据称为旧控制器操作。如果哪里没有验证,所以你可以举例假票结果。 我只是没有找到使用standart zf方法的方法。 – 2010-09-14 20:03:34

回答

-1

设置数据已发布的会话变量,如果没有发布数据,重定向?

+0

我认为他的问题的重点,ZF重定向帮助器留下张贴的数据,刷新尝试重新提交它。即使他放置了通常的安全防护来防止重新发布,用户也会感到恼人的“您即将重新提交数据”弹出窗口。我假设他的问题是,有没有比使用删除表单数据的'header'重定向方法更好/更好/更好的方法。 – ashurexm 2010-09-14 19:50:38

+0

@manyxcxi:是的,你是对的。我只是想在重定向后删除表单数据。 – 2010-09-14 19:57:00

+0

我不需要发布数据保存(这是不是问题)。我只想找到zend的方式来做重定向和形成数据清理。 – 2010-09-14 19:58:35

2

我认为这是因为_redirect使用内部重定向。你需要使用外部的。您需要直接使用重定向器操作助手...在您的操作中:

$this->_redirector->gotoUrlAndExit($url); 
+0

好,所以它是简单的标题(“位置:/路径”):) – 2010-09-14 20:04:38