0

我最初是使用带有 PHP 的标头重定向用户。但是在我的服务器上,我遇到了一个问题,因为 HTML 位于 Location 标头之前。现在,改变我的脚本结构不是我能做的。我可以使用哪些其他方式在我的 PHP 中进行重定向。

我尝试了这些选项,但它们不起作用:

echo "<META HTTP-EQUIV="Refresh" Content="1; URL=index.php">";

还有单引号:

echo <META HTTP-EQUIV="Refresh" Content="1; URL=index.php">;

两种方法都不起作用。我能做些什么?

4

5 回答 5

3

您可以启用输出缓冲。输出将被缓冲直到完成,允许您随时设置标题。

但实际上,您应该修复您的应用程序,使其不会按照您描述的方式进行设置。我知道您说这不是您可以做的事情,但是如果您将应用程序逻辑与 HTML 混合在一起,您可能会遇到其他问题。代码的可读性和可重用性是其中之一。

于 2012-09-23T05:16:21.887 回答
1

看看输出缓冲。你基本上ob_start()在你的第一个输出之前和ob_flush()最后一个输出之后调用这个函数。

于 2012-09-23T05:17:24.210 回答
1

你的 php有一个主要错误 试试这个

echo '<META HTTP-EQUIV="Refresh" Content="1; URL=index.php">';

因为您已经在 Meta 标记中使用了双引号,所以必须使用单引号来开始和结束回显字符串。好了,Meta标签现在可以正常工作了。

使用标题

header('Location:http://www.mtrix.in');

exit();

此人将被重定向到提供的此位置。但这必须在任何输出之前发送,甚至在发送标头之前,因为标头只能发送一次,并且通常在输出之前发送。

您还可以输出以下内容

<script> 

window.location='index.php';

</script>

元标记应该可以工作

<meta http-equiv="refresh" content="2;url=http://mtrix.in/">

于 2012-09-23T05:56:03.417 回答
0

抱歉,我没有意识到您在回显代码中犯的错误,所以我编辑了答案,检查一下,它现在应该可以工作了。

于 2012-09-23T06:12:01.673 回答
0

如果您想显示一些 html 内容,并在一段时间后重定向到其他页面。您可以使用以下元标记。

<meta http-equiv="refresh" content="5;url=http://www.example.com/otherpage">
于 2012-09-23T05:17:57.757 回答