, um zu verhindern, dass die Datenbank den Anführungszeichen einen Schrägstrich hinzufügt

7

Ich weiß, das hört sich wirklich normal und so trivial an, aber ich habe hier eine Herausforderung. Ich habe eine Website mit Zend / Doctrine und ich benutze ckeditor für das Backend-Management. Nach dem Hochladen der Website habe ich festgestellt, dass das Aussehen und Verhalten der Website während des Bearbeitungstests durcheinander gebracht wird.

Mit Hilfe von Firebug habe ich gesehen, dass es überall im HTML-Code Schrägstriche gibt. Nach der Inline-Edition wurde das Erscheinungsbild wieder normal. Es gibt so viele Dateien, ich kann nicht daran denken, eine andere Dekodierung durchzuführen, bevor ich Daten von mysql ausgibt.

Welche Möglichkeiten muss ich haben, um dieses Problem zu lösen? Die Seite ist schon fertig und ich fühle mich ein bisschen unwohl dabei. Kann jemand einen Hinweis geben? Danke

    
black sensei 20.06.2012, 01:12
quelle

5 Antworten

4

Ich danke jedem für die Hilfe. Wirklich die akzeptierte Lösung sollte die von @Stanislav Palatnik sein. nur dass es mit meinem .htaccess nicht funktioniert hat. der hosting-server war nett genug, um eine php.ini in meine public_html zu legen, damit ich sie ändern konnte. Also +1 zu @Stanislav Palatnik, weil er auf das Problem hingewiesen hat. Ich fand auch interessante Informationen, von denen ich dachte, dass ich sie teilen würde, falls sich jemand in meiner Situation wiederfindet.

%Vor%

auf der gleichen Seite jemand sagte, es sollte nicht nur magic_quotes_gpc sein, sondern auch andere wie unten gezeigt:

%Vor%

Ich hoffe, das hat jemandem geholfen. Besonderer Dank an @Stanislav Palatnik

    
black sensei 21.06.2012, 09:27
quelle
9

Es könnte magic_quotes_gpc sein. Können Sie überprüfen, ob es ausgeschaltet ist?

Hier ist eine Möglichkeit, es auszuschalten: Ссылка

  

Legt den magic_quotes-Status für GPC-Operationen (Get / Post / Cookie) fest. Wenn "magic_quotes" aktiviert ist, werden alle "(einfache Anführungszeichen)", (doppelte Anführungszeichen), \ (Backslash) und NULs automatisch mit einem umgekehrten Schrägstrich versehen.

Verwenden Sie auch vorbereitete Aussagen? PHP PDO / MySQLI wird automatisch für Sie entfliehen. Hängt von der Art der verwendeten Abfragen ab.

    
Stanislav Palatnik 20.06.2012 01:17
quelle
5

Es sieht so aus, als ob Ihre Daten doppelt gemerkt werden, bevor sie in Ihre Datenbank eingefügt werden. Verwenden Sie mysql_real_escape_string oder addslashes , bevor Sie Daten in die Datenbank einfügen? Wenn ja, möchten Sie möglicherweise stripslashes verwenden, bevor Sie Ihre Daten wie folgt einfügen:

%Vor%

Oder Sie könnten theoretisch Stripeslashs aufrufen, nachdem Sie die Daten aus der Datenbank genommen haben:

%Vor%

Der zweite Ansatz ist jedoch weniger wünschenswert. Es wäre besser, die Daten ordnungsgemäß in der Datenbank gespeichert zu haben.

    
Michael Frederick 20.06.2012 01:27
quelle
2

Falls dies ein Problem mit magischen Zitaten ist und ich mich erinnere, dass Sie nur Zugriff auf Ihre application.ini haben, können Sie Folgendes hinzufügen und es ausprobieren

%Vor%

Dies erfordert immer noch, dass Ihr Benutzer / Ihre Benutzergruppe die Standard-PHP-Einstellungen ändern darf;)

    
Sam 20.06.2012 05:11
quelle
0
%Vor%

füge dies deiner php-Seite hinzu, die eine insert / update-Abfrage hat:)

    
yash 13.06.2015 07:11
quelle