Johannes Eble: Eingabe von Return in Html-Formular

Hallo,

in meiner Webseite kann man ein Formular ausfuellen, u.a. ein Kommentarfeld. Die Daten werden in einer *.htm-Datei gespeichert, sodass ich diese mir mit einem Browser ansehen kann.

Wie erreiche ich es in Perl, dass Zeilenumbrueche (Return)in <BR> verwandelt werden?

Data{'comments'} ~= s/\n/<BR>/g;

funktioniert nicht. Haengt es davon ab, ob der Server eine Unix (wie bei mir) oder eine NT Maschine ist? Was passiert, wenn andere Sonderzeichen (Tab, ä,å,"'~;...) geschrieben und gesendet werden?

Vielen Dank

Johannes

  1. Data{'comments'} ~= s/\n/<BR>/g;

    Data{'comments'} =~ s/\n/<br>/sg;

    s = treat as single line
    g = generally

    \t ist ein tabulator, und die umlaute kannst du entweder einzeln übersetzen oder du verwendest eine library. but: take a look at selfhtml first!

    gerhard

    1. hi

      ich hab ezwar von perl keine ahnung, aber wenn du ein html-formular verwendest kannst du doch einfach folgendes probieren:

      <textarea wrap=physikal>

      ich weiß nicht ob das klappt, könnt ich mir aber gut vorstellen.

      ole
      (8-)>

  2. Hallo, das Problem hatte ich auch schonmal, als ich mein Gästebuch schrieb.
    Du musst

    $Rohdaten =~ s/%0D%0A/<br>/g;

    den eben genannten regulären Ausdruck verwenden.
    Die <enters> würd ich damit gleich am Anfang rausfiltern.
    %0D%0A ist wohl sone art steuerzeichen oder sowas.

    Was die anderen Zeichen betrifft - wende sie doch einfach auf dein textarea an und schau dir den String auf der Bildschirmausgabe so an, wie er ankommt ($Rohdaten im Selfhtml-Beispiel)

    Ok, c ya.....Jens

  3. Hi,

    Wie erreiche ich es in Perl, dass Zeilenumbrueche (Return)in <BR> verwandelt werden?

    die beiden vorherigen Lösungen sind halb richtig ;-)

    Je nach verwendetem Betriebssystem wird nämlich \n, \r\n oder auch \r übergeben. Dies mußt Du abfangen:

    s/\r\n\n\r/<BR>/g;

    Cheatah