emtonMedlem sedan juni 200589 inlägg 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>";
GunnarDMedlem sedan juni 20014 290 inlägg 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.
emtonMedlem sedan juni 200589 inlägg Precis, helt perfekt! Tack!
emtonMedlem sedan juni 200589 inlägg
GunnarD skrev:
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å?
emtonMedlem sedan juni 200589 inlägg
voigtann1 skrev:
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.'');
GunnarDMedlem sedan juni 20014 290 inlägg Glöm det, svarade fel p.g.a fel info :)
emtonMedlem sedan juni 200589 inlägg Nja, det blir fortfarande \r\n i stället för radbrytning.
emtonMedlem sedan juni 200589 inlägg Nu var jag för snabb....Det blir tomt i mailet där annonstexten skulle stå. men det kan väl inte vara row...
emtonMedlem sedan juni 200589 inlägg
voigtann1 skrev:
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å.
@ndersMedlem sedan juni 200032 969 inlägg 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.'');
emtonMedlem sedan juni 200589 inlägg
@nders skrev:
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.
GunnarDMedlem sedan juni 20014 290 inlägg 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 \.
emtonMedlem sedan juni 200589 inlägg 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.'');