簡體   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