\r\n wird bei Request abgeschnitten

akkie

Erfahrenes Mitglied
Hi

Ich stehe gerade auf dem Schlauch. Kann mir das mal jemand erklären.

PHP:
<?php

if (isset($_POST['submit'])) {
    $text = $_POST['text'];
} else {
    $text = "\r\n\r\n\r\ntest\r\n\r\n\r\n";
}

?>

<html>
    <head></head>
    <body>
        <form method="post">
            <textarea name="text" style="width:300px;height:300px;"><?php echo $text; ?></textarea>
            <input type="submit" name="submit" value="submit"/>
        </form>
    </body>
</html>

Einfach mal auf den Button klicken. Irgendwie wird bei jedem Request immer eine Zeile (\r\n) abgeschnitten.

Mfg Akkie
 
Vermutlich wird die erste Zeilenumbruchsequenz immer entfernt:
PHP:
<textarea name="text" style="width:300px;height:300px;">
<?php echo htmlspecialchars($text); ?>
</textarea>
 
Hi

Vermutlich wird die erste Zeilenumbruchsequenz immer entfernt

Das ist nicht in Ordnung. Sollte das am HTTP-Protokoll liegen?

Ich versuche gerade zu entschlüsseln was der Code den du gepostet hast mir sagen soll?:confused:

Mfg Akkie
 
Es gibt da zwei nette Funktionen im PHP
escape
und unescape
ferner noch so Dinge wie
Stripslashes etc.
Bring die doch mal in Stellung ;)
 
Es liegt eher am HTML selbst. Ein Beispiel:
HTML:
<textarea onclick="alert(this.value.length)">
</textarea>
Die Ausgabe ist „0“, obwohl zwischen Start- und End-Tag ein Zeilenumbruch ist.
 
Hi

Ist schwierig zu sagen. Dann müsste man ja aber davon ausgehen das alle getesteten Browser(ie6, firefox, opera) eine gleiches HTML-Rendering haben.

Eher unwahrscheinlich. Das HTTP-Protokoll ist überall gleich.

Wo soll denn deiner Meinung nach der Fehler liegen?
1. Soll beim Rendern des HTML die Zeile abgeschnitten werden?
2. Soll der Browser beim Request die Daten aus dem Formular falsch auslesen?

Was mich stutzig mache ist das eines von den beiden Beispielen in allen Browsern gleich implementiert sein soll.

Endlich mal eine Funktion die in jedem Browser gleich ist.:-)

Mfg Akkie
 
Zurück