Alle GET- oder POST-Variablen mit PHP empfangen und sichern

Im Programmieralltag mit PHP bekommt man es sehr oft mit GET- oder POST-Variablen zu tun. Diese bringen Interaktivität auf die Webseite und ermöglichen dem Benutzer, mit dem Script zu kommunizieren.

Natürlich ist es für PHP-Programmierer deshalb sehr wichtig, gut mit diesen Variablen umgehen zu können. Dazu gehört natürlich ein richtiges Verständnis ihrer Funktionsweise, das Wissen wie man sie absichert, aber natürlich auch die Möglichkeit, sich durch Funktionen das Leben zu erleichtern um dadurch Quellcode zu sparen.

Jeder wird die folgenden Zeichen Quellcode kennen:

Wir empfangen hier fünf POST-Variablen, die z.B. durch ein Formular auf der vorherigen Webseite abgeschickt wurden. Es könnte sich etwa um ein einfaches Bestellformular mit den Feldern Vorname, Nachname, Adresse, Email & Nachricht handeln.

Jede einzelne POST-Variable wird separat empfangen und in einer eigenen Variable des Scripts gespeichert. Dies bietet den Vorteil, dass man die Variable durch bestimmte Funktionen absichern kann. Dabei kann es sich natürlich um Eigenkonstruktionen oder native PHP-Funktionen handeln. Ich meinem Beispiel verwende ich letzteres, nämlich  mysql_real_escape_string.

Natürlich funktioniert dieses Methode, verfügt aber – wie so oft – über Optimierungspotential. Wäre es nicht schön, wenn wir das empfangen und sichern der POST- und GET-Variablen automatisieren könnten?

Funktion um Variablen automatisch zu verarbeiten

Herrlich simpel, oder etwa nicht? Wir rufen nur eine einzige Funktion auf, welche uns unsere Variablen absichert, speichert und in einem Array zurückliefert.

Natürlich möchte ich euch die passende vars()-Funktion nicht vorenthalten:

  • Zeile 2: Hier kann man der Funktion übergeben, welche Variablen alle empfangen werden sollen. Entweder GET, POST oder REQUEST. Bei REQUEST werden sowohl POST- als auch GET-Variablen empfangen. Doch Vorsicht, je nach php.ini-Einstellung werden bei der Verwendung von REQUEST auch Cookies übernommen. Möchte man trotzdem alle REQUEST-Variablen empfangen, kann man die Funktion auch bequem per vars() aufrufen.
  • Zeile 4-9: Je nach gewähltem Variablen-Typ werden entweder alle REQUEST-, POST- oder GET-Variablen empfangen und im Array ay gespeichert.
  • Zeile 12-13: Mittels einer foreach()-Schleife durchlaufen wir den gesamten Array und somit alle empfangenen Variablen. Sowohl Key als auch Array-Value werden mit der Funktion sicher() aufgerufen. Weiter unten findet ihr ein Beispiel, wie diese Funktion aussehen könnte.
  • Zeile 15: Der abgesicherte Array mit POST- und/oder GET-Variablen wird zurückgeliefert. Wenn man die Funktion beispielsweise mit $v = vars() aufruft, wird $v zum entsprechenden Array.

PHP-Funktion zur Sicherung von empfangenen Variablen

Zum Abschluss dieses Tipps noch schnell die versprochene Funktion zur Absicherung der Variablen. Natürlich sollte man sich genau überlegen, was man absichern möchte und im Zweifelsfall einzelne Variablen nochmals mit einer weiteren Funktion absichern. Im Endeffekt ist es auch immer von Projekt zu Projekt verschieden – so zumindest bei mir.


Deprecated: Directive 'allow_url_include' is deprecated in Unknown on line 0