|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2008-12-03 21:54 UTC] david at sickmiller dot com
Description:
------------
When a form is submitted using multipart-/form-data enctype, PHP will truncate field names if they contain semicolons and certain other characters. It seems to happen when there is an uneven number of quotation marks that precede the semicolon.
Reproduce code:
---------------
<html><form action="semicolon.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="before ; after">
<input type="hidden" name="" before ; after">
<input type="hidden" name="' before ; after">
<input type="hidden" name="' ' before ; after">
<input type="hidden" name="' " before ; after">
<input type="hidden" name="" ' before ; after">
<input type="hidden" name="" " before ; after">
<input type="hidden" name="" ' ' before ; after">
<input type="hidden" name="" ' " before ; after">
<input type="hidden" name="" " ' before ; after">
<input type="hidden" name="" " " before ; after">
<input type="hidden" name="' ' ' before ; after">
<input type="hidden" name="' ' " before ; after">
<input type="hidden" name="' " ' before ; after">
<input type="hidden" name="' " " before ; after">
<input type="submit">
</form><pre><?php
print_r($_POST);
?></pre> </html>
Expected result:
----------------
Array
(
[before_;_after] =>
["_before_;_after] =>
['_before_;_after] =>
['_'_before_;_after] =>
['_"_before_;_after] =>
["_'_before_;_after] =>
["_"_before_;_after] =>
["_'_'_before_;_after] =>
["_'_"_before_;_after] =>
["_"_'_before_;_after] =>
["_"_"_before_;_after] =>
['_'_'_before_;_after] =>
['_'_"_before_;_after] =>
['_"_'_before_;_after] =>
['_"_"_before_;_after] =>
)
Actual result:
--------------
Array
(
[before_;_after] =>
["_before_] =>
['_before_;_after] =>
['_'_before_;_after] =>
['_"_before_] =>
["_'_before_;_after] =>
["_"_before_;_after] =>
["_'_'_before_] =>
["_'_"_before_;_after] =>
["_"_'_before_;_after] =>
["_"_"_before_] =>
['_'_'_before_;_after] =>
['_'_"_before_] =>
['_"_'_before_;_after] =>
['_"_"_before_;_after] =>
)
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Nov 21 20:00:01 2025 UTC |
Couldn't reproduce this on PHP 7.4. The result on PHP 7.4 ------------------------- Array ( [before_;_after] => [%22_before_;_after] => ['_before_;_after] => ['_'_before_;_after] => ['_%22_before_;_after] => [%22_'_before_;_after] => [%22_%22_before_;_after] => [%22_'_'_before_;_after] => [%22_'_%22_before_;_after] => [%22_%22_'_before_;_after] => [%22_%22_%22_before_;_after] => ['_'_'_before_;_after] => ['_'_%22_before_;_after] => ['_%22_'_before_;_after] => ['_%22_%22_before_;_after] => )