Is header() malfunction due to PHP5.3.3 -> 5.4.11 transition?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




I'm having a problem with a very straightforward routine; one that works
in one PHP installation but not on the other. The only difference that I
can see between the working version and the non-working version is that
the one that doesn't work is running on the later version of PHP. The
following basic log-in routine works fine on my personal development
server, running PHP 5.3.3, but doesn't work on the production server,
hosted by 1&1.com that is running PHP 5.4.11.

<?php
require_once('../includes/initialize.php');  //<== $session object
                                               init'd and set to false

if(!$session->is_logged_in())
{
        header("Location: login.php");
        exit;
}
?>

login.php is in the same directory as the file that has this code at the
very top of the file.

Everything works as expected right up to the 'exit;' line.
      * $session->is_logged_in() is false
      * when tested immediately after the 'header("Loc...)' statement,
           'headers_sent()' reports true.
      * no error messages result (like: 'header already sent', etc.)

Instead of the program flow moving to 'login.php', the URL indicates
that the destination is the original file, except that the file is empty
- zero bytes.  I've tried accessing the routine via three different
computers, all running different MS operating systems from XP to Win7
and they all behave identically.  The behavior is also consistent
between browsers (i.e., FireFox, Chrome, and Windows Explorer).

I also did a $_SERVER variable dump immediately before and after the
'header(...' line, expecting to see a difference in at least one of the
'REDIRECT_*' elements, but both outputs where identical with the
exception that the $_SERVER ouput after the header statement was
executed was missing the following line:

      ["HTTP_CACHE_CONTROL"]=> "max-age=0"

It doesn't look relevant to me, but I include it to be thorough.

I looked through the PHP changelog pages, but I don't see mention of the
problem (of course, that might just be due to my ignorance).  The ISP
for the production version of PHP indicated that I should come here for
help, so here I am.

Can anyone shed some light as to what is (or might be) going on?

Any help or guidance that can be offered will be greatly appreciated.

Jonathan


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux