Aus ' wird \'

Hallo Forum,

ich habe zurzeit ein Problemchen, nach dem hier sicher schon einmal gefragt wurde: In einem Formular können Benutzer Eingaben tätigen und absenden. Die Eingaben werden in einer DB gespeichert. Wird aus der DB der Datensatz abgerufen, so werden Anführungszeichen ("), die eigentlich gar nicht eingegeben werden sollen, so (") angezeigt, also schon beim Eintrag in die DB automatisch escaped. Jetzt kann sich sicher schon jeder denken, was ich will. Genau: aus " soll nicht " werden. Wie erreiche ich das am einfachsten? Eigentlich sollten die Einträge keine " enthalten, aber rechnen muss man ja trotzdem damit. Gibt es noch andere Zeichen, mit denen das Gleiche passiert?

Gruß
Huttatta

Hallo Huttatta,

Eintrag in die DB automatisch escaped. Jetzt kann sich sicher
schon jeder denken, was ich will. Genau: aus " soll nicht "
werden. Wie erreiche ich das am einfachsten? Eigentlich

doch soll schon, sonst meint die Datenbank, der SQL-String wäre an der Stelle schon zuende. Das kann böse Überraschungen geben. Wenn Du die Zeichen immer ausschließen willst. Nimm str_replace() um die unerwünschten Zeichen rauszunehmen.

sollten die Einträge keine " enthalten, aber rechnen muss man
ja trotzdem damit. Gibt es noch andere Zeichen, mit denen das
Gleiche passiert?

das passiert mit den normalen Anführungszeichen und mit den einfachen Anführungszeichen. Schau mal bei PHP unter magic_quotes nach.

http://de.php.net/manual/de/function.set-magic-quote…

Die Magic-Quotes kanns Du damit ausschalten, was aber nicht empfehlenswert ist. Ansonsten musst Du addslashes() und stripslashes() in Deinem Code verwenden.

Gruß
Marian