Supportnet / Forum / Skripte(PHP,ASP,Perl...)
mehrzeiliges eingabefeld wiedergeben
Frage
hallo
ich habe ein mehrzeiliges formular eingabefeld, was auf einer nächsten seite (über html) angezeigt werden soll.
wenn ich einen zeilenabsatz mache wird dieser nicht übernommen, da der absatz den ich im formular mache ein[code] \n [/code]absatz ist, ich jedoch für html einen [code]<br>[/code] brauche.
wie kann ichs machen, das bei der verarbeitung der br eingefügt wird?
luke
Antwort 1 von rabies
Antwort 2 von luke
vielen dank, das habe ich gesucht ;)
Antwort 3 von luke
ich bins nochmal...so ganz von alleine erklärt sich das nicht....
also
zufälliger weise wird mein text auch in der variable
jetzt habe ich
und weiter unten
<?php
echo "$text";
?>
jetzt wird aber alles dargestellt wie zuvor ohne br :(
was mache ich falsch??
luke
also
zufälliger weise wird mein text auch in der variable
Zitat:
text
gespeichert.text
jetzt habe ich
<?php
function nl2brr($text) {
return str_replace(array("rn", "n", "r"), "<br>", $text);
} ?>und weiter unten
<?php
echo "$text";
?>
jetzt wird aber alles dargestellt wie zuvor ohne br :(
was mache ich falsch??
luke
Antwort 4 von disco
moin
naja. du gibst ja auch nur $text aus. ohne es vorher an die funktion nl2brr() zu übergeben.
g,
disco
naja. du gibst ja auch nur $text aus. ohne es vorher an die funktion nl2brr() zu übergeben.
g,
disco
Antwort 5 von luke
wie geht das?
sry
bin totaler neuling auf dem gebiet, aber jeder fängt mal klein an ;)
sry
bin totaler neuling auf dem gebiet, aber jeder fängt mal klein an ;)
Antwort 6 von Termu
Die Funktion von "emailfire" enthält mehrere Schreib- und Programmierfehler! Mach es einfach so:
echo str_replace(chr(10),chr(10)."<br>",$text);
echo str_replace(chr(10),chr(10)."<br>",$text);
Antwort 7 von luke
danke termu
habs mal so eingefügt wie du gesagt hast, jetzt zeigt der server für diese zeile einen fehler an:
wobei das
habs mal so eingefügt wie du gesagt hast, jetzt zeigt der server für diese zeile einen fehler an:
Zitat:
Parse error: parse error, unexpected ´>´
Parse error: parse error, unexpected ´>´
wobei das
> ja erforderlich ist...Antwort 8 von Termu
Also mein PHP beschwert sich bei der Zeile nicht. ;-) Vielleicht hast Du dich verschrieben? Vielleicht das Anführungszeichen vor <br> vergessen?
Antwort 9 von luke
habs 1:1 kopiert*g*
Antwort 10 von Termu
Dann hast Du vielleicht in einer vorhergehenden Zeile vergessen eine Zeichenkette per Anführungszeichen zu schliessen? Oder einen anderen Fehler gemacht, der sich über mehrere Zeilen hinweg auswirkt? Sowas passiert bei PHP gerne mal ..
Kopier die Zeile doch mal in ein leeres Skript. So kannst Du prüfen ob der Fehler wirklich in dieser Zeile liegt.
Kopier die Zeile doch mal in ein leeres Skript. So kannst Du prüfen ob der Fehler wirklich in dieser Zeile liegt.
Antwort 11 von luke
kannst du mir mal eine email schicken?
dann schicke ich dir die datei mal zurück und du kannst mir sagen, wo der fehler liegt ;)
meine adresse lautet
fade-away at gmx.net
dann schicke ich dir die datei mal zurück und du kannst mir sagen, wo der fehler liegt ;)
meine adresse lautet
fade-away at gmx.net
Antwort 12 von Termu
Kannst Du den Code nicht hier posten? Oder ihn irgendwo als Textdatei auf Webspace uppen. Oder bei nem Filesharedienst wie z.B. rapidshare.de
Antwort 13 von luke
hi
habs mal online gestellt...
die variablen werden aus einem formular übergeben, was ich jetzt nicht online gestelt habe.
http://web1.v300.ncsrv.de/sn/php.txt
habs mal online gestellt...
die variablen werden aus einem formular übergeben, was ich jetzt nicht online gestelt habe.
http://web1.v300.ncsrv.de/sn/php.txt
Antwort 14 von Termu
Ein wenig unübersichtlich Dein Code. ;-) Das ganze Skript besteht ja fast nur aus einem ewiglangen echo-Befehl.
echo "....
....
....
....
....
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td>".str_replace(chr(10),chr(10)."<br>",$text)."\n
<br> \n
<br>\n
<br> \n
<br>\n
$salutation
<br>\n
<br>\n
<br>\n
</td>
</tr>
</table>
</body>
</html>
";
So ungefähr müsste das in Deinem Stil aussehen. Der Aufruf von str_replace() muss aus der Zeichenkette raus und wird mit Punkten zwischen die vorherige und die nachfolgende Zeichenkette eingefügt.
echo "....
....
....
....
....
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td>".str_replace(chr(10),chr(10)."<br>",$text)."\n
<br> \n
<br>\n
<br> \n
<br>\n
$salutation
<br>\n
<br>\n
<br>\n
</td>
</tr>
</table>
</body>
</html>
";
So ungefähr müsste das in Deinem Stil aussehen. Der Aufruf von str_replace() muss aus der Zeichenkette raus und wird mit Punkten zwischen die vorherige und die nachfolgende Zeichenkette eingefügt.
Antwort 15 von luke
vielen dank.....
es klappt jetzt :)
habs soweit auch verstanden ;)
die funktion muss rausgenommen werden, da sie nicht direkt in den echo befehl gehört, nicht wahr?
es klappt jetzt :)
habs soweit auch verstanden ;)
die funktion muss rausgenommen werden, da sie nicht direkt in den echo befehl gehört, nicht wahr?
Antwort 16 von Termu
Ja das ist richtig. Bei so viel festem HTML-Code und nur wenig PHP würde ich das aber eher so machen:
Denn alles was nicht durch <?php ?> eingeschlossen wird, gibt PHP einfach so unverändert in den Output. Du kannst ausserhalb davon also direkt HTML-Code schreiben. So ersparst Du Dir auch die vielen mit Backslash maskierten Anführungszeichen. Und ich finde es wird auch übersichtlicher.
<?php include("config.php");?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
....
....
<tr>
<td>
<?php
echo str_replace(chr(10),chr(10)."<br>",$text);
?>
<br> \n
<br>\n
<br> \n
<br>\n
<?php echo $salutation; ?>
<br>\n
<br>\n
<br>\n
</td>
</tr>
</table>
</body>
</html>
Denn alles was nicht durch <?php ?> eingeschlossen wird, gibt PHP einfach so unverändert in den Output. Du kannst ausserhalb davon also direkt HTML-Code schreiben. So ersparst Du Dir auch die vielen mit Backslash maskierten Anführungszeichen. Und ich finde es wird auch übersichtlicher.
Antwort 17 von Termu
Ähhhm die ganzen "\n" musst Du Dir noch wegdenken. Hab ich vergessen zu löschen. ;-)
Antwort 18 von luke
okay, danke, werde es beherzigen ;)
das mit den anführungszeichen auskommentieren, hat jedoch mein editor für micg gemacht, deshalb wars schnell gemacht ;)
das mit den anführungszeichen auskommentieren, hat jedoch mein editor für micg gemacht, deshalb wars schnell gemacht ;)

