ID:               22427
 Comment by:       elio at tondo dot it
 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 am experiencing the same problem reported on 29 Aug 2006 by "egil at
egil dot net". I can add some more details:

- I confirm that it happens only with IE;
- it is triggered when a character between 0x80 and 0x9f is used in a
form field (e.g. the "Word" quotation marks, but also the Euro symbol)
-- please note that these are the transposition in the "high half" part
of extended ASCII of the 32 "control characters" of ASCII (0x00 -
0x1f);
- it has some relationship with character encoding;
- I can reproduce it on Linux with Apache 2 on Fedora 4 - 6 if I don't
force "AddDefaultCharset UTF-8" in httpd.conf (the default in Fedora);
with this directive the problem dies not happen, but the "strange"
characters are interpreted incorrectly (because the file is not UTF8);
- I cannot reproduce it on Linux Mandrake 10 / Apache 2;
- I cannot reproduce it on Windows XP / XAMPP (Apache 2).

A further interesting detail: it happens only if the file containing
the form has the .php extension; if it has the .htm extension it does
not happen! (please note that I am using plain HTML for the form and
some PHP to show the results).

>From all of the above, it looks like it is not a PHP bug, but instead a
IE6 bug that is triggered by some combination of MIME types and
character encodings.

I am going to prepare a simpler test case (I am currently using a
rather complicated page with a multi part form that I extracted from an
application that was working on Mandrake and ceased to work on Fedora,
and worked again by adding a dummy hidden field as the first one in the
form...). When it will be ready I will post it here.

In the meantime, does anyone know if a similar problem has been
reported elsewhere?


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

[2007-02-19 15:27:27] arek_felinczak at o2 dot pl

I had the same problem with empty $_POST table.
In my case solution was to remove post_max_size line from php.ini.
In php.ini i had 
post_max_size = 16000
instead of default post_max_size = 8M

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

[2006-12-07 22:30:59] celtic at sairyx dot org

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.

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

[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--

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

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

Reply via email to