Sven Rautenberg: bestimmte Variablen übernehmen

Beitrag lesen

Moin!

if(count($_POST) > 0)
foreach($_POST as $key => $value)
$$key = $value;

Damit werden ja alle Variablen übernommen, die "gepostet" werden. Wie werden aber nur bestimmte Variablen übernommen?

Warum willst du die Variablen denn nochmal extra "übernehmen"? Es existiert doch der Hash $_POST genau deshalb, daß man direkt auf ihn zugreift.

Im übrigen ist der Code oben ziemlich gefährlich. Er reproduziert das Problem, weswegen PHP von vielen Leuten recht kritisch gesehen wird: Man kann durch schlichte Übergabe eines "name=wert" (entweder in der URL-Zeile, oder als POST-Formular) beliebige Variablen erzeugen und mit Werten vorbelegen. Wenn das Script dann zufällig diese Variablen verwendet und nicht sicher dafür sorgt, daß Anfangswerte zugewiesen werden, hat man eine ziemliche Sicherheitslücke.

Wenn du Werte aus dem POST-Formular weiterverarbeiten willst, mach das im Direktzugriff. Wenn beispielsweise ein Textfeld "nachname" drin ist:

echo "Sie heißen ".$_POST['nachname'];

Mit dem Befehl var_dump($_POST); kannst du dir auflisten lassen, welcher Inhalt vom Formular gesendet wurde, falls irgendetwas mal unklar ist oder nicht so funktioniert. var_dump() funktioniert für alle Variablen, die PHP kennt.

- Sven Rautenberg