ID: 41349
User updated by: php at bitrockers dot de
Reported By: php at bitrockers dot de
Status: Open
Bug Type: HTTP related
Operating System: Linux Debian Etch
PHP Version: 5.2.2
New Comment:
Could it be a problem that the POST request comes as "post". Here an
excerpt of our logfile:
Customers (not working) request:
"post /ajax/mypageProfileEdit/? HTTP/1.1" 200 99
"application/x-www-form-urlencoded; charset=utf-8" "148"
Request (my IE6, working):
"POST /ajax/mypageProfileEdit/? HTTP/1.1" 200 123
"application/x-www-form-urlencoded; charset=utf-8" "148"
Does it make a difference for PHP if the POST request is lowercase?
Apache doesn't seem to have a problem with that. I don't know why the
customers IE6 sends XmlHttpRequest as lowercase "post"?
Previous Comments:
------------------------------------------------------------------------
[2007-05-10 15:28:45] php at bitrockers dot de
(damn, destroyed the Summary) :)
------------------------------------------------------------------------
[2007-05-10 15:27:13] php at bitrockers dot de
I've actually activated the logging of Content-Type and Content-Length.
Now I have to ask the customers, which are having the problems, to try
again.
As soon as I get the response, I will post the Content-Type of their
requests.
------------------------------------------------------------------------
[2007-05-10 15:07:19] php at bitrockers dot de
The Content-Type is
"application/x-www-form-urlencoded; charset=utf-8"
At least that is the content-type from what I see when I do the request
in my browsers. Due to the fact that this problem occurs only at a few
IE6 installations I'm not absolutely sure that there is something on the
client-side which in some way "modifies" that header before sending it
to our server.
Is there a way to log the Content-Type of the request in PHP or apache,
to make sure that this is not the problem?
------------------------------------------------------------------------
[2007-05-10 14:56:05] [EMAIL PROTECTED]
What is the content type of the request?
------------------------------------------------------------------------
[2007-05-10 11:41:28] php at bitrockers dot de
Description:
------------
Maybe this bug is related to Bugs 31417 and 41293. But I'm not sure,
because this bug occurs in 5.2.0 and 5.2.2.
The problem is:
When sending POST requests via the XmlHttpRequest active-x, on some IE6
installations this won't work properly. The POST request is successfully
sent to our webserver, and the raw http post data is filled correctly,
but the $_POST array is not filled with any information.
I can only guess that the error has something to do with some special
headers/encoding (Content-Length?) which is done by the
XmlHttpRequest-ActiveX on some IE6 installations.
And: Yes, I know that it's hard to find the reason for this behaviour.
And it's not easy to reproduce this bug ( because on most IE6
installations everything works fine).
But I guess it's worth to take a look at the php-source, so that
someone may get an idea which could cause this bug.
I'm trying to help you as much as possible. Unfortunately I cannot
reproduce the error by myself, so I have to ask the affected customers
each time we 'possibly' fixed the bug.
There must be a bug in php, because the raw-http request is filled
correctly (and we don't touch the $_POST var anywhere else in our code).
Reproduce code:
---------------
var_export($_POST);
$rawPost = file_get_contents('php://input');
echo "\n$rawPost";
Expected result:
----------------
array('postVar1' => 'postValue1',
'postVar2' => 'postValue2')
postVar1=postValue1&postVar2=postValue2
Actual result:
--------------
array()
postVar1=postValue1&postVar2=postValue2
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41349&edit=1