not parsing form data as multidimensional variables into $_POST
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
php5 (Ubuntu) |
Invalid
|
Medium
|
Unassigned |
Bug Description
I'm having trouble with form data getting into multidimensional data structures on the latest 12.4 beta. I also observe the same behavior on Suse Linux Enterprise, but not on CentOS. What am I missing?
I can define one explicitly, demonstrated with $test_array in the code examples below, however I can't get the post data to populate a similar structure.
The following basic form works as expected, with the input text data getting put into the variables text1 ... text4 in the $_POST array.
<?php
print_r($_POST);
$test_array = array ( 'test1' => array( 'test11' => 'test','test12' => 'test','test13' => array( 'test131' => 'test') ) );
print_r(
?>
<html>
<body>
<form action=
First Name: <input type="text" id="fname" name="text1"
<br/><br/>
Last name: <input type="text" id="lname" name="text2"
<br/><br/>
text3: <input type="text" id="fname" name="text3"
<br/><br/>
text4: <input type="text" id="lname" name="text4"
<br/>
<br/>
<input name="submit1" type="submit" value="
</form>
</body>
</html>
but this doens't seem to work properly. After I submit a filled form, the first piece of form data gets populated into the $_POST araray, but all the other ones are always missing. I know the data is getting submitted, because the variable $inputdata gets populated in the example below. Why isn't that input getting parsed into $_POST?
<?php
$inputdata = file_get_contents( 'php://input' );
print_r(
print_r($_POST);
$test_array = array ( 'test1' => array( 'test11' => 'test','test12' => 'test','test13' => array( 'test131' => 'test') ) );
print_r(
?>
<html>
<body>
<form action=
First Name: <input type="text" id="fname" name="text1[
<br/><br/>
Last name: <input type="text" id="lname" name="text1[
<br/><br/>
text3: <input type="text" id="fname" name="text1[
<br/><br/>
text4: <input type="text" id="lname" name="text1[
<br/>
<br/>
<input name="submit1" type="submit" value="
</form>
</body>
</html>
no longer affects: | php53 (Suse) |
I could not reproduce this on the latest 12.04 with PHP 5.3.10-1ubuntu3 using a basic libapache2-mod-php5 setup.
_POST comes out as
Array
[ text] => c
(
[text1] => Array
(
[fname] => a
[lname] => b
[text3] => Array
(
)
[text4] => Array
[ text] => d
(
)
)
[submit1] => submit
)
Given this script (combines the HTML with the result so you can keep trying values):
<html>
<body>
<?php
$inputdata = file_get_contents( 'php://input' ); $inputdata) ;
print_r(
echo '<pre>';
print_r($_POST);
echo '</pre>';
$test_array = array ( 'test1' => array( 'test11' => 'test','test12' => 'test','test13' => array( 'test131' => 'test') ) ); $test_array) ;
echo '<pre>';
var_export(
echo '</pre>';
?>
<form method="post">
First Name: <input type="text" id="fname" name="text1[ fname]" ></input> lname]" ></input>
<br/><br/>
Last name: <input type="text" id="lname" name="text1[
<br/><br/>
text3: <input type="text" id="fname" name="text1[ text3][ text]"> </input> text4][ text]"> </input>
<br/><br/>
text4: <input type="text" id="lname" name="text1[
<br/>
<br/> submit" ></input>
<input name="submit1" type="submit" value="
</form>
</body>
</html>