可能重复:
PHP 中的“警告:标头已发送”
我正在使用本地 XAMPP 安装来测试基于 PHP/MySQL 的网站的开发。我的本地 PHP 版本是 5.3.8,我的虚拟主机使用的是 5.2。我收到标题错误:
无法发送会话缓存限制器 - 标头已发送
在未显示在本地版本上的托管版本上。这是版本问题、设置问题还是其他问题?我将更改代码以使其适用于两者,但理想情况下,我希望这两个环境的行为几乎相同。
可能重复:
PHP 中的“警告:标头已发送”
我正在使用本地 XAMPP 安装来测试基于 PHP/MySQL 的网站的开发。我的本地 PHP 版本是 5.3.8,我的虚拟主机使用的是 5.2。我收到标题错误:
无法发送会话缓存限制器 - 标头已发送
在未显示在本地版本上的托管版本上。这是版本问题、设置问题还是其他问题?我将更改代码以使其适用于两者,但理想情况下,我希望这两个环境的行为几乎相同。
这与 php 版本无关,不同之处在于您的主机上启用了错误报告,但您的本地未启用。请记住 session_start() 必须在发送任何实际输出之前调用,无论是通过普通 HTML 标记、文件中的空白行还是通过 PHP。使用 include 或 require 函数或其他文件访问函数读取代码并在调用 session_start() 之前输出空格或空行是一个非常常见的错误。使用单个 PHP/HTML 文件时也存在同样的问题。
您是否比较了两台服务器的 html 源代码?可能还有另一个您没有注意到的错误或字符串打印出来。php标签是否位于文件的开头?甚至 php 标记前的空格也会导致此错误。
尝试注释代码块以查找导致错误的行,或者exit
如果项目太大而无法在某行停止执行脚本并查看在该行之前是否一切正常,请使用函数。