Bug #13953 Updated: HTML Entities and $HTTP_POST_VARS
ID: 13953
User updated by: markm@sprintout.com
Reported By: markm@sprintout.com
Status: Open
Bug Type: Arrays related
Operating System: Free BSD 4.2
PHP Version: 4.0.4pl1
New Comment:
I get the same output with both var_dump($HTTP_POST_VARS) and print_r($HTTP_POST_VARS):
"InfoID" is missing from $HTTP_POST_VARS when I submit the form. The strange thing about
this problem is that I can't reproduce it on earlier versions of PHP.
Perhaps, we should look at the broader question of how PHP deals with HTML entities.
I just placed the following text in the textarea box of the form:
This is a • test.
When the form is submitted, the script inserts the content into a "text" field in a MySQL
(v. 3.23.33) database. I checked the record through phpMyAdmin and found that the field held exactly
what I submitted. No surprises there.
However, when I updated the record, my line of text was changed to:
This is a • test.
In other words, the representation of the HTML entity was changed from • to •,
either by PHP or MySQL.
This transformation seems to be the source of my problems. Any ideas what's going on?
P.S. -- The MySQL gurus argue that this is a PHP problem.
Previous Comments:
------------------------------------------------------------------------
[2001-11-06 17:16:22] jeroen@php.net
With 4.0.3pl1, I cannot reproduce.
Use var_dump($HTTP_POST_VARS) to check out what vars are submitted and which are not. I get:
HTTP_POST_VARS:
array(4) {
["InfoID"]=>
string(2) "67"
["InfoTitle"]=>
string(8) "Product2"
["InfoText"]=>
string(196) "Blah blah blah blah? Blah blah blah
blah Blah blah blah blah.
Blah blah blah blah. Blah blah blah blah.
Blah blah blah blah®. Blah blah blah blah;"
["option"]=>
string(6) "Modify"
}
HTTP_GET_VARS:
array(1) {
["selection"]=>
string(11) "Description"
}
------------------------------------------------------------------------
[2001-11-06 16:43:22] markm@sprintout.com
Below is a stripped-down version of the form that causes the problems. Note that values have been
inserted into the form fields, including HTML entities in the "InfoText" field. When I
click the "Modify" button, "InfoID" does not show up in $HTTP_POST_VARS.
Thanks.
<html>
<head>
<title>Administration Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="index.html?selection=Description" method="post"
enctype="multipart/form-data">
<p>
<b>Select an Existing Product Description Title</b><br>
<SELECT NAME="InfoID">
<option value="0">Click On a Product Description</option>
<option value="63">Product1</option>
<option value="67" selected>Product2</option>
<option value="69">Product3</option>
<option value="55">Product4</option>
<option value="65">Product5</option>
</select>
<input type="submit" name="option" value="Find">
</p>
<p>
<b>Product Description Title/Headline</b><br>
<input type="text" name="InfoTitle" size="30"
maxlength="200" value="Product2">
</p>
<p>
<b>Product Description Text</b><br>
<textarea name="InfoText" cols="40" rows="10"
wrap="VIRTUAL">Blah blah blah blah? Blah blah blah
blah<sup>™</sup> Blah blah blah blah.
Blah blah blah blah<sup>™</sup>. Blah blah blah blah.
Blah blah blah blah<sup>®</sup>. Blah blah blah blah;</textarea>
</p>
<p>
<input type="submit" name="option"
value="Modify"><br><br>
<input type="submit" name="option"
value="Delete"><br><br>
<input type="submit" name="option" value="Clear">
</p>
</form>
</body>
</html>
------------------------------------------------------------------------
[2001-11-06 16:10:45] jeroen@php.net
Please submit the shortest reproducing script which does something strange. It's very hard to
track down the problem if you don't show us exactly what you did.
------------------------------------------------------------------------
[2001-11-06 13:30:29] markm@sprintout.com
Removing enctype="multipart/form-data" from the form tag does seem to solve the problem.
However, it creates another. I was planning to add a "file" input type field to the form
to enable users to upload images. To accomplish that, I'll need to include
enctype="multipart/form-data". What then? Also, I was hoping to get to the bottom of the
problem and figure out what's going on with HTML entities and form input. Thanks.
------------------------------------------------------------------------
[2001-11-06 10:29:25] sander@php.net
Why are you using multipart/formdata? That shouldn't be necessary. Try using a simple
<form> tag like <form action="script.php" method="post">.
Does it work this way?
------------------------------------------------------------------------
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/?id=13953
Edit this bug report at http://bugs.php.net/?id=13953&edit=1
Thread (8 messages)