Req #42960 [Com]: PHP messes up image submit button data

From: Date: Mon, 13 Sep 2021 14:34:33 +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-236568@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: What the "living" standard says: https://html.spec.whatwg.org/multipage/input.html#image-button-state-(type=image) Previous Comments: ------------------------------------------------------------------------ [2021-09-13 14:06:16] ddpm at liscovius dot de My previous comment shows a better example to understand the issue. Using the extra [] seems to be ok as workaround? ------------------------------------------------------------------------ [2021-09-13 14:04:24] ddpm at liscovius dot de <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 ------------------------------------------------------------------------ [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

« previous php.bugs (#236568) next »