SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=190&group=32
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Prüfen auf fehlende oder fehlerhafte Eingaben


Die Überprüfung von Formulareingaben ist in Hinblick auf die Sicherheit eines Skripts ein nicht zu unterschätzender Faktor.


Erkennen fehlender Eingaben

Die Länge einer Textfeldeingabe lässt sich mit der PHP-Funktion strlen() ermitteln. Leere Strings sind in PHP false, d. h., durch eine Überprüfung (if ($_REQUEST['textfeldname'])) lässt sich feststellen, ob der Anwender eine Eingabe gemacht hat.


Textfelder generell

Wenn ein Textfeld nur bestimmte Zeichen enthalten darf, ist es oft am einfachsten zu überprüfen, ob der übermittelte String Zeichen enthält, die nicht erlaubt sind.

if (preg_match('/[^0-9a-z_.-]/i', $_REQUEST['textfeldname'])) {
  echo "Ungültige Zeichen im Textfeld.";
}


Zahlenfelder

Um zu überprüfen, ob ein Textfeld eine Zahl enthält, eignet sich die Funktion is_numeric(). Diese Funktion akzeptiert allerdings auch Zeichen, die nicht Ziffern sind (z. B. -1.6e-12). Sollen nur Ziffern akzeptiert werden, helfen wieder reguläre Ausdrücke:

if (preg_match('/\D/', $_REQUEST['textfeldname']))
  echo "'Ungültige Zeichen im Zahlenfeld.";
}


URLs

Zum Überprüfen einer URL reicht es meist aus, deren Anfang zu analysieren:

if (! preg_match('=(https?|ftp)://[a-z0-9]([a-z0-9-]*[a-z0-9])?\.[a-z0-9]=i', $_REQUEST['textfeldname']))
  echo "Ungültige URL im Adressfeld.";
}

Diese Überprüfung soll nur ein Ansatz sein und lässt sich beliebig erweitern bzw. optimieren. Die tatsächliche Erreichbarkeit gewährleistet diese Vorgehensweise allerdings nicht. Mithilfe der Funktion fopen() lässt sich die momentane Erreichbarkeit einer URL feststellen.