【问题标题】:Redirect and header aren't working [duplicate]重定向和标题不起作用[重复]
【发布时间】:2015-11-02 13:58:59
【问题描述】:

下面的代码显示了“111”和“222”。但不会将我重定向到任何地方。我现在能做什么?

<?php
echo "111";
header("Location: http://www.google.com");
echo "222";
return Redirect::to('http://www.google.com'); 
echo "333";
?>

【问题讨论】:

标签: php laravel redirect


【解决方案1】:

两件事……

你需要在你的标题后面加上exit("Location: ... ") 示例:

header("Location: http://www.google.com");
exit;

但更重要的是……如果您已经使用echo 写入输出缓冲区,则您的标头不会重定向。

【讨论】:

  • 谢谢你,但仍然没有任何反应
  • 请注意,在使用 header() 之前不能有任何输出。所以没有 echo、var_dump、没有 或任何高于你的 php 标签的东西,没有包含标题,什么都没有。
【解决方案2】:

在设置header标签之前不能有任何输出,所以去掉echo语句,在header之后退出脚本:

header("Location: http://www.google.com");
exit;

【讨论】:

  • 谢谢你,但仍然没有任何反应
  • 你发布的脚本是完整的脚本吗?
【解决方案3】:

它不起作用,因为您已经将数据发送到客户端(echo)。在回显任何内容之前发送标题,或者像这样缓冲它:

ob_start();
echo "111"; //Note: You're missing a semicolon here
header("Location: http://www.google.com");
echo "222";
$obj = Redirect::to('http://www.google.com'); 
echo "333";
ob_flush();
return $obj;

To Continue Reading... 希望这会有所帮助!

【讨论】:

  • return 语句会跳出这个并且永远不会到达 ob_flush()
猜你喜欢
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 2015-05-24
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多