ID: 22427 Comment by: celtic at sairyx dot org Reported By: jroland at uow dot edu dot au Status: No Feedback Bug Type: *General Issues Operating System: Windows XP / 2000 PHP Version: 4.2.3 New Comment:
I'm experiencing the same problem. Server's running Apache 2 on a Windows Server 2003 machine. IE 6.0, Windows XP SP 2, and about 90% of the time, POST data never reaches my PHP script. Firefox 1.5 in the same conditions, and it runs perfectly. It does seem suspiciously like an IE bug, but this seems too big to be a coincidence that IE never sends POST data to only these PHP applications. Previous Comments: ------------------------------------------------------------------------ [2006-10-18 08:15:50] thisisrobg at gmail dot com Not sure if it exactly the same problem but POST related. - PHP5.2.0RC6-dev - Apache 2.2.3 - IE6 Code <form name="processing" method="POST" action="sqlprocess.php"> SQL : <input type="text" name="sqlstring" /><br> SQL2 : <input type="text" name="sqlstring2" /><br> SQL3 : <input type="text" name="sqlstring3" /> <input type="submit" value="SUBMIT"/> </form> /*sqlprocess.php */ $query = $_REQUEST["sqlstring"]; $query2 = $_REQUEST["sqlstring2"]; $query3 = $_REQUEST["sqlstring3"]; print "Query: " . $query . "<br>"; print "Query2: " . $query2 . "<br>"; print "Query3: " . $query3 . "<br>"; --------- Problem: None of the field show up when request. Experiments 1. Change form method to GET and it work perfectly. 2. Add/Remove fields make no different, still get nothing. 3. Change $_REQUEST to $_POST or $HTTP_POST_VARS make no different, still get nothing. 4. Change browser to Firefox 2.0b1 and it works fine. 5. Change browser to Opera 9.01 builds 8552 and it works fine. Expecting the problem to be incompatibility between PHP5.2 and IE6. I was using PHP5.1.6 and IIS and POST method works. ------------------------------------------------------------------------ [2006-10-07 04:29:05] zero at tilt dot eu dot org Same prob, PHP5 in cgi, Apache and env REQUEST_METHOD is POST, there is a content length, but $_POST is empty... This is not a prob with my browser. Tested with Opera 9 and Firefox 1.5. And oh, no prob with an other server :/ Weird. ------------------------------------------------------------------------ [2006-09-14 13:06:50] emil dot hall at gamereactor dot se We must be talking about several different bugs here. But the bug where some fields are missing from $_POST is NOT a PHP bug, it's all Internet Explorer's fault. This HTML reproduces the bug in IE6: <form method="post" action="whatever" enctype="multipart/form-data"> <input type="text" name="field1" value="1"> <input type="text" name="field2" value="2 "> <input type="checkbox" name="field3" value="3"> <input type="submit"> </form> The weird character in the second input field will mess up IE's submit. Characters that confuse IE include: three-dots-as-one-char aka chr(133) the long dash aka chr(150) and the double quotation mark aka chr(147) All very common when you copy&paste from MS Word, just like Egil said. A packet sniffer reveals the broken POST request: (some irrelevant headers have been removed) POST /whatever HTTP/1.1 Content-Type: multipart/form-data; boundary=---------------7d6399243401fe field1" 1 ---------------7d6399243401fe Content-Disposition: form-data; name="field2" 2. ---------------7d6399243401fe-- Submit the same form with Firefox and the difference is obvious: POST /whatever HTTP/1.1 Content-Type: multipart/form-data; boundary=------------------41184676334 ------------------41184676334 Content-Disposition: form-data; name="field1" 1 ------------------41184676334 Content-Disposition: form-data; name="field2" 2. ------------------41184676334-- ------------------------------------------------------------------------ [2006-08-29 18:16:32] egil at egil dot net Sorry for flooding this one, but I have noticed something else that I think is important here. I am not always getting this bug with IE6 either, it depends on the text I submit into one of my textarea or text fields. If one of them containts a double quotation mark of the type you get if you press shift-2 within Word (not the standard double quotation mark, which works fine) and copy/paste the text into a textarea or textfield. Please contact me if you need a better explaination and/or testdata. ------------------------------------------------------------------------ [2006-08-29 18:04:31] egil at egil dot net Forgot to mention that I am having this problem with PHP 5.1.4 running on FreeBSD and Apache 1.3.34. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/22427 -- Edit this bug report at http://bugs.php.net/?id=22427&edit=1