Escape Zeichen \ vervielfacht sich einfach von selbst
Escape Zeichen \ vervielfacht sich einfach von selbst
Mal wieder ein Beitrag für die X - Akten ^^.
Ich bin erhlich gesagt ratlos.
Wenn ich bei mir über ein Formular HTML code abschicke wird der mit:
$text = str_replace("<","& lt;",$text);
$text = str_replace(">","& gt;",$text);
$text = str_replace("\"","& #34;",$text);
$text = str_replace("'","& #39;",$text);
geändert das er nicht ausgeführt wird.
Allerdings macht er dann vor jedes " ein \ also \" aus welchem Grund auch immer.
Aber es kommt noch besser...
Ich hab natürlich ne Vorschau wo ich mir das ganze angucken kann.
Wenn ich jetzt erneut die Vorschau betätige wird das \ schon 3 mal angezeigt (\\\).
Bei erneuter Vorschau dann 7 \\\\\\\
Und bei nochmaliger Vorschau dann 15 \\\\\\\\\\\\\\\
Und so weiter....
Natürlich kann ich nicht $text = str_replace("\\","",$text); nutzen aus dem Grund wenn ich mal php code sende in dem HTML vorkommt und die " escaped werden müssen würden die ja auch verschwinden.
Jetzt stellt sich mir die Frage wo kommen die her und aus welchem Grund?
Und was kann ich dagegen tun?
Ich bin erhlich gesagt ratlos.
Wenn ich bei mir über ein Formular HTML code abschicke wird der mit:
$text = str_replace("<","& lt;",$text);
$text = str_replace(">","& gt;",$text);
$text = str_replace("\"","& #34;",$text);
$text = str_replace("'","& #39;",$text);
geändert das er nicht ausgeführt wird.
Allerdings macht er dann vor jedes " ein \ also \" aus welchem Grund auch immer.
Aber es kommt noch besser...
Ich hab natürlich ne Vorschau wo ich mir das ganze angucken kann.
Wenn ich jetzt erneut die Vorschau betätige wird das \ schon 3 mal angezeigt (\\\).
Bei erneuter Vorschau dann 7 \\\\\\\
Und bei nochmaliger Vorschau dann 15 \\\\\\\\\\\\\\\
Und so weiter....
Natürlich kann ich nicht $text = str_replace("\\","",$text); nutzen aus dem Grund wenn ich mal php code sende in dem HTML vorkommt und die " escaped werden müssen würden die ja auch verschwinden.
Jetzt stellt sich mir die Frage wo kommen die her und aus welchem Grund?
Und was kann ich dagegen tun?
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
hmm wenn ich nach suche
kann ich es ersetzen
http://pcre.nophia.de/evaluate/ecf10db4 ... php#output
alles was ich nicht finde sollte eigentlich htmlentities oder htmlspecialchars finden umwandeln in HTML Sonderzeichen.....
ohne manual zu gucken that's your job *g*
kann ich es ersetzen
http://pcre.nophia.de/evaluate/ecf10db4 ... php#output
alles was ich nicht finde sollte eigentlich htmlentities oder htmlspecialchars finden umwandeln in HTML Sonderzeichen.....
ohne manual zu gucken that's your job *g*
Mein problem ist ja eigentlich nicht der code an sich der wird auch astrein ausgegeben. Nur komischerweise bekomme ich bei etwa so einer HTML Zeile:
Das hier ausgegeben:
Es kommt mir so vor als ob der Server automatisch escaped. Was er nicht machen darf da es sich ja um HTML handelt und nicht um HTML in php.
Da ich das ausgelesene gleich wieder über die Template Funktion ins Textfeld eintragen lasse. Erscheint das dann auch so im Textfeld.
Bei nochmaliger Vorschau setzt er dann wieder das Escape Zeichen...usw.
Mir ist es aber ein Rätsel wieso er das macht mir ist keine Funktion bekannt die sowas macht.
Davon abgesehen benutze ich nur str_replace um die <> in HTML Sonderzeichen zu konvertieren und preg_replace um BBCode in HTML code umzuwandeln.
Code: Alles auswählen
<td class="style10" colspan="2"><b>Überschrift: </b><input name="thema" /></td>
Code: Alles auswählen
<td class=\"style10\" colspan=\"2\"><b>Überschrift: </b><input name=\"thema\" /></td>
Da ich das ausgelesene gleich wieder über die Template Funktion ins Textfeld eintragen lasse. Erscheint das dann auch so im Textfeld.
Bei nochmaliger Vorschau setzt er dann wieder das Escape Zeichen...usw.
Mir ist es aber ein Rätsel wieso er das macht mir ist keine Funktion bekannt die sowas macht.
Davon abgesehen benutze ich nur str_replace um die <> in HTML Sonderzeichen zu konvertieren und preg_replace um BBCode in HTML code umzuwandeln.
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
- larsneo
- Mitglied
- Beiträge: 2622
- Registriert: 07.03.2002 15:23
- Wohnort: schwäbisch gmünd
- Kontaktdaten:
siehe http://www.php-faq.de/q/q-magic-quotes.html
generell ist die einstellung übrigens gar nicht die schlechteste - also besser die variablen entsprechend behandeln.
generell ist die einstellung übrigens gar nicht die schlechteste - also besser die variablen entsprechend behandeln.