Sonderzeichen in MySQL

T

Timosaurier

Aktives Mitglied
Thread Starter
Dabei seit
18.02.2005
Beiträge
1.532
Reaktionspunkte
29
Servus...

Ich habe hier ein cms gebastelt, kann also über einen Browser neue News auf die Website schalten (einfach über html Input-Textfeld und so). Funktioniert auch soweit 1A.

Dahinter steht eine MySQL-Datenbank (PHPmyAdmin).

Das Problem:
Wenn ich in meinem cms Sonderzeichen eingebe (z.B. "gack"), dann werden diese mit einem Backslash in die Datenbank geschrieben (sieht dann so aus: \"gack\").

Wenn ich diese Schrägstriche dann direkt in MySQL wieder rausnehme, dann wird's auch richtig übernommen.
Der Fehler liegt also zwischen cms und Datenbank. Aber ich weiss nicht, wo.

Gibt's da irgendeinen Trick ? Bin auch noch nicht so fit mit Mysql, etc...
 
Das ist kein Fehler in Deinem Code, sondern ein Sicherheits-Feature von PHP und nennt sich Magic Quotes. Mit stripslashes kannst du Backslashes bei der Ausgabe wieder entfernen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Timosaurier
Werd ich mir mal anschauen, sieht ziemlich kompliziert aus. Aber schön, dass es eine Lösung gibt! Danke!

Edit:
Also, hab mir das durchgelesen, und verstehe....gar nichts.
Hab leider gar keine Ahnung, was ich nun mit den Informationen anfange, die dort stehen.
 
Zuletzt bearbeitet:
1. Schalte in der php.ini die MagicQuotes aus.
2. Benutzer überall, wo du es brauchst (Achtung: Du brauchst es wahrscheinlich fast immer!) addslashes.
 
Besser als addslashes für mysql-Queries ist mysql_real_escape_string. Falls Du die Magic Quotes nicht ausstellen kannst musst Du vorher ein stripslashes() ausführen, sonst wird zweimal escaped.
 
Zurück
Oben Unten