ID:               16458
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Closed
 Bug Type:         Output Control
 Operating System: Win32 (XP)
 PHP Version:      4.1.1
 New Comment:

If this bug doesn't exist with the Linux/Apache module it is ok for me
- if it is this doesn't "work for me" at all... Reason: my application
framework uses output buffering so headers don't get sent until
ob_end_flush() is called. Especially any caching headers are /modified/
depending on results of the application computations.

So it is not quite "easy" to "code around this 'bug'" - the caching
headers are pre-set as soon as a session is established, and are not
modifyable afterwards. In fact this 'bug' disables me to sent pages
being cacheable, increasing server load and network traffic. And, with
NetScape 4.x clients, pages resulting from posted forms cannot be
resized (NS 4.x wants to resend the POST data to redraw the
non-cacheable data).

Any idea when 4.2.0 will be out as production version?
On our production servers I cannot use an RC or -dev version, I need
the stable build, so I have 4.1.2/RedHat Linux running there (cannot
crosscheck the problem on the server just now).


Previous Comments:
------------------------------------------------------------------------

[2002-04-05 13:37:09] [EMAIL PROTECTED]

Reproduced with 4.1.2, but it works fine for me with 4.3.0-dev.
You might want to try 4.2.0RC2 from www.php.net/~derick .

Anyway, it should be easy to code around this 'bug'.

------------------------------------------------------------------------

[2002-04-05 13:29:24] [EMAIL PROTECTED]

>From the docs:
The optional "replace" parameter indicates whether the header should
replace a previous similar header, or add a second header of the same
type. By default it will replace, but if you pass in FALSE as the
second argument you can force multiple headers of the same type.

At least with PHP 4.1.1/Win32(XP), this is NOT true - headers are
always added up.

Using this little test:

<?php
header('X-Test-Header: Version 1');
header('X-Test-Header: Version 2');
?>

this output is created:

-------------------------------------
php headers.php
X-Powered-By: PHP/4.1.1
X-Test-Header: Version 1
X-Test-Header: Version 2
Content-type: text/html

-------------------------------------

According to the docs, only "Version 2" of the header should be sent.
The results are identical if you do not provide the "replace"
parameter, or if you set it to true or false.

This is a very annoying bug, and for my application I'd rate it
"critical".

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=16458&edit=1

Reply via email to