Edit report at https://bugs.php.net/bug.php?id=61605&edit=1
ID: 61605
Comment by: reeze dot xia at gmail dot com
Reported by: david at grudl dot com
Summary: header_remove() does not remove all headers
Status: Open
Type: Bug
Package: HTTP related
PHP Version: 5.4.0
Block user comment: N
Private report: N
New Comment:
Hi,
after looking at the code,I found that SAPI it self did't handle multiple
headers properly, apache2handler handles it for itself. so apache2handler can
remove correctly.
SAPI headers are saved in zend_llist. when try to remove or replace it
simply
try to find the first one it found. I've looked at sapi/cli&cgi they both
didn't
handle it itself.
Sine header() doc says: "The optional replace parameter indicates whether
the
header should replace a previous similar header". but it did't behavior like
this.
So I made a patch for this. can someone review this pull request for me?
https://github.com/php/php-src/pull/36
thanks.
Previous Comments:
------------------------------------------------------------------------
[2012-04-03 12:08:52] david at grudl dot com
I am using cgi-fci. Now I found that it works correctly with apache2handler.
------------------------------------------------------------------------
[2012-04-03 02:29:33] [email protected]
Which SAPI are you using? CGI, FPM, Apache2 handler, Apache2 filter, something
else?
------------------------------------------------------------------------
[2012-04-02 23:20:14] david at grudl dot com
Description:
------------
header_remove($name) removes only one header $name. The function header()
behaves the same way and replaces only first header.
Test script:
---------------
header('A: first');
header('A: second', FALSE); // append
// removes only 'A: first' and header 'A: second' is sent
header_remove('A');
Expected result:
----------------
no 'A' header is sent
Actual result:
--------------
header A: second is sent
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=61605&edit=1