Mahlzeit,
$text = str_replace("\n","",$text);
$text = str_replace("\r","",$text);das ist meiner Meinung nach keine gute Idee, da Daten weggeworfen werden.
Sehe ich genauso.
Sinnvoller wäre eine kontextgemäße Behandlung:
Sehe ich auch so.
- Daten im Querystring mit urlencode
- Ausgabe im HTML-Kontext: htmlspecialchars
Und wie würdest Du im konkreten Fall (in dem es weder um Querystrings noch HTML-Ausgaben geht, sondern um Javascript) die Daten kontextgemäß behandeln?
Ich würde - da sowohl in PHP als auch in Javascript die ASCII-Codes 10 als "\n" bzw. 13 als "\r" dargestellt werden - einfach die Backslashes entsprechend maskieren:
$text = str_replace("\n", "\\n", str_replace("\r", "\\r", $text));
Damit dürfte als Ergebnis der HTML-Code folgendermaßen aussehen:
<input type="button" value="Bearbeiten" onclick="top.location.href='bearbeiten.php?text=Foo bar blubb\nbla laber'" />
Und das sollte problemlos funktionieren ...
Bessere Lösungsansätze sind herzlich willkommen!
... siehe auch diese Beiträge von dedlfix:
- </archiv/2008/3/t168976/#m1103199>
- </archiv/2008/3/t168823/#m1102025>
Dummerweise behandeln diese Beiträge nicht den konkreten Fall.
MfG,
EKKi
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|