SELFPHP

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


Datenbehandlung


Im folgenden Abschnitt finden sich Optionen zur Steuerung von Einzelheiten der Verarbeitung von ankommenden Daten aus GET/POST und COOKIE-Request sowie der Behandlung von Sonderzeichensymbolen.

Zwei für das Verhalten von PHP wichtige Einstellungen aus dieser Gruppe betreffen die Schalter magic_quotes_gpc und magic_quotes_runtime.

Mit magic_quotes_gpc wird festgelegt, ob PHP mit Zeichenfolgen, die es aus Formularen mittels GET/POST oder über Cookies erhält, ein automatisches Escaping von string-terminierenden Sonderzeichen durchführt oder nicht. Dies wird wichtig, wenn Zeichenfolgen in Datenbankfelder geschrieben oder aus Datenbankfeldern gelesen werden sollen.

Wenn Sie beispielsweise die Zeichenfolge »PHP's Entwicklerteam« ohne weitere Sonderbehandlung einem MySQL-Datenbankfeld übergeben, interpretiert MySQL das Sonderzeichen ' als Ende des übergebenden Strings und die nachfolgenden Zeichen als fehlerhafte SQL-Kommandos, was in Folge zu einem Laufzeitfehler führt.

Um dies zu vermeiden, müssen Zeichenfolgen, die Sonderzeichen enthalten, die als normale Zeichen behandelt werden sollen, in der Form bereinigt werden, dass vor das entsprechende Sonderzeichen ein Backslash (\) gesetzt wird. Dieser Vorgang wird auch als Escaping bezeichnet. Hierzu steht in PHP die Funktion addslashes() zur Verfügung.

Wurde nun der Schalter magic_quotes_gpc auf ON gesetzt, wird das manuelle Escaping überflüssig, da dies dann von PHP automatisch übernommen wird.

Der Schalter magic_quotes_runtime betrifft dasselbe Thema, mit dem Unterschied, dass es dabei um das automatische Escaping von Daten geht, die aus externen Datenquellen, z. B. Dateien oder Datenbanken, gelesen werden.

OptionBedeutung
gpc_order = "GPC "Reihenfolge der Auswertung von GET/POST/COOKIE-Requests. Die Standardeinstellung: POST-Variablen haben Vorrang vor GET-Variablen, COOKIE-Variablen haben Vorrang vor POST- und GET-Variablen.
gpc_globals = OnFalls aktiviert, können GET/POST/COOKIE-Variablen global verwendet werden. Wenn die Option deaktiviert ist (Off), kann auf GPC-Variablen über die Umgebungsvariablen $HTTP_GET_VARS[], $HTTP_POST_VARS[] und $HTTP_COOKIE_VARS[] zugegriffen werden, falls die nachstehende Option track_vars aktiviert ist.
track_vars = OnFalls aktiviert, werden die Umgebungsvariablen $HTTP_GET_VARS[], $HTTP_POST_VARS[] und $HTTP_COOKIE_VARS[] verwendet.
magic_quotes_gpc = OnFalls aktiviert, werden ankommende Daten aus GET/POST/COOKIE-Requests mit einem Backslash (\) versehen.
magic_quotes_runtime = OffWie oben, jedoch für Daten, die zur Laufzeit aus externen Datenquellen generiert werden, beispielsweise aus Datenbanken und Dateien.
magic_quotes_sybase = OffFalls aktiviert, werden Sonderzeichensymbole im Sybase-Stil, einfache Anführungszeichen (') anstatt doppelten Anführungszeichen ("), verwendet.
auto_prepend_file =php3- oder HTML-Datei, die automatisch vor dem auszuführenden PHP-Skript hinzugefügt wird.
auto_append_file =php3- oder HTML-Datei, die automatisch vor dem auszuführenden PHP-Skript angefügt wird.