Christian Seiler: register_globals off, Frage dazu

Beitrag lesen

Hallo Herbie,

Aber: In der PHP.ini-recommended (v4.3) steht, dass man $_REQUEST[bla] verwenden kann, oder eben konkreter $_POST[bla], $_GET[bla] und so weiter. Da $_REQUEST[bla] ja alles abdeckt, fragt man sich als Halblaie, wieso es eigentlich $_POST[bla] und so weiter auch noch gibt - das wird doch sicher einen Grund haben? Kennt den jemand?

Ganz einfach: Mit $_POST['bla'], $_GET['bla'] und $_COOKIE['bla'] weiß man _genau_, _woher_ eine Variable kommt. Ich habe noch nie $_REQUEST verwendet, weil es IMHO das Konzept von register_globals=off untergräbt.

<form action="test.php?posted=yes" method=POST>

so klappt es, aber mit if ($_POST[posted]) klappt es nicht. Verstehe ich nicht... die Methode des Formulars, das per submit loslegt ist doch POST?

Klar, aber in $_POST stehen nur diejenigen Parameter, die auch mit POST übermittelt wurden, posted=yes steht aber im Query-String und deswegen wird es von PHP als GET-Parameter angesehen. (Die Methode, mit der ein Formular abgeschickt worden ist, spielt nur für Variablen eine Rolle, die aus den Formularfeldern erzeugt werden - wenn Du bei einem POST-Formular noch weitere Parameter an die URL anhängst, dann werden sie halt als GET-Parameter gewertet, auch wenn das Formular mit POST abgeschickt wurde)

Wieso will die Abfrage dann $_REQUEST?

Weil sie auch in $_GET steht. Und $_REQUEST ist ja $_GET + $_POST + $_COOKIE.

Christian

--
Hast Du einen Beitrag? Nur her damit!
http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[