Rouven: register_globals - ich raffe das einfach nicht :(

Beitrag lesen

Morgen!

Also im Prinzip ist die ganze Sache nicht so wild. Früher, wenn du ein Formular mit einem Textfeld namens "meintext" abgeschickt hast, dann kam in deinem Zielskript immer eine Variable $meintext an. Leider haben die Leute Methoden gefunden damit Skripte zu manipulieren, hacken etc. - Beispiel?
Im Skript steht:
if ($passwort = passwort) { $login = true; }
if ($login) { echo "willkommen, sie sind drin"; }
Würde ich dieses Skript aber aufrufen 'skriptname.php?login=true' wär ich vermutlich drin...

Daher wurde beschlossen, Skriptvariablen und Formular-Variablen zu trennen. Wenn du register_globals auf OFF hast, dann kannst du nun die Variable $login benutzen, sie wird aber NIEMALS von einem Formular belegt, weder über die URL noch über ein POST.
Um aber eben diese beiden Quellen zu berücksichtigen, verwendet man die Superglobals $_GET (GET-Formulare und URL-Parameter) und $_POST (POST-Formulare).
$internevariable = $_GET['externevariable']
Um es am Beispiel von oben zu machen:
1. POST
<form method="post" action="myscript.php">
<input type="text" name="meintext">
</form>

--> myscript.php
$inhalt_des_textfeldes = $_POST['meintext'];

2. GET
<form method="post" action="myscript.php">
<input type="text" name="meintext">
</form>

--> myscript.php
$inhalt_des_textfeldes = $_GET['meintext'];

---------

Noch eine Anmerkung: Auch wenn es theoretisch möglich ist die Variable $meintext im myscript.php zu verwenden würde ich ernsthaft davon abraten. Kaum landest du mal auf einem Server der noch register_globals on hat hast du einen Fehler den du länger suchst - glaub mir, ich weiß das....

MfG
Rouven

--

-------------------
ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(