input-name - aus "." wird "_"
frankx
- html
Hellihello,
<form method="get">
<input type="text" name="abc.123">
<input type="submit">
</form>
<?=var_dump($_GET)?>
bringt
array(1) { ["abc_123"]=> string(0) "" }
^
^
Den kannt ich noch nicht, dass ein Punkt im Attribut name eines Inputfeldes nicht erlaubt ist bzw. dann gleich noch verwandelt wird. Kann mir jemand sagen, warum?
Dank und Gruß,
Moin!
<form method="get">
<input type="text" name="abc.123">
<input type="submit">
</form>
<?=var_dump($_GET)?>
>
> bringt
>
> array(1) { ["abc\_123"]=> string(0) "" }
> ^
> ^
> Den kannt ich noch nicht, dass ein Punkt im Attribut name eines Inputfeldes nicht erlaubt ist bzw. dann gleich noch verwandelt wird. Kann mir jemand sagen, warum?
Weil PHP das so macht. Andere Sprachen machen das nicht so.
Der Grund ist in der Vergangenheit zu suchen: Früher war $\_GET & Co nichtexistent, alle Formularfelder wurden direkt zu globalen Variablen. Punkte sind in PHP-Variablennamen aber nicht erlaubt.
Solange es in PHP noch möglich ist, register\_globals einzuschalten, wird der Punkt zwingend gewandelt. Ob in PHP 6 oder später damit aufgehört werden wird, weiß ich nicht.
Diese Wandlung gilt übrigens auch für die Koordinatenangaben eines Image-Buttons.
- Sven Rautenberg
Hellihello Sven,
merci für die Aufklärung!
Dank und Gruß,
Robert aka