【问题标题】:PHP header not redirectingPHP标头未重定向
【发布时间】:2011-06-16 04:30:21
【问题描述】:

在检查了两个初始条件后,我一直在尝试转发 url。这是一段简单的代码。我想要实现的是检查将从 CSV 文件加载的两个初始条件,然后如果满足条件,我想将用户转发到不同的页面。

这是我的 CSV 文件内容

katz,26.06.2011,http://www.google.com


<?php
error_reporting(E_ALL|E_STRICT);
ini_set("display_errors", "On");
$name_value=$_GET['query'];
$fh = fopen('db.csv', 'r');
$now = date("d.m.Y"); 
$data=fgetcsv($fh); 
$name=$data[0];
$date=$data[1];
$url=$data[2];
if($name_value == $name AND $date>=$now)
{
   header("Location: $url");
}
else
  {
   echo("not successful<br>");
  }
echo "name1 is $name_value<br>";
    echo "name2 is $name<br>";
    echo "date is $date<br>";
    echo "now is $now<br>";
    exit;
?>

我收到此警告

警告:无法修改标头信息 - 标头已由 /Applications/XAMPP/xamppfiles/htdocs/x/client_authorized.php 中的(从 /Applications/XAMPP/xamppfiles/htdocs/x/client_authorized.php:5 开始的输出)发送第 17 行

我哪里错了?

【问题讨论】:

  • 确保在调用 header() 之前不显示任何输出。在第 5 行的 client_authorized.php 中某处,已经开始输出。
  • @Rakesh 我没有在标题之前调用任何其他输出......以及在 exit() 之前的 echo 语句;仅用于测试目的
  • 即使是空格,换行也会影响这一点。
  • output started at /Applications/XAMPP/xamppfiles/htdocs/x/client_authorized.php:5 行会告诉您输出发生的确切位置。检查文件中的该行是否有任何空格或其他字符。
  • 尝试查看生成页面的源代码,看看是否能在错误信息前检测到空格或换行符

标签: php csv warnings xampp


【解决方案1】:

在输出已经开始后你不能发送标题(标题必须是第一件事)。

确保您在打开 &lt;?php 之前没有任何内容(包括空格,例如换行符、制表符和空格)。

【讨论】:

    【解决方案2】:

    您还应该在头函数调用之后调用 exit() 或 die()。

    在此处查看重定向示例http://us2.php.net/manual/en/function.header.php

    【讨论】:

    • 我同意。之后您应该致电exit();die()
    【解决方案3】:

    您可以尝试打开输出缓冲

    $ <?php
    $ ob_start();
    $ --------
    $ --------
    $ ob_end_flush();
    $ ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 2021-07-07
      • 2012-12-16
      • 2011-04-15
      相关资源
      最近更新 更多