codeigniter我得到头已经发送

时间:2011-01-15 22:15:39

标签: codeigniter model controller

我收到了这个错误

  

遇到PHP错误

     

严重性:警告

     

消息:无法修改标头   信息 - 已经发送的标题   (输出始于   /home/rapcomdk/public_html/system/language/danish/imglib_lang.php:1)   文件名:helpers / url_helper.php行   编号:541

我不知道问题是什么

这是我的控制器:

http://pastebin.com/EMtcMgsB

这是我的模型文件:

http://pastebin.com/iH6xQFGA

希望有人可以帮助我

5 个答案:

答案 0 :(得分:3)

system/language/danish/imglib_lang.php中检查并确保<?php标记之前没有空格,并确保文件中没有关闭?> php标记。

答案 1 :(得分:3)

除了jondavidjohn's answer之外,如果您对文件使用Unicode编码,请确保文件中没有byte order mark。在某些平台上,这会对PHP处理造成严重破坏。

答案 2 :(得分:1)

确保codeigniter中没有错误,有时错误可以被其他错误覆盖,例如一个错误导致另一个错误。

答案 3 :(得分:0)

问题出在system/language/danish/imglib_lang.php,它必须在<?php部分之前在服务器上解析时具有一些字符。发生的事情是helpers\url_helper.php正在尝试重定向(使用此代码;)

case 'refresh'  : header("Refresh:0;url=".$uri);

但是失败了,因为imglib_lang.php, line 1已经向响应发送了一些非标题文本。由于标题首先出现,它会给你警告。

我想知道它在本地工作但不在部署服务器上工作。可能是文件没有被干净地传输,或者服务器使用不同版本的PHP和不同的字符集处理。

几项检查;

  1. 绝对确保system/language/danish/imglib_lang.php.前面没有BOM。让我们知道您确定的原因。例如,如果您在Windows上的记事本中编辑了文件,它将获得字节顺序标记。由于某些工具“吞下”标记,因此很难说清楚。还要确保没有普通的空白。
  2. 保存imglib_lang.php时,请确保以ASCII格式保存。
  3. 比较PHP的本地和远程版本。如果存在差异,请将本地副本更新为与服务器相同的位置,然后重新测试。
  4. 检查文件是否完美传输。如果您使用FTP放置文件,则FTP可能会在传输时修改它。 FTP有两种模式 - ASCII模式和BINARY模式。如果文件以ASCII格式传输,则可能会对文件进行一些重写。请确保将imglib_lang.php作为BINARY传输,以确保正在上传确切文件。

答案 4 :(得分:-1)

如果您认为已正确配置了所有内容,那么您的库(或具体地,imglib_lang.php)可能只是生成PHP警告或通知。如果您可以从主机获取日志,那将会很有帮助。

否则,您可以尝试关闭PHP的错误报告:

error_reporting(0);

(您可以将该行放在index.php中)