【问题标题】:php, Cannot modify header information [duplicate]php,无法修改标头信息[重复]
【发布时间】:2013-05-01 19:07:23
【问题描述】:

我正在制作一个简单的下载计数器,但我不断收到标题错误,如 - http://dev.kennyist.com/download.php?file=gvb

<?
error_reporting(-1);

$file= $_GET['file']; 
print $_GET['file'];    
$countf= 'download/' . $file . '.txt';    
print $countf;    
$count = file_exists($countf) ? file_get_contents($countf) : 0;    
file_put_contents($countf, ++$count);    
header("Location: http://dev.kennyist.com/download/[$file].zip");    
die();

?>

输出:

gvbdownload/gvb.txt

警告:无法修改标头信息 - 第 17 行 /home/kennyi81/public_html/dev/download.php 中的标头已由(输出开始于 /home/kennyi81/public_html/dev/download.php:1)发送

【问题讨论】:

  • 看右边一栏的票数 -->
  • 您的内容超出了错误...尽管它看起来很难缠住您,但在使用 header() 之前您无法回显或打印任何内容;

标签: php file header download counter


【解决方案1】:

您正在使用print 在修改标头之前回显信息。你不能这样做。只需注释掉或删除两个 print 行,它应该可以工作。

【讨论】:

  • 我认为不应该回答这个问题。仅在此处已回答了大约无数次。 OP方面没有任何努力。
  • 我认为用于发布该评论的相同能量可用于将 OP 与 SO 上其他地方回答的问题联系起来。既然不是,答案似乎并不过分。
  • 我已经删除了他们两个,删除了所有空行但仍然无法正常工作。
  • @mjayt,这里是one of the many
  • 是包含这个文件的东西还是它自己调用的?
【解决方案2】:

完全正确...标题前不能有print...不能打印任何东西(不是回显,不是var_dump)

在这里查看:http://us.php.net/manual/en/function.header.php

请记住,必须在任何实际输出之前调用 header() 通过普通的 HTML 标记、文件中的空行或 PHP 发送。 使用 include 或 require 读取代码是一个非常常见的错误, 函数,或其他文件访问函数,并且有空格或空 在调用 header() 之前输出的行。一样的问题 使用单个 PHP/HTML 文件时存在。

【讨论】:

    【解决方案3】:

    如果您不能或不想更改代码,可以在代码开头使用ob_start();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2011-08-03
      • 2012-06-19
      • 2014-03-07
      • 2011-05-09
      • 1970-01-01
      相关资源
      最近更新 更多