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:
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>
Previous Comments:
------------------------------------------------------------------------
[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?
------------------------------------------------------------------------
[2001-11-06 09:17:23] markm@sprintout.com
I'm experiencing a strange problem with HTML entities in form input using PHP v. 4.0.4pl1 on
Apache v. 1.3.17.
My form consists of three fields:
A "select" pulldown menu to enable users to select an existing record (field name:
"InfoID");
A text field in which users enter a headline (field name: "InfoTitle");
A textarea field in which users enter text (field name: "InfoText").
The input from the form is saved in a MySQL database (v. 3.23.33). Everything was working fine until
I started adding HTML entities (e.g., ™, •, etc.) to represent the trademark
symbol, bullets, etc. in the textarea field. I'm able to add a record to the database with HTML
entities. However, when I retrieve an existing record, make modifications in the textarea field, and
submit the input, the "selected" value from the pulldown menu is somehow lost.
When I say "lost", I mean that the key for the pulldown input field is actually missing
when I print out $HTTP_POST_VARS (through the print_r function) at the top of the script. If there
are no HTML entities in the textarea field, the value for the pulldown menu shows up and everything
works fine.
I can't figure out the source of the problem. The encoding type within the <form> tag is
standard:
enctype="multipart/form-data". I'm not altering the input from the pulldown input
field before submittal.
Even odder, the same form works fine with HTML entities on older versions of PHP.
Any ideas what's going on?
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=13953&edit=1
Thread (8 messages)