输出消息后如何使用标头重定向到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 标头函数的情况下确认使用 Javascript 时,如何重定向到另一个 PHP 页面