session_start()后跟header()导致错误

时间:2009-08-11 14:02:18

标签: php

我在通过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,然后立即告诉我实际上那行产生了输出......最近怎么回事?

4 个答案:

答案 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();

相关问题