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

Posted

技术标签:

【中文标题】输出消息后如何使用标头重定向到php中的另一个页面?【英文标题】:How to redirect to another page in php using header after outputting message? 【发布时间】: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;

【问题讨论】:

发布您的代码。 【参考方案1】:

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

有 3 个选项

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

如果您使用现代框架,您通常不会遇到此问题。 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>';

【讨论】:

以上是关于输出消息后如何使用标头重定向到php中的另一个页面?的主要内容,如果未能解决你的问题,请参考以下文章

在输出用户消息后重定向PHP页面

当我在不使用 PHP 标头函数的情况下确认使用 Javascript 时,如何重定向到另一个 PHP 页面

是否最好使用HTTP标头重定向到不同的页面/文档,或者合并动态消息以通知用户拒绝访问?

执行IF条件时如何重定向到ReactJS中的另一个页面?

标头重定向后未定义PHP会话索引?

如何使用Razor语法重定向到Jquery中的另一个页面