如何在输出消息后使用标题重定向到php中的另一个页面?

时间:2017-04-02 18:09:09

标签: php redirect header web location

我正在创建一个php文件,在某个条件不成立之后,我必须使用标题函数添加 PHP页面重定向。

问题是在重定向之前我有使用echo 输出一些消息,因为这个头功能不起作用并抛出警告: -

  

警告:无法修改标头信息 - 已经在C:\ xampp \ htdocs ... \ search.php上发送的标头(在C:\ xampp \ htdocs ... \ search.php:229处开始输出) 291

请帮助我,如果还有其他选择,请告诉我们

  

javscript方法window.location = url;

2 个答案:

答案 0 :(得分:2)

抱歉,在PHP中没有。在开始发送响应主体后,您根本无法修改标题。

有3个选项

  1. 使用html元刷新
  2. 正如您提到的那样使用JavaScript
  3. 将代码移动到您仍然可以操作的位置 响应标题
  4. 如果您使用现代框架,则大多数情况下您没有这个问题。 Symphony,Laravel,Slim等框架正在帮助您将业务(控制器)逻辑与显示(视图)逻辑分开。

    对于初学者,我会推荐Slim框架https://www.slimframework.com。 它记录良好且非常轻便。

答案 1 :(得分:0)

你可以这样做:

使用刷新和网址,这将等待五秒钟重定向您:

header("refresh:5;url=https://www.google.com.br/");
echo "Redirecting you to Google in 5 seconds.";

或者您可以使用javascript:

echo '<script language="JavaScript"> alert("Redirecting you to Google BR!");window.location="https://www.google.com.br/";</script><noscript>Click here: <a href="https://www.google.com.br/">aqui</a>.</noscript>';