zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > (X)HTML
Seite neu laden Zeilenumbruch in Textarea

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 26.07.2011, 09:00
r4w r4w ist offline
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.05.2011
Beiträge: 11
r4w befindet sich auf einem aufstrebenden Ast
Standard Zeilenumbruch in Textarea

Hallo liebe XHTML Gemeinde,

bin grade an einem Formular dran und komme nicht weiter..

Es sollen Daten von einer Seite an das Kontaktformular gesendet werden, das klappt auch soweit, allerdings werden die Zeilenumbrüche nicht korrekt dargestellt..

So werden die Daten übergeben:
(Test-String: 1<br>2<br>3<br />4<br />5\n6\n):
HTML-Code:
<form action="kontakt.php" method="post">
<input type="hidden" name="nachricht" value="1<br>2<br>3<br />4<br />5\n6\n" />
<input type="submit" value="absenden" />
</form>
Im Kontaktformular wird $_POST['nachricht'] zwischen die Textarea Tags gezogen..
PHP-Code:
<textarea name="nachricht" id="nachricht">
<? echo stripslashes(htmlspecialchars($_POST['nachricht'])); ?>
</textarea>
Die Ausgabe in der Textarea ist aber ohne Umbruch.. weder <br>, <br /> noch \n erzeugen den Umbruch

Ausgabe:
Code:
1<br>2<br>3<br />4<br />5\n6\n

Hat jemand ne Idee für mich, wie ich die Zeilenumbrüche erzeugen kann?

Wäre sehr dankbar für einen Denkanstoss

LG r4w
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 26.07.2011, 10:26
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.06.2007
Ort: Verden
Beiträge: 405
chorn wird schon bald berühmt werden
Standard

Zeilenumbrüche kannst du mit nl2br() von Text nach HTML konvertieren.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 26.07.2011, 10:36
r4w r4w ist offline
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.05.2011
Beiträge: 11
r4w befindet sich auf einem aufstrebenden Ast
Standard

Habe ich auch schon probiert:

HTML-Code:
<textarea name="nachricht" id="nachricht">
<? echo nl2br($_POST['nachricht']); ?>
</textarea>
Ausgabe:
Code:
1<br>2<br>3<br />4<br />5\n6\n
Immernoch ohne Zeilenumbruch -.-
Mit Zitat antworten
  #4 (permalink)  
Alt 26.07.2011, 10:43
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.942
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Weil du keinen Zeilenumbruch in deinem Text hast. In deinen Daten sind die Zeilenumbrüche maskiert. Das sollte so nicht sein.
Mit Zitat antworten
  #5 (permalink)  
Alt 26.07.2011, 11:00
r4w r4w ist offline
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.05.2011
Beiträge: 11
r4w befindet sich auf einem aufstrebenden Ast
Standard

Verstehe ich nicht.. soweit ich weiss, maskiert man mit einem \ ... (also hier: \\n)

Hilf mir auf die Sprünge
Mit Zitat antworten
  #6 (permalink)  
Alt 26.07.2011, 12:42
body.ie {display: grotte}
XHTMLforum-Mitglied
 
Registriert seit: 09.01.2011
Beiträge: 841
take_a_7 sorgt für eine eindrucksvolle Atmosphäretake_a_7 sorgt für eine eindrucksvolle Atmosphäre
Standard

Moin,

Zitat:
Zitat von r4w Beitrag anzeigen
Verstehe ich nicht.. soweit ich weiss, maskiert man mit einem \ ... (also hier: \\n)
Eben: 2 Backslashes sind es bei dir. Das ist also kein Zeilenumbruch, sondern die Zeichenfolge Backslash - kleines n (der erste Backslash escaped den zweiten). Du solltest übrigens unbedingt deine Maßnahmen zum Kontextwechsel überarbeiten - die Funktion stripslashes lässt Schlimmes erahnen (Daher wahrscheinlich auch dieser Escape-Wirrwarr).

gruß,
take
Mit Zitat antworten
  #7 (permalink)  
Alt 27.07.2011, 04:07
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 747
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

HTML ist nicht PHP. HTML kennt keine PHP-Escape-Sequenzen. "\n" in HTML ist einfach <Backslash><n>, kein Zeilenumbruch.

Du könntest den Wert des versteckten Felds per PHP einsetzen lassen.

PHP-Code:
<?php

function escape($s)
{
    return 
htmlspecialchars($sENT_QUOTES'UTF-8');
}

$isSent false;

if (isset(
$_POST['nachricht'])) {
    
$isSent true;
}

?><!DOCTYPE html>

<html lang="en">

    <head>
        <meta charset="utf-8" />
        <title>New</title>
    </head>

    <body>

        <?php if ($isSent) : ?>

        <p>Die Eingabe lautet:</p>
        
        <form method="post" action="">
            <textarea cols="80" rows="10"><?php echo escape($_POST['nachricht']); ?></textarea>
        </form>

        <?php endif; ?>

        <form action="" method="post">
            <input type="hidden" name="nachricht" value="<?php echo escape("1<br>2<br>3<br />4<br />5\n6\n"); ?>" />
            <input type="submit" value="absenden" />
        </form>

    </body>

</html>
Für PHP-Code in HTML-Code nutzt man gerne die alternative Syntax:

- http://php.net/manual/en/control-str...ive-syntax.php

Falls Magic Quotes Ärger machen:

- http://www.phpforum.de/forum/showthread.php?t=217421
Mit Zitat antworten
  #8 (permalink)  
Alt 27.07.2011, 09:15
r4w r4w ist offline
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 13.05.2011
Beiträge: 11
r4w befindet sich auf einem aufstrebenden Ast
Standard

Danke für Eure Antworten!

Zitat:
Zitat von take_a_7 Beitrag anzeigen
Moin,



Eben: 2 Backslashes sind es bei dir. Das ist also kein Zeilenumbruch, sondern die Zeichenfolge Backslash - kleines n (der erste Backslash escaped den zweiten). Du solltest übrigens unbedingt deine Maßnahmen zum Kontextwechsel überarbeiten - die Funktion stripslashes lässt Schlimmes erahnen (Daher wahrscheinlich auch dieser Escape-Wirrwarr).

gruß,
take
In meinem Beispiel sind keine doppelten \ daher ist dies auch nicht das Problem.. Den wiki - Eintrag werde ich mir demnächst mal zu Gemüte führen - Danke!

Zitat:
Zitat von mermshaus Beitrag anzeigen
HTML ist nicht PHP. HTML kennt keine PHP-Escape-Sequenzen. "\n" in HTML ist einfach <Backslash><n>, kein Zeilenumbruch.

Du könntest den Wert des versteckten Felds per PHP einsetzen lassen.

PHP-Code:
<?php

function escape($s)
{
    return 
htmlspecialchars($sENT_QUOTES'UTF-8');
}

$isSent false;

if (isset(
$_POST['nachricht'])) {
    
$isSent true;
}

?><!DOCTYPE html>

<html lang="en">

    <head>
        <meta charset="utf-8" />
        <title>New</title>
    </head>

    <body>

        <?php if ($isSent) : ?>

        <p>Die Eingabe lautet:</p>
        
        <form method="post" action="">
            <textarea cols="80" rows="10"><?php echo escape($_POST['nachricht']); ?></textarea>
        </form>

        <?php endif; ?>

        <form action="" method="post">
            <input type="hidden" name="nachricht" value="<?php echo escape("1<br>2<br>3<br />4<br />5\n6\n"); ?>" />
            <input type="submit" value="absenden" />
        </form>

    </body>

</html>
Für PHP-Code in HTML-Code nutzt man gerne die alternative Syntax:

- PHP: Alternative syntax for control structures - Manual

Falls Magic Quotes Ärger machen:

- Magic Quotes - PHP Forum: phpforum.de
Danke für Deine ausführliche Antwort, allerdings habe ich das nun anders gelöst - vielleicht weniger Elegant aber dafür einfach und es funktioniert:

So werden nun auch die Zeilenumbrüche anständig übernommen, auch wenns schlimm aussieht^^
HTML-Code:
<form action="../kontakt-test" method="post">
<input type="hidden" name="nachricht" value="1
2
3
4
5
6
7
8
9
10" />
<input type="submit" value="absenden" />
</form>
Mit Zitat antworten
  #9 (permalink)  
Alt 27.07.2011, 13:56
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 747
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Das PHP-Script würde auch einfach einen solchen Code mit „echten“ Zeilenumbrüchen generieren. Ist also praktisch dasselbe, nur vielleicht in der PHP-Variante etwas lesbarer. Na ja, Details.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kontaktformular Inhalt von Textarea übergeben? sepp88 Serveradministration und serverseitige Scripte 8 27.12.2009 01:20
Zeilenumbruch durch Codestruktur MANIK (X)HTML 11 23.09.2007 15:37
IE6, Position:relative und TEXTAREA kondorek CSS 0 21.08.2007 12:01
Floatendes div neben 100% breiter textarea? akb CSS 6 01.10.2006 17:31
problem mit IE Textarea + variable breite stese CSS 3 26.07.2004 11:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:32 Uhr.