Extra Schrägstriche werden in PHP hinzugefügt
Frage
Mein beschissen Web-Host einige Upgrades haben den anderen Tag und einige Einstellungen haben schief gegangen, weil Blick auf unsere Gesellschaft Wiki (MediaWiki) wird jedes Zitat mit einem umgekehrten Schrägstrichen entkommen ist. Es ist nicht einmal nur Daten, die (dh: die Artikel) geschrieben wird, die betroffen sind, sondern auch der Standard-MediaWiki Text. zB:
Sie \ ‚einen Link zu einer Seite habe gefolgt, die doesn \‘ t noch nicht. Um die Seite zu erstellen, starten Sie in das Feld eingeben unten (siehe die Hilfeseite für weitere Informationen). Wenn Sie hier aus Versehen sind, klicken Sie einfach auf Ihren Browser \ 's \' \ '\' zurück \ '\' \‘Button.
Das erste, was ich tat, war disable magic_quotes_gpc
UND magic_quotes_runtime
eine .htaccess
Datei verwenden, aber dies ist immer noch auftritt. Mein php_info()
meldet dies:
Setting Local Value Master Value
magic_quotes_gpc Off On
magic_quotes_runtime Off On
magic_quotes_sybase Off Off
Irgendwelche Ideen?
Lösung
Wenn PHP-Flags gesetzt sind mit php_admin_flag
/ php_admin_value
, können Sie es nicht von einer .htaccess
Datei ändern. Dies hat vor mir einige Kopfschmerzen verursacht. Entweder deaktivieren Sie es in php.ini
oder rückgängig zu machen magic quotes in Laufzeit:
http://talks.php.net/show/php-best-practices/ 26
Andere Tipps
Sie mögen, um zu bestätigen, dass die Daten in Ihrer DB beschädigt nicht. Wenn Sie addslash () ing Ihre Daten, wenn ohne das Wissen Sie waren, hatte magic_quotes eingeschaltet, dann würden Sie doppelt slashifying Daten gehen in Ihrem DB sein.
Sie müssen, um sie den Master-Wert zu ändern, oder es selbst behandeln. Ich glaube nicht, dass Sie magic_quotes_gpc()
zur Laufzeit für Super Globals einstellen. (Zur Laufzeit Einstellung werden die Dinge wie Datenbank / Dateien abzustreifen, aber nicht die Globals)
if (ini_get('magic_quotes_gpc') ) {
foreach($_GET as $key=>$value) {
$_GET[$key] = stripslashes($value);
}
} // etc...
Vielleicht etwas anderes ruft set_magic_quotes_runtime ().
Ich benutze stripslases () Schrägstriche zu entfernen, wenn angezeigt wird.
Haben Sie versucht, Kontakt mit Ihrem beschissen Host und einen Fehlerprotokollierung? Du bist wahrscheinlich nicht der einzige betroffen, wenn Sie auf Shared-Hosting sind.