I have the following code in a PHP file called via Ajax (note – the code is a stripepd down version of the actual code, but still produces an error:
<?php
session_start();
$response = array(
'status'=>'abc',
'a'=>'abc',
'b'=>'abc',
'c'=>'abc'
);
header('X-JSON: '.json_encode($response));
exit;
?>
There are absolutely no spaces or anything before the opening
Yet when I call the script I get:
‘[11-Aug-2009 14:56:13] PHP Notice: A
session had already been started –
ignoring session_start() in
\test\action.php on line 2[11-Aug-2009 14:56:13] PHP Warning:
Cannot modify header information –
headers already sent by (output
started at \test\action.php:2) in
\test\action.php on line 10′
Line 2 is the session_start() command and line 10 is the header() command.
So PHP is telling me that it has ignored the session_start, and then immediately telling me that actually that line produced output….whats going on?
Well, believe it or not, the criminal output is……
Either suppress error messages (bad idea in development) Or find where you started the session (which is really how you need to solve this)