Zeilenumbrüche in Get-Variablen
Alex
- php
Guten Abend.
Ich möchte Daten, die in einer Textarea eingegeben werden, per Get-Methode absenden. Leider scheinen dabei die Zeilenumbrüche verloren zu gehen. Wenn ich mir den Wert der Get-Variable nach dem Absenden oder auch in der Datenbank anschaue, dann wurde dort jeweils ein Zeilenumbruch durch ein Leerzeichen ersetzt?
Was muss ich machen, um die Zeilenumbrüche beim Speichern nicht zu verlieren?
Danke
Alex
Moin Alex,
Ich möchte Daten, die in einer Textarea eingegeben werden, per Get-Methode absenden. Leider scheinen dabei die Zeilenumbrüche verloren zu gehen. Wenn ich mir den Wert der Get-Variable nach dem
kurze Zwischefrage, warum nicht per POST?
regds
Mike©
Was wäre nach nl2br($getvariablemitinhalt); ?
Grüße, Matze
Moin!
Was wäre nach
nl2br($getvariablemitinhalt);
?
Das Problem immer noch nicht gelöst:
nl2br -- Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein
D.h. nl2br ersetzt dir keine Zeilenumbrüche, es erweitert sie nur.
Aber warum nicht $getvariablemitinhalt
durch $postvariablemitinhalt
ersetzen?
Viele Grüße,
Robert
Stimmt, allgemein gute Frage. Post wär besser.
Aber auf der Seite gibts auch die Lösung oder irr ich mich?
/* FORMATS LINE BREAKS WITH PROPER HTML TAGS */
function format_html($content)
{
$content = "<p>" . str_replace("\r\n", "<br/>", $content) . "";
$content = "" . str_replace("<br/><br/>", "</p><p>", $content) . "";
return "" . str_replace("<br/><li>", "<li>", $content) . "";
}
Aber was willst du eigentlich machen?
Vielleicht reicht dir ja schon:
addslashes(htmlspecialchars($variablemitinhalt));
bei der Ausgabe kannst du die Zeilenumbrüche dann
meinetwegen mit eregi_replace(...) wieder herstellen.
Grüße, Matze
Hallo,
$content = "<p>" . str_replace("\r\n", "<br/>", $content) . "";
^^^^
was ist mit Linux? ;)
$a=array("\r\n","\n\n","\n");
$b=array("\n",'</p><p>','<br>');
$content='<p>'.str_replace($a,$b,htmlspecialchars($content)).'</p>';
Gruß aus Berlin!
eddi
Hello,
$content = "<p>" . str_replace("\r\n", "<br/>", $content) . "";
^^^^
was ist mit Linux? ;)
Was genau sendet denn Dein Browser unter Linux für einen Zeilenumbruch?
Hast Du mal reingeschaut?
Er muss ja das Protokoll einhalten, und da werden Zeilenumbrüche durch CRLF gekennzeichnet.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Tom :)
$content = "<p>" . str_replace("\r\n", "<br/>", $content) . "";
^^^^
was ist mit Linux? ;)Was genau sendet denn Dein Browser unter Linux für einen Zeilenumbruch?
er sendet <LF>
Hast Du mal reingeschaut?
- nicht in die Sourcen, aber in dem Fall reichen mir übertragene Formularwerte.
Er muss ja das Protokoll einhalten, und da werden Zeilenumbrüche durch CRLF gekennzeichnet.
Richtig, daß tut er auch wenn er HTTP-Header sendet. Nur fallen per POST übergebene Werte unter "Message-Body" und haben mit dem HTTP der Anfrage nichts zutun. Per GET übergebene Werte sind in der Anfragezeile enthalten und müssen eh codiert vorliegen, da dort ein <CRLF> definitiv zu Fehlern im Protokoll führen würde.
Gruß aus Berlin!
eddi
gudn tach!
Ich möchte Daten, die in einer Textarea eingegeben werden, per Get-Methode absenden. Leider scheinen dabei die Zeilenumbrüche verloren zu gehen.
hmm, vielleicht hilft dir schon http://de.selfhtml.org/html/formulare/eingabe.htm#bereiche_umbruch weiter. ansonsten praezisiere mal das problem. was genau gibst du in das formular ein? wie genau stellst du fest, dass die zeilenumbrueche nach dem absenden nicht mehr vorhanden sind?
prost
seth
Danke euch für die Antworten!
War ein Fehler meinerseits.
Die Verwendung von Post deshalb nicht, damit diese Meldung im Browser beim Zurückspringen nicht erscheint.
Alex