webForumDet fria alternativet

Radbrytning i PHP-gästbok

2 svar · 268 visningar · startad av Probyte

ProbyteMedlem sedan maj 200159 inlägg
#1

Hallå. Jag håller på o pillar lite med Matti's PHP-gästbok som figurerar i olika trådar här på wf och försöker samtidigt lära mig så mkt php som möjligt. Nu har jag dock en grej som jag skulle vilja ha lite hjälp med.

När man skriver in ett meddelande i textarea i formuläret och sänder iväg detta så registreras inte radbrytningarna man gjort där (dvs vanliga enter i texten) som <br> som jag vill att det ska göra. Jag vill alltså att radbrytningar i meddelandet oxå ska visas som radbrytningar i gästboken.

Infogar php-koden:

<html>
<head>
<title>Gästbok</title>
<meta http-equiv="refresh" content="3;URL=index.php">

</head>
<body><?
/* Copyright (c) 2000 Matti Kolu and Joakim Ewenson. All rights reserved.

This program may be used and modified free of charge by anyone, so
long as this copyright notice remain intact. 

*/

if ($namn == "") {
echo('<p>

Du glömde att skriva ditt namn<p></p>');
}
elseif ($meddelande == "") {
echo('<p>Du glömde att skriva ett meddelande</p>');
}
elseif ($meddelande == "Ditt meddelande") {
echo('<p>Du glömde att skriva ett meddelande</p>');
}
else {
echo("<p>Tack för dina kommentarer</p>");
}
/* Byt ut de tecken som inte passar */
$meddelande = str_replace("å","å",$meddelande);
$meddelande = str_replace("ä","ä",$meddelande);
$meddelande = str_replace("ö","ö",$meddelande);
$meddelande = nlbr($meddelande);
$meddelande = preg_replace("/<.*?>/","",$meddelande);

$today = date("Y-m-d");
/* Här skrivs informationen in i gästboken */
$nyhetsfil="gbok.txt";
$hela .="<p align=left><b>Namn: <a href=mailto:$email>$namn</a></b><br>";
$hela .="<b>Hemsida:</b> <a href=$hemsida target=nytt>$hemsida</a><br>";
$hela .="<b>Datum:</b> $today";
$hela .="<br><b>Meddelande:</b><br>$meddelande</p><hr width=200 align=left>";
$fpread = fopen($nyhetsfil, 'r') or die;
$hela .= ltrim(Chop(fread($fpread, 99999)));
fclose ($fpread);
$fpwrite = fopen($nyhetsfil, 'w') or die;
fputs($fpwrite,$hela);
fclose($fpwrite);
?>

</body>
</html>

Är mkt tacksam för snabb hjälp...

------------------
:: mattias :: www ::

SPiNMedlem sedan mars 20007 896 inlägg
#2

Verkar som att Matti har missat en två på raden
$meddelande = nlbr($meddelande);
Ska egentligen vara:
$meddelande = nl2br($meddelande);

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

ProbyteMedlem sedan maj 200159 inlägg
#3

Sorry.. det är nog jag som pillat bort en tvåa där. Men det funkar inte ändå. Jag har själv pillat dit nl2br för att jag läste att det skulle konvertera n/ till <br> men det är nåt mer som ställer till det... tror att det är:

$hela .= ltrim(Chop(fread($fpread, 99999)));

Men jag vet inte hur jag ska skriva om den... =(

------------------
:: mattias :: www ::

125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)