I am getting the following error. I've changed the paths and file names here
to protect my client's confidentiality.
Warning: session_start(): Cannot send session cache limiter - headers
already sent (output started at
/www/html/app/includes/someincludescript.php:2) in
/www/html/app/includes/session.php on line 3
The main script has
<?
include("/www/html/app/includes/someincludescript.php");
include("/www/html/app/includes/session.php");
....
?>
Of course, session.php has a session_start() in it.
My understanding of this error is that someincludescript.php has some kind
of output going out of it at line 2. This would cause the session_start()
function to hiccup and give the warning. Examining someincludescript.php, it
has nothing that should be outputting to the browser. The earliest output in
the main script comes after session.php is included.
To complicate my problem more, all of it works fine on my development
server. When I ship the scripts off to my client and he installs them on his
server, the warning happens. I have taken steps to ensure that the DOS/UNIX
difference in line endings is not a problem. Both the development and
production servers run RedHat Linux. However, the scripts are sent via ftp
(ASCII xfer mode) to my Windows machine, emailed to client's Windows
machine, ftp'd (ASCII xfer mode) to his machine. His doesn't work.
Part of my frustration is that I have no direct influence over the
production server. I can accept that, but it makes it very hard to debug
problems like this. He says that his PHP errors log doesn't show any errors.
I have three suspicions:
1. There is some system setting somewhere, perhaps in php.ini, that is
different between the two servers.
2. My client is not installing the scripts correctly (unintentionally) and
causing the error.
3. The someincludescript.php script is causing an error at line 2 that tries
to write a warning to the browser, which triggers the warning.
Setting me straight on any of the above is welcome.
Rex