Sonderzeichen in MySQL

Timosaurier

Aktives Mitglied
Thread Starter
Mitglied seit
18.02.2005
Beiträge
1.533
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...
 

belomat

Neues Mitglied
Mitglied seit
02.06.2005
Beiträge
46
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

Timosaurier

Aktives Mitglied
Thread Starter
Mitglied seit
18.02.2005
Beiträge
1.533
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:

Pinacolada

Mitglied
Mitglied seit
26.04.2005
Beiträge
442
1. Schalte in der php.ini die MagicQuotes aus.
2. Benutzer überall, wo du es brauchst (Achtung: Du brauchst es wahrscheinlich fast immer!) addslashes.
 

Jakob

Aktives Mitglied
Mitglied seit
05.01.2004
Beiträge
1.070
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.
 

Ähnliche Themen

Oben