Bug #13953 Updated: HTML Entities and $HTTP_POST_VARS

From: Date: Tue, 06 Nov 2001 22:16:22 +0000
Subject: Bug #13953 Updated: HTML Entities and $HTTP_POST_VARS
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-69727@lists.php.net to get a copy of this message
ID: 13953
Updated by: jeroen
Reported By: markm@sprintout.com
Status: Open
Bug Type: Arrays related
Operating System: Free BSD 4.2
PHP Version: 4.0.4pl1
New Comment:

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"
}




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

[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>
&nbsp;<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>&#8482;</sup> Blah blah blah blah.
Blah blah blah blah<sup>&#8482;</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?

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

[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., &#153;, &#149;, 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)

« previous php.dev (#69727) next »