【问题标题】:How to redirect to another page in php using header after outputting message?输出消息后如何使用标头重定向到php中的另一个页面?
【发布时间】:2017-08-27 13:25:48
【问题描述】:

我正在制作一个 php 文件,在某个条件不成立后,我必须在其中添加 使用 header 函数的 PHP 页面重定向

问题是,在 Redirection 之前,我已经 Outputted some message using echo 因为这个标头函数不起作用并抛出警告:-

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

请帮我解决这个问题,如果有任何其他替代方案,请告诉我

javascript方法window.location=url;

【问题讨论】:

  • 发布您的代码。

标签: php redirect header web location


【解决方案1】:

对不起,在 PHP 中没有。开始发送响应正文后,您根本无法修改标头。

有 3 个选项

  1. 使用 html 元刷新
  2. 正如你提到的使用 JavaScript
  3. 将您的代码移动到您仍然可以操作 响应头

如果您使用现代框架,您通常不会遇到此问题。 Symphony、Laravel、Slim 等框架正在帮助您将业务(控制器)逻辑与显示(视图)逻辑分开。

对于初学者,我会推荐 Slim 框架 https://www.slimframework.com。 它有据可查且非常轻量级。

【讨论】:

    【解决方案2】:

    你可以这样做:

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

    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>';
    

    【讨论】:

      猜你喜欢
      • 2013-04-14
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多