【发布时间】:2013-06-21 11:50:32
【问题描述】:
我正在重构一些旧代码并试图更好地理解headers。
我在No output before sending headers! 的以下帖子中读到了一个很棒的答案 现在我明白了“为什么”,但在实施时仍然有点模糊。
当点击取消按钮并搜索到值时,我的当前页面会重定向回来。
我存储发出请求的页面和会话变量中的值,允许我这样做:
if (isset($_SESSION['searchPage'])){
header('Location:searchForm.php?ticket='.$_SESSION['product'].'&searchbtn=Search');
exit();
}
但是,要在显示页面中进行这项工作,我必须使用 ob_start()。
为了避免这种解决方法,我发现我可以通过 javascript 重定向:
if (isset($_SESSION['searchPage'])){
echo '<script>window.location="searchForm.php?product='.$_SESSION['product'].'&searchbtn=Search";</script>';
exit();
}
现在回答我的问题
- 哪种方法更好或可以接受?
- 我似乎想不出在使用
header()之前不发送任何输出的地方设计我的页面的方法。如果按钮单击事件导致重定向,您如何在不使用ob_start()的情况下处理 php 中的重定向?
【问题讨论】:
-
PHP。总是 PHP。使用
ob_start()(和其他ob_*函数)很好 -
“我似乎想不出一种方法来设计我的页面,使其在使用 header() 之前不发送任何输出。” – en.wikipedia.org/wiki/IPO_Model
标签: php javascript redirect header