Ausgabe String
Andi
- javascript
Hallo,
ich darf mal wieder einen Fehler beheben der tief im System hängt:
Wir lesen Text aus der DB und maskieren sie dann generell mit addslashes?!?
Nun zum Problem:
Die Slashes werden für die Javascript aufrufe gebraucht um den String
in einem Alert richtig auszugeben und nicht die Quotes zu schließen.
Nun wird dieser Text nicht nur in Alert-Befehlen benutzt sondern auch im normalen HTML.
Beispiel(symbolisch):
// Gerade aus der DB gelesen
$text = "Ich bin ein text mit dem ital. Wort für Baum: l'albero";
// Obligatorisch für alle
$text = addslashes($text);
// Ausgabe
alert('$text');
echo $text;
Nun wird l'albero im Alert richtig ausgegeben aber nicht für das HTML.
Habe ich da eine Möglichkeit das irgendwie auszubügeln ohne, dass ich den ganzen Code durchforsten muss?
Freundliche Grüße
Andi
hi,
ich darf mal wieder einen Fehler beheben der tief im System hängt:
Wir lesen Text aus der DB und maskieren sie dann generell mit addslashes?!?
Wieso?
Die Slashes werden für die Javascript aufrufe gebraucht um den String
in einem Alert richtig auszugeben und nicht die Quotes zu schließen.
Nun wird dieser Text nicht nur in Alert-Befehlen benutzt sondern auch im normalen HTML.
Daten sollten immer passend für den Kontext, in den sie gebracht werden, maskiert werden - zu dem Zeitpunkt, wo sie in diesen Kontext gebracht werden.
// Gerade aus der DB gelesen
$text = "Ich bin ein text mit dem ital. Wort für Baum: l'albero";
// Obligatorisch für alle
$text = addslashes($text);// Ausgabe
alert('$text');
echo $text;Nun wird l'albero im Alert richtig ausgegeben aber nicht für das HTML.
Habe ich da eine Möglichkeit das irgendwie auszubügeln ohne, dass ich den ganzen Code durchforsten muss?
Wenn du - wie ich auf Grund der Fragestellung jetzt mal vermute - kein Interesse daran hast, die Fehler in der _Logik_ dieser Applikation auszubügeln - dann im allergrößten Notfall, in dem du bevor du die Daten als HTML ausgibst, diese Maskierung rückgängig machst, und direkt danach, falls sie anschliessend noch mal in einem Javascript-Kontext gebraucht werden, wieder hinzufügst.
gruß,
wahsaga
hi,
dann im allergrößten Notfall, in dem du bevor du die Daten als HTML ausgibst, diese Maskierung rückgängig machst, und direkt danach, falls sie anschliessend noch mal in einem Javascript-Kontext gebraucht werden, wieder hinzufügst.
Bzw. natürlich, in dem du sie nur für die HTML-Ausgabe entfernst, ohne den "Original"-Wert zu verändern - also das, was eigentlich bei sauberem Aufbau schon von vornherein hätte gemacht werden sollen, nur umgekehrt.
gruß,
wahsaga
hi,
ich darf mal wieder einen Fehler beheben der tief im System hängt:
Wir lesen Text aus der DB und maskieren sie dann generell mit addslashes?!?Wieso?
Dito
Die Slashes werden für die Javascript aufrufe gebraucht um den String
in einem Alert richtig auszugeben und nicht die Quotes zu schließen.
Nun wird dieser Text nicht nur in Alert-Befehlen benutzt sondern auch im normalen HTML.Daten sollten immer passend für den Kontext, in den sie gebracht werden, maskiert werden - zu dem Zeitpunkt, wo sie in diesen Kontext gebracht werden.
Dito
// Gerade aus der DB gelesen
$text = "Ich bin ein text mit dem ital. Wort für Baum: l'albero";
// Obligatorisch für alle
$text = addslashes($text);// Ausgabe
alert('$text');
echo $text;Nun wird l'albero im Alert richtig ausgegeben aber nicht für das HTML.
Habe ich da eine Möglichkeit das irgendwie auszubügeln ohne, dass ich den ganzen Code durchforsten muss?
Wenn du - wie ich auf Grund der Fragestellung jetzt mal vermute - kein Interesse daran hast, die Fehler in der _Logik_ dieser Applikation auszubügeln - dann im allergrößten Notfall, in dem du bevor du die Daten als HTML ausgibst, diese Maskierung rückgängig machst, und direkt danach, falls sie anschliessend noch mal in einem Javascript-Kontext gebraucht werden, wieder hinzufügst.
Dann tritt das ein was ich befürchtet habe ;( Den ganzen Code mit ner Regex wieder so hinbiegen wie er eigentlich sein sollte von vornherein
Freundlicher Gruß
Andi
hi,
Wieso?
Dito
Ich habe dir eine Frage gestellt - also was soll das blöde "Dito"?
Daten sollten immer passend für den Kontext, in den sie gebracht werden, maskiert werden - zu dem Zeitpunkt, wo sie in diesen Kontext gebracht werden.
Dito
Ich habe dir gesagt, wie man's vernünftig macht - also was soll das blöde "Dito"?
Dann tritt das ein was ich befürchtet habe ;( Den ganzen Code mit ner Regex wieder so hinbiegen wie er eigentlich sein sollte von vornherein
Wieso Regex?
gruß,
wahsaga
Hi,
Wieso?
Dito
Ich habe dir eine Frage gestellt - also was soll das blöde "Dito"?
Ja weil ich nicht weiß warum die damaligen Programmierer, dass so eingebaut haben. Also anstatt das ganze geleier da zu geben schreibe ich genau solche Antworten wie du im ganzen Forum.
Daten sollten immer passend für den Kontext, in den sie gebracht werden, maskiert werden - zu dem Zeitpunkt, wo sie in diesen Kontext gebracht werden.
Dito
Ich habe dir gesagt, wie man's vernünftig macht - also was soll das blöde "Dito"?
Ich würde das auch so machen bzw. hätte es so gemacht. Weiters sie obige Antwort.
Dann tritt das ein was ich befürchtet habe ;( Den ganzen Code mit ner Regex wieder so hinbiegen wie er eigentlich sein sollte von vornherein
Wieso Regex?
Weil sonst kann ich ca. 1.000.000 Zeilen durchsuchen und das dort händisch ausbessern.
Gruß
Andi
P.S. Ein bischen Freundlichkeit wäre schon angebracht wir sind hier nicht in einer Kneipe, wo man jeden gleich "blöd" anmacht.
Moinsen
Wieso Regex?
Weil sonst kann ich ca. 1.000.000 Zeilen durchsuchen und das dort händisch ausbessern.
Nochmal auch von mir: Und warum Regex?
Sagt dir stripslashes() was?
Sagt dir Suchen/Ersetzen was?
Wenn du schon nicht den ganzen Aufbau eurer "Applikation" ändern möchtest: Wieviel dieser Alert()s gibt es? Einen? Dann brauchst du auch exakt nur eine Änderung vorzunehmen.
Gruß,
DL
Hallo,
wir sind hier nicht in einer Kneipe, wo man jeden gleich "blöd" anmacht.
eben. Ich bin froh, dass der Umgangston hier in der Regel wesentlich angenehmer ist als in irgendeiner Kneipe. Ausnahmen bestätigen die Regel.
Schönes Wochenende,
Martin
Hi,
Du kannst den Text mit den Slashes in eine neue Variable speichern:
// Gerade aus der DB gelesen
$text = "Ich bin ein text mit dem ital. Wort für Baum: l'albero";
// Obligatorisch für alle
$maskedText = addslashes($text);
// Ausgabe
alert('$maskedText');
echo $text;
Habe ich da eine Möglichkeit das irgendwie auszubügeln ohne, dass ich den ganzen Code durchforsten muss?
Du must wohl alle Stellen suchen, wo $text steht und gegebenenfalls "$text" durch "$maskedText" ersetzen.
mfG,
steckl
Hallo,
Habe ich da eine Möglichkeit das irgendwie auszubügeln ohne, dass ich den ganzen Code durchforsten muss?
Du must wohl alle Stellen suchen, wo $text steht und gegebenenfalls "$text" durch "$maskedText" ersetzen.
Genaus das möchte ich vermeiden ;)
Grüße
Andi