Passen Sie nicht beide Situationen an. Zwei Codepfade = doppelt so viele Kopfschmerzen, außerdem besteht eine gute Chance, dass du dich verplappern und vergessen wirst, mit beiden Situationen umzugehen.
Ich habe überprüft, ob magische Anführungszeichen ein- oder ausgeschaltet sind, und wenn sie aktiviert waren, mache ich ihre Magie rückgängig (wie andere im Thread vorgeschlagen haben). Das Problem dabei ist, dass Sie die konfigurierte Umgebung (egal wie dumm) ändern, die ein anderer Programmierer erwarten könnte.
Heutzutage schreibe ich Code, als ob magische Anführungszeichen ausgeschaltet sind, und in meiner Hauptdatei / bootstrap / always-runs überprüfe ich, ob magische Anführungszeichen ein- oder ausgeschaltet sind. Wenn sie eingeschaltet sind, erstelle ich eine Exception, die erklärt, warum dies eine schlechte Sache ist , und gebe Anweisungen, wie sie ausgeschaltet werden können.
Dieser Ansatz ermöglicht es Ihnen, zu einem einzigen Verhalten zu codieren, ermutigt andere Leute, Ihren Code zu verwenden, um ihre Server korrekt zu konfigurieren (magische Anführungsstriche verschwinden in PHP 6), und wenn jemand wirklich magische Anführungszeichen benötigt Sie können Ihre Ausnahme behandeln und ihr Leben selbst in die Hand nehmen.
Ich würde sicherstellen, dass es ausgeschaltet ist, wenn das möglich ist (erfordert Zugriff auf .htaccess oder Apache-Konfiguration). Es ist besser, es vollständig zu vermeiden, als das Verhalten zu entfernen, das mehr Ressourcen benötigt und anfällig für Fehler ist.
Wenn das Deaktivieren nicht möglich ist, könnte Ihr Beispielcode für die Eingabe-Superglobale nützlich sein ($ _GET, $ _ POST, ...). Achten Sie jedoch darauf, dass er nicht auf Daten angewendet wird, die von anderen Quellen als diesen Superglobalen kommen. Solcher Missbrauch ist ziemlich häufig .
Stellen Sie nur sicher, dass Sie beim Deaktivieren von magic_quotes_gpc () einen geeigneten Escaping-Mechanismus verwenden, um Sie vor SQL-Inkection zu schützen (z. B. mysql_real_escape_string () oder vorbereitete PDO-Anweisungen). Sie können mehr über SQL Injection Prevention lesen - hier .
Bei einer Seitennotiz werden sie von php 6 nicht mehr unterstützt. Das Schreiben des Codes für sie kann in der Zukunft von Vorteil sein.
Tags und Links php magic-quotes-gpc