[英]session_start() followed by header() causing error
我在通过Ajax调用的PHP文件中有以下代码(请注意-该代码是实际代码的精简版本,但仍然会产生错误:
<?php
session_start();
$response = array(
'status'=>'abc',
'a'=>'abc',
'b'=>'abc',
'c'=>'abc'
);
header('X-JSON: '.json_encode($response));
exit;
?>
开幕前绝对没有空间或任何东西
但是,当我调用脚本时,我得到:
'[11-Aug-2009 14:56:13] PHP注意:一个会话已经开始-在第2行的\\ test \\ action.php中忽略session_start()
[11-Aug-2009 14:56:13] PHP警告:无法修改标头信息-行10'上\\ test \\ action.php中已经由发送的标头(输出从\\ test \\ action.php:2开始)
第2行是session_start()命令,第10行是header()命令。
所以PHP告诉我它已经忽略了session_start,然后立即告诉我实际上该行产生了输出。
好吧,信不信由你,犯罪产出是......
'[11-Aug-2009 14:56:13] PHP Notice: A session had already been started - ignoring session_start() in \test\action.php on line 2
抑制错误消息(开发中的坏主意),或者找到在哪里开始会话(这实际上是解决此问题的方式)
这可能与我的这个问题有关 。
检查文件中是否存在这种令人讨厌的小bug,称为BOM(字节顺序标记)。 如果您已将该文件编码为utf-8,则有可能,例如,可以使用firebug捕获该文件。
使用ob_start();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.