Du borde kunna skriva:
echo "<tr><td>" . nl2br($row['annonstext']) . "</td></tr>";
Förutsatt att du inte tagit bort radbrytningen när du skriver in det i databasen.
14 svar · 1 815 visningar · startad av emton
Har ett formulär som har en textruta. När detta sen ska visas på sidan så blir allt i en enda lång rad trots att man har tryckt enter flera gånger. Förmodar att man ska använda nl2br men får det inte att funka. Här är koden som hämtar och visar en annons.
$sql = "SELECT * FROM annonser WHERE godkand = 1 AND val = 'saljes' ORDER BY date DESC";
$sql_result = mysql_query ($sql) or die ("Query error.");
echo "<table>";
while ($row = mysql_fetch_assoc ($sql_result)) {
echo "<tr><td id='overskrift'><b>" . $row['overskrift'] . "</b></td></tr>";
echo "<tr><td>" . $row['annonstext'] . "</td></tr>";
echo "<tr><td id='pris'>" . "<b>Pris: </b>" . $row['pris'] . "</td></tr>";
echo "<tr><td>" . $row['genbanksnr'] . "</td></tr>";
echo "<tr><td>" . $row['fnamn'] . " " . $row['enamn'] . ", " . $row['ort'] ."</td>";
echo "<tr><td>" . $row['tele'] . "</td></tr>";
echo "<tr><td>" . $row['mobil'] . "</td></tr>";
echo "<tr><td>" . $row['epost'] . "</td></tr>";
echo "<tr><td>" . $row['websida'] . "</td></tr>";
echo "<tr><td>" . $row['date'] . "</td></tr>";
echo "<tr><td id='blank'></td></tr>";
}
echo "</table>";
Du borde kunna skriva:
echo "<tr><td>" . nl2br($row['annonstext']) . "</td></tr>";
Förutsatt att du inte tagit bort radbrytningen när du skriver in det i databasen.
Precis, helt perfekt! Tack!
Du borde kunna skriva:
echo "<tr><td>" . nl2br($row['annonstext']) . "</td></tr>";Förutsatt att du inte tagit bort radbrytningen när du skriver in det i databasen.
Fast det hjäpte inte i mailet....Får inte in nl2br där heller.
mail('mailadressen' , 'Ny annons ' , $annonstext ,'FROM: '.$fnamn.','.$enamn.'');
Var innehåller variablen $annonstext då?
Var innehåller variablen $annonstext då?
Här är det som lägger in i databasen och samtidigt skickar mail om nytt inlägg.
$fnamn = mysql_real_escape_string($_POST['fnamn']);
$enamn = mysql_real_escape_string($_POST['enamn']);
$tele = mysql_real_escape_string($_POST['tele']);
$mobil = mysql_real_escape_string($_POST['mobil']);
$epost = mysql_real_escape_string($_POST['epost']);
$websida = mysql_real_escape_string($_POST['websida']);
$genbanksnr = mysql_real_escape_string($_POST['genbanksnr']);
$val = mysql_real_escape_string($_POST['val']);
$pris = mysql_real_escape_string($_POST['pris']);
$overskrift = mysql_real_escape_string($_POST['overskrift']);
$annonstext = mysql_real_escape_string ($_POST['annonstext']);
$ort = mysql_real_escape_string($_POST['ort']);
$date = mysql_real_escape_string($_POST['date']);
$date = date("Y-m-d");
mail('mailadress' , 'Ny annons ' , $annonstext ,'FROM: '.$fnamn.','.$enamn.'');
$sql = "INSERT INTO annonser (fnamn, enamn, tele, mobil, epost, websida, genbanksnr, val, pris, overskrift, annonstext, ort, date) VALUES ('$fnamn','$enamn','$tele','$mobil','$epost','$websida','$genbanksnr','$val','$pris','$overskrift','$annonstext','$ort',NOW())";
Ja, klart att det inte fungera ;)
du säger ju bara innehållet skall vara $_POST innehållet, där har du ju inte <br> element utan vanliga radbrytningar:
mail('mailadressen' , 'Ny annons ' , nl2br($annonstext) ,'FROM: '.$fnamn.','.$enamn.'');
Glöm det, svarade fel p.g.a fel info :)
Nja, det blir fortfarande \r\n i stället för radbrytning.
Nu var jag för snabb....Det blir tomt i mailet där annonstexten skulle stå. men det kan väl inte vara row...
Ja, klart att det inte fungera ;)
du säger ju bara innehållet skall vara $_POST innehållet, där har du ju inte <br> element utan vanliga radbrytningar:
mail('mailadressen' , 'Ny annons ' , nl2br($annonstext) ,'FROM: '.$fnamn.','.$enamn.'');
Har redan försökt skriva så men det blir fortfarande \r\n i stället för radbrytning då.
skulle tippa på att mysql_real_escape_string kodar om \r\n - prova gå direkt på $_POST.
mail('mailadressen' , 'Ny annons ' , nl2br($_POST['annonstext']) ,'FROM: '.$fnamn.','.$enamn.'');
skulle tippa på att mysql_real_escape_string kodar om \r\n - prova gå direkt på $_POST.
mail('mailadressen' , 'Ny annons ' , nl2br($_POST['annonstext']) ,'FROM: '.$fnamn.','.$enamn.'');
Nä, nu då skickar den inget mail alls.
Stämmer, mysql_real_escape_strin() gör om \n, \r och \l till \\n, \\r och \\l. Det är därför du ser ex. \n istället för radbrytningen.
Finns två lösningar, antingen den som @anders skriver eller så får ersätta alla \\ med \.
Just nu skickas inga mail alls :(. Begriper inte varför. Vad kan man kolla efter? Hittar inget fel i denna kod. Någon annan som gör det?
mail('mailadressen' , 'Ny annons!' , $annonstext ,'FROM: '.$fnamn.'');