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