Req #42960 [Com]: PHP messes up image submit button data
| From: | ddpm at liscovius dot de | Date: | Mon, 13 Sep 2021 14:04:24 +0000 |
| Subject: | Req #42960 [Com]: PHP messes up image submit button data | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-236565@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=42960&edit=1
ID: 42960
Comment by: ddpm at liscovius dot de
Reported by: efbiaiinzinz at hotmail dot com
Summary: PHP messes up image submit button data
Status: Open
Type: Feature/Change Request
Package: *General Issues
Operating System: *
PHP Version: 5.2.4
Block user comment: N
Private report: N
New Comment:
<div style="display:flex;gap:1em;">
<div>With GET using name[key]:
<form action="" method="GET">
<input type="image" name="smth[imgsubmitget]" alt="imgclick coords using
get" src="t.jpg" width="200" height="200"></form>
</div>
<div>With GET using name[key][]:
<form action="" method="GET">
<input type="image" name="smth[imgsubmitpost][]" alt="imgclick coords
using get (ok)" src="t.jpg" width="200"
height="200"></form>
</div>
<div>With POST using name[key]:
<form action="<?= basename(__FILE__) ?>" method="POST">
<input type="image" name="smth[imgsubmitpost]" alt="imgclick coords
using post" src="t.jpg" width="200" height="200"></form>
</div>
<div>With POST using name[key][]:
<form action="<?= basename(__FILE__) ?>" method="POST">
<input type="image" name="smth[imgsubmitpost][]" alt="imgclick coords
using post (ok)" src="t.jpg" width="200"
height="200"></form>
</div>
</div>
<pre>
$_POST: <?php print_r($_POST); ?>
$_GET: <?php print_r($_GET);?>
$_REQUEST: <?php print_r($_REQUEST);?>
</pre>
name[key]: browser sends get data:
testinputimage.php?smth[imgsubmitget].x=175&smth[imgsubmitget].y=177
name[key][]:browser sends get data:
testinputimage.php?smth[imgsubmitpost][].x=65&smth[imgsubmitpost][].y=114
Browser send postdata: smth%5Bimgsubmitpost%5D.x=93&smth%5Bimgsubmitpost%5D.y=88
Previous Comments:
------------------------------------------------------------------------
[2007-10-15 09:53:07] jani@php.net
Reopened. This is valid issue. Just not a bug but feature/change request.
------------------------------------------------------------------------
[2007-10-14 12:13:56] bjori@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
See bug#42162
------------------------------------------------------------------------
[2007-10-14 10:56:53] efbiaiinzinz at hotmail dot com
Description:
------------
PHP messes up coordinates for <input type="image" .. fields when fieldname is not
simple one level name but multilevel name.
For example name="smth[field]" is easy way to test it
Reproduce code:
---------------
<form action="" method="GET"><input type="image"
name="smth[imgsubmit]" src="t.jpg" width="200"
height="200"></form>
<?php
print_r($_POST);
?>
Expected result:
----------------
Since single level image submits end up in post and get arrays as
fieldname_x and fieldname_y I would expect above code to produce GET array as such:
Array ( [smth] => Array ( [imgsubmit_y] => 80, [imgsubmit_x] => 80 ) )
or even better would be actually
Array ( [smth] => Array ( [imgsubmit] => Array([x] => 80, [y] => 80) ) )
but it woul be a breaking change when changed to that and would be inconsistent with single level
fields, but also it would be much clearer and would not prohibit me from having <input
type="image" name="someimage" src="..."> and <input
type="hidden" name="someimage_x" value="previousvalue"> fields on
same form at the same time
Actual result:
--------------
Array ( [smth] => Array ( [imgsubmit] => 80 ) )
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=42960&edit=1