【问题标题】:PHP Redirect is not workingPHP重定向不起作用
【发布时间】: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 url redirect url-redirection


【解决方案1】:

如果 echo 语句在标头之前使用,则不会重定向页面。所以你也可以试试这个。 echo &lt;script&gt;window.location='url'&lt;/script&gt;

【讨论】:

  • 需要注意的是 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 语句拿出来。应该马上把你修好。 :)
  • 已删除。仍然存在同样的问题:(
  • 脚本中只有这两行吗?
猜你喜欢
  • 2017-03-06
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多