• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

$_POST Array bereinigender Weise durchlaufen

pee

New member
Hallo,

wenn ich ein Post-Array folgendermaßen durchlaufe:

PHP:
foreach($_POST as $_POSTS) {

   mysql_real_escape_string($_POSTS);

}

Habe ich dann das Array $_POST escaped bzw. bereinigt, oder nur $_POSTS? Grund ist ein Absenden der Array-Werte per E-Mail mit dem PHP-Mailer Skript.

Bedanke mich im Voraus für die Antworten.
 
mysql_real_... liefert den den bereinigten String zurück. Der Eingabeparameter wird nicht geändert (wie in nahzu jeder PHP-Funktion).
Bei der foreach schleife gilt zu dem zu beachten das der Wert des aktuellen Eintrages kopiert wird. Ein Änderung dieses Wertes bewirkt keine Änderung des Eintrags im Array. Wenn du das erreichen willst musst du refernzieren (&)

siehe auch hier_:
http://de2.php.net/manual/de/control-structures.foreach.php
 
Wenn ich bereinigte Variablen weiterverarbeiten will, muss ich also folgendermaßen vorgehen:

Code:
foreach ($unbereinigt as &$bereinigt) {
    echo $bereinigt;
}

Und was hat MySQL mit einer Mail zu tun?

Stimmts?

Welche Funktion sollte ich anwenden, wenn ich außerhalb einer MySQL-Abfrage vom Besucher eingegebene Werte bereinigen will?
 
Am besten arbeitest du mit Prepared Statements (mysqli). Ansonsten ist mysql_real_escaped... schon die Richtige.
 
Zurück
Oben