echo $begrüßung;
Wie kann ich überprüfen, ob die Werte Zahlen sind? Wie meinst du das mit Durchlaufen?
Zum Prüfen auf Zahlen gibt es einige Funktionen:
Vorab: Alle Werte im $_POST- und $_GET-Array sind vom Typ String[*].
-
is_numeric()
Prüft ob der Inhalt irgendwie nach Zahl aussieht. Erkennt auch Zahlen mit Dezimalpunkt, Exponential- und Hex-Darstellung als gültig an, und das will man oftmals nicht. -
is_int()
Prüft ob der Typ einer Variablen Integer ist. Strings sind keine Integer-Typen, man benötigt einen Typecast, und dann braucht man auch is_int() nicht mehr, weil der Typecast garantiert den Ziel-Typ zurückliefert. -
ctype_digit()
Die ctype-Funktionen sind gelegentlich nicht installiert. Vor Verwendung phpinfo() befragen. -
intval()
Macht aus dem übergebenen Wert garantiert einen Integer. Zur Not erhält man 0.
Und dann gibt es noch die Filter Functions. Die benötigen aber eine recht aktuelle Installation. (Und uneingeschränkt empfehlenswert sind sie leider vom Ansatz her nicht. Siehe letzter Abschnitt: http://www.php-security.org/MOPB/PMOPB-45-2007.html)
Diese Funktionen musst du nun über deine Werte laufenlassen. Nein, nicht alle auf einmal. Such dir diejenige aus, die dir am geeignetsten erscheint.
Ein intval() macht ungültige Werte unschädlich, IDs mit dem Wert 0 sollte es nicht geben, für übergebene ungültige Werte wird also kein unschuldiger Datensatz gelöscht. Das ist eine stillschweigende Methode, ungültige Werte zu ignorieren.
Auf ein negatives Ergebnis der Prüf-Funktionen kannst du auch aktiv reagieren und z.B. den Vorgang wegen Angriffsverdacht abbrechen.
[*] Die Ausnahme Array erwähne ich mal nicht, das verwirrt sonst noch. :-)
echo "$verabschiedung $name";