我正在重构一些旧代码并试图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()
。如果按钮单击事件导致重定向,您如何在不使用的情况下处理 php 中的重定向ob_start()
?