wahsaga: Benutzereingaben überprüfen

Beitrag lesen

hi,

Warte, das heißt, wenn das Formular auf einem Mac ausgefüllt wird, kommen nicht \n\r bzw. LF CR am "Server" an sondern nur der MAC Zeilenumruch (nur \n oder?)

Den Zeilenumbruch erzeugt ein Browser, und der läuft unter irgendeinem OS, welches nicht gleich dem deines Servers sein muss.

Daraus würde ich jetzt schließen ich müßte in etwa etwas benutzen wie:

$foo = chr(13);
$_POST[$bla] = str_replace($foo, "#", $_POST[$bla]);
$bar = chr(10);
$_POST[$bla] = str_replace($bar, "#", $_POST[$bla]);
$_POST[$bla] = str_replace("##", "<br />", $_POST[$bla]);

und damit würden dann Unix und Windows Umbrüche durch HTML Umbruch ersetzt. Meint Ihr das?

Wenn nur ein \r oder nur ein \n kommt, dann machst du daraus ein #, und versuchst anschließend ## zu ersetzen - wie viel wird da wohl gefunden ...?

Außerdem, was passiert wenn ## sich in der Benutzereingabe befand?

Eher empfehlenswert wäre eine Lösung, die mit beidem klarkommt.

$text = preg_replace('/\015\012|\015|\012/', '<br>', $text);

\012 und \015 sind die Oktalschreibweisen für hex. 0a 0d / dezimal 10 13 in regulären Ausdrücken, also die beiden gesuchten Steuerzeichen.

Und wenn diese in den Kombinationen \015\012 oder nur \015 oder nur \012 vorkommen, dann werden sie durch <br> ersetzt.

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }