PHP重定向不起作用
Posted
技术标签:
【中文标题】PHP重定向不起作用【英文标题】:PHP Redirect is not working 【发布时间】:2016-01-12 10:08:55 【问题描述】:我正在尝试使用 php 标头成功用户登录后重定向我的页面,但我无法重定向页面。
echo '<span style="color:#E02F2F;text-align:center;font-size:25px;padding-left:38%;">Username or Password is valid</span>';
header('Location:http://example.com/templates/georamble/index.php'); // Redirecting To Other Page
我的登录页面位于“georamble”文件夹中。我哪里错了?
【问题讨论】:
您是否尝试在标题后保留exit;
同一个项目的其他页面?
echo
+ header
不起作用。如果您已经将输出发送到客户端,则您的标头已发送,您无法再更改它们。要么使用输出缓冲,要么在发送输出之前设置标题。如果您想要/需要显示 “成功登录” 消息,您可以在您重定向到的页面上执行此操作,并使用会话来跟踪此类内容。 Read all about it here
PHP Redirect to another page after form submit的可能重复
你得到什么有没有错误输出?如果有更新您的问题。
【参考方案1】:
如果 echo 语句在标头之前使用,则不会重定向页面。所以你也可以试试这个。 echo <script>
window.location='url'</script>
【讨论】:
需要注意的是 header() 必须在发送任何实际输出之前调用(在 PHP 4 及更高版本中,您可以使用输出缓冲来解决此问题): 以上不是正确的解决方案。但使用这解决了你的问题。【参考方案2】:你不能使用,在标题前回显。为了克服这种情况,您可以使用 ob_start() 和 ob_end_flush() 函数如下:
ob_start();
echo '<span style="color:#E02F2F;text-align:center;font-size:25px;padding-left:38%;">Username or Password is valid</span>';
header('Location:http://example.com/templates/georamble/index.php'); // Redirecting To Other
ob_end_flush();
希望对你有所帮助。
【讨论】:
确保您的 php.ini 中的 output_buffering 值是否为 On。 为什么要打开输出缓冲来重定向到另一个页面?【参考方案3】:您可能会遇到错误,因为您在重定向之前打印了信息。您的用户将永远不会看到该信息。
A similar question and answer.
因此,在您的脚本成功执行后暗示登录,如果您想显示某种类型的信息,请在您的标头重定向中传递参数。想既然你只是在呼应有效的登录,我认为没有必要。您做对了,只是在重定向之前无法将任何内容打印到屏幕上。
【讨论】:
我不需要在重定向之前打印 anu measaage 。这仅用于测试目的 然后把 echo 语句拿出来。应该马上把你修好。 :) 已删除。仍然存在同样的问题:( 脚本中只有这两行吗?以上是关于PHP重定向不起作用的主要内容,如果未能解决你的问题,请参考以下文章