我在通过Ajax调用的PHP文件中有以下代码(注意 - 代码是实际代码的stripepd版本,但仍会产生错误:
<?php
session_start();
$response = array(
'status'=>'abc',
'a'=>'abc',
'b'=>'abc',
'c'=>'abc'
);
header('X-JSON: '.json_encode($response));
exit;
&GT;
开幕前绝对没有空格或任何东西
然而,当我调用脚本时,我得到了:
'[2009年8月11日14:56:13] PHP注意:A 会议已经开始 - 忽略session_start() 第2行的\ test \ action.php
[2009年8月11日14:56:13] PHP警告: 无法修改标题信息 - 已经发送的标题(输出 开始于\ test \ action.php:2)in \ test \ action.php在第10行
第2行是session_start()命令,第10行是header()命令。
所以PHP告诉我它已经忽略了session_start,然后立即告诉我实际上那行产生了输出......最近怎么回事?
答案 0 :(得分:3)
嗯,不管你信不信,犯罪产出是......
'[11-Aug-2009 14:56:13] PHP Notice: A session had already been started - ignoring session_start() in \test\action.php on line 2
要么压制错误消息(开发中的坏主意)要么找到你开始会话的地方(这真的是你需要解决的问题)
答案 1 :(得分:0)
可能与此question of mine有关。
答案 2 :(得分:0)
检查文件中是否存在这种令人讨厌的小故障,称为BOM(字节顺序标记)。如果您将该文件编码为utf-8,则可以使用例如firebug来捕获它。
答案 3 :(得分:-1)
使用ob_start();