Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von September

SELFHTML Forumsarchiv
\" durch " ersetzen

Informationsseite
  1. Seite (PHP) \" durch " ersetzen von Waldfeeeeeee, 29. 09. 2006, 22:08
nach unten

\" durch " ersetzen

Die folgende Nachricht zum Thema stammt von: Waldfeeeeeee, 29. 09. 2006, 22:08

Hallo!

Mich plagt folgendes Problem:

Ich habe $x Textareas, und in manchen dieser Textareas sind auch Anführungszeichen. Wenn ich nun mit der POST-Methode jede Textarea zu einem Element des Post-Arrays mache (also $_POST[$x]) werden die " aber zu \" ... Ich möchte nun, dass die \" durch ein " ersetzt werden.

Habe es versucht so zu lösen:

$ersetzt = ereg_replace('\"','"',$_POST[$b]);


Aber so funktioniert es nicht! Das " wird zwar zu ", aber das \ bleibt da! Was mache ich falsch? :(

Gruß

nach obennach unten

\" durch " ersetzen

Die folgende Nachricht zum Thema stammt von: Waldfeeeeeee, 29. 09. 2006, 22:09

Sry, habe das direkt aus meiner datei kopiert, deshalb steht da $b statt $x in den eckigen klammern ..
Aber in meiner datei funkt es auch nicht, und da sind alle als $b definiert!

nach obennach unten

\" durch " ersetzen

Die folgende Nachricht zum Thema stammt von: Auge, 29. 09. 2006, 22:20

Hallo

»» Hallo!
»»
»» Mich plagt folgendes Problem:
»»
»» Ich habe $x Textareas, und in manchen dieser Textareas sind auch Anführungszeichen. Wenn ich nun mit der POST-Methode jede Textarea zu einem Element des Post-Arrays mache (also $_POST[$x]) werden die " aber zu \" ... Ich möchte nun, dass die \" durch ein " ersetzt werden.
»»
»» Habe es versucht so zu lösen:
»»
»» $ersetzt = ereg_replace('\"','"',$_POST[$b]);
»»
»»
»» Aber so funktioniert es nicht! Das " wird zwar zu ", aber das \ bleibt da! Was mache ich falsch? :(

Der backslash wird automatisch vor die Anführungszeichen (und auch einige andere zeichen) gesetzt, um sie zu maskieren, da sie eigentlich als Stringbegrenzer fungieren.

Mit stripslashes() entfernt man diese Maskierungen und mit htmlspecialchars() kannst du dir, unter Anderem auch, die Anführungszeichen HTML-gerecht maskieren lassen.

stripslashes
htmlspecialchars

Tschö, Auge

--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)

Veranstaltungsdatenbank Vdb 0.1

nach obennach unten

\" durch " ersetzen

Die folgende Nachricht zum Thema stammt von: Olaf Schneider, 29. 09. 2006, 22:22

Hallo Waldfeeeeeee,

»» Ich habe $x Textareas, und in manchen dieser Textareas sind auch Anführungszeichen. Wenn ich nun mit der POST-Methode jede Textarea zu einem Element des Post-Arrays mache (also $_POST[$x]) werden die " aber zu \" ...

Vermutlich stehen in der php.ini die magic_quotes_gpc auf on/true. Wenn Du Einfluss auf die php.ini hast, setze diese auf false.

»» $ersetzt = ereg_replace('\"','"',$_POST[$b]);

Probiere mal '\\"'. Der Slash schützt Dein doppeltes Hochkomma, auch wenn es hier eigenlich nicht nötig ist.

Gruß
Olaf

P.S.: Ach ja, statt ereg_replace lieber preg_replace: Ist performanter und die ereg-Funktionen fliegen vielleicht bei PHP6 raus.

nach obennach unten

\" durch " ersetzen

Die folgende Nachricht zum Thema stammt von: dedlfix, 29. 09. 2006, 22:50

echo $begrüßung;

»» [...] die ereg-Funktionen fliegen vielleicht bei PHP6 raus.

. Sie werden nur eine ausschaltbare Extension, wie beispielsweise mysql. Es gibt keinen Grund, sie komplett zu verbannen.


echo "$verabschiedung $name";

nach obennach unten

\" durch " ersetzen

Die folgende Nachricht zum Thema stammt von: Olaf Schneider, 29. 09. 2006, 23:38

Hallo,

»» »» [...] die ereg-Funktionen fliegen vielleicht bei PHP6 raus.
»»
»» . Sie werden nur eine ausschaltbare Extension, wie beispielsweise mysql. Es gibt keinen Grund, sie komplett zu verbannen.

OK, das war ein bisschen auf die Schnelle formuliert. Aber abgesehen davon kenne ich eh keinen Grund, die ereg-Funktionen zu benutzen. Wer unbedingt will, kann sie als Extension laden, die meisten werden sie IMHO nicht benutzen.

Aber warten wir mal gespannt ab, was PHP6 _wirklich_ bringen wird.

Gruß
Olaf

nach obennach unten

\" durch " ersetzen

Die folgende Nachricht zum Thema stammt von: dedlfix, 29. 09. 2006, 23:40

echo $begrüßung;

»» Aber warten wir mal gespannt ab, was PHP6 _wirklich_ bringen wird.

Entspann dich! :-)


echo "$verabschiedung $name";

nach obennach unten

\" durch " ersetzen

Die folgende Nachricht zum Thema stammt von: Christian Seiler, 30. 09. 2006, 13:59

Hallo Olaf,

»» OK, das war ein bisschen auf die Schnelle formuliert. Aber abgesehen davon kenne ich eh keinen Grund, die ereg-Funktionen zu benutzen. Wer unbedingt will, kann sie als Extension laden, die meisten werden sie IMHO nicht benutzen.

Die mangelnde Binärsicherheit kann sogar zu Sicherheitslücken führen. Stell Dir vor, Du wendest per ereg() (oder eregi()) einen regulären Ausdruck auf eine Benutzereingabe an. Die ereg-Bibliothek denkt, der String wäre zu Ende, sobald ein 0-Byte auftaucht. Wenn der übergebene String also ein 0-Byte enthält, davor jedoch komplett harmlos ist, danach jedoch irgendwelche Böse sachen enthält, dann gibt ereg() true zurück (String matcht), obwohl der String eigentlich böse ist, und das Script könnte unter Umständen (je nachdem, wie dann mit der Eingabevariable weiter verfahren wird) Dinge tun, die es nicht tun sollte. preg_match() dagegen lässt sich von einem 0-Byte nicht täuschen (da die pcre-Bibliothek nicht nur den String selbst, sondern auch dessen Länge übergeben bekommt) und würde bei einer Eingabe mit 0-Byte sofort sagen, dass die Eingabe ungültig ist (außer der reguläre Ausdruck erlaubt das 0-Byte an der Stelle selbstverständlich).

Zugegebenermaßen, der Angriff mag jetzt etwas konstruiert klingen, aber ich kann mir durchaus vorstellen, dass sowas in ungünstigen Situationen durchaus auftreten kann. Deswegen ist von den ereg*-Funktionen eigentlich nur abzuraten. Zudem sind preg* sowieso schneller und können mehr.

Viele Grüße,
Christian

--
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup

nach obennach unten

\" durch " ersetzen

Die folgende Nachricht zum Thema stammt von: Ingo Turski, 30. 09. 2006, 01:56

Hi,

»» Ich möchte nun, dass die \" durch ein " ersetzt werden.
warum?
deaktiviere wie gesagt magic_quotes oder entferne die Maskierung, aber wofür willst Du eine Entity verwenden?

freundliche Grüße
Ingo
--
[barrierefreie Webseitenerstellung » Suchmaschinenoptimierung | em?] (Hommingberger Gepardenforelle;-)

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von September

© 1998-2008 Seite Impressum, Software: Classic Forum