繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM