17. august 2007 - 20:08
Der er
27 kommentarer og 1 løsning
der skal være <br/> i indlæg
Hej Jeg har et debatforum udfra følgende kode... Hvodangør jeg så der kan kommer <br> når bruger trykker enter? _____________________________________________________ body> <?php echo "<table border=\"0\" width=\"496px\" bgcolor=\"#FFFFFF\" >"; echo "<tr>"; echo "<td class=\"debat_spg textborder\">"; echo "aaa <br /><br />"; echo "</td>"; echo "</tr>"; echo "<tr height=\"1px\" bgcolor=\"#7f95a0\" >"; echo "<td>"; echo "</td>"; echo "</tr>"; echo "<tr height=\"10px\" >"; echo "<td>"; echo "</td>"; echo "</tr>"; include("mysql.php"); $hent = mysql_query("SELECT * FROM debat ORDER BY debat_id DESC"); if(mysql_num_rows($hent)) { while($vis = mysql_fetch_array($hent)) { echo "<tr>"; echo "<td class=\"debat_dato textborder\">"; echo $vis[dato]; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td class=\"debat_titel textborder\" >"; echo $vis[titel]; echo "</td>"; echo "</tr>"; echo "<tr height=\"3px\" >"; echo "<td>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td class=\"debat_kommentar textborder\" >"; echo $vis[kommentar]; echo "</td>"; echo "</tr>"; echo "<tr height=\"3px\" >"; echo "<td>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td class=\"debat_spg textborder\" >"; echo "<span class=\"debat_navn \"> $vis[bruger]</span> <span class=\"email\"><a href=mailto:$vis[email]>($vis[email])</a></span>"; echo "</td>"; echo "</tr>"; echo "<tr height=\"10px\" >"; echo "<td>"; echo "</td>"; echo "</tr>"; echo "<tr height=\"1px\" bgcolor=\"#7f95a0\" >"; echo "<td>"; echo "</td>"; echo "</tr>"; echo "<tr height=\"10px\" >"; echo "<td>"; echo "</td>"; echo "</tr>"; } } else { echo("Deltag i debatten nu..."); } echo "</table>"; ?> <form action="debat.php?mode=opret" method="POST"> <b>Navn:</b><br> <input type="text" name="bruger" value="<? echo $_POST[bruger]; ?>"><br> <b>Email:</b><br> <input type="text" name="email" value="<? echo $_POST[email]; ?>"><br> <b>Titel:</b><br> <input type="text" name="titel" value="<? echo $_POST[titel]; ?>"><br> <b>Kommentar:</b><br> <textarea name="kommentar" rows="16" cols="81"><? echo $_POST[kommentar]; ?></textarea><br> <input type="submit" value="send indlæg"> </form> <?php if($_GET[mode] == "opret") { if($_POST[bruger] == "") { echo("Du skal indtaste dit navn<br><br>"); } else { if($_POST[titel] == "") { echo("Du skal skrive et titel på dit indlæg<br><br>"); } else { if($_POST[kommentar] == "") { echo("Du skal skrive din kommentar<br><br>"); } else { if(strlen($_POST[titel]) > 100) { echo("Din titel er for lang - max. 100 anslag<br><br>"); }else { include("mysql.php"); $dato = date("d/m/Y H:i"); $ip = $_SERVER[REMOTE_ADDR]; $bruger = htmlspecialchars($_POST[bruger]); $titel = htmlspecialchars($_POST[titel]); $kommentar = htmlspecialchars($_POST[kommentar]); $email = htmlspecialchars($_POST[email]); mysql_query("INSERT INTO debat (spg, titel, kommentar, bruger, email, dato, ip) VALUES (1,'$titel', '$kommentar', '$bruger', '$email', '$dato', '$ip')") or die(mysql_error()); print "<meta http-equiv=\"refresh\" content=\"0; url=debat.php\">"; } } } } } ?> </body>
Annonceindlæg fra Computerworld
17. august 2007 - 20:17
#1
Du kører nl2br() metoden på din tekst streng.
17. august 2007 - 20:26
#2
og lige så jeg forstår hvad du siger :D
17. august 2007 - 20:39
#3
Når du printer, f.eks. echo $besked; skriver du istedet echo nl2br( $besked );
17. august 2007 - 20:40
#4
$kommentar = htmlspecialchars($_POST[kommentar]); -> $kommentar = nl2br(htmlspecialchars($_POST['kommentar']));
17. august 2007 - 21:01
#5
cool det virker.. har lige et ekstra spørgsmål hvis du er frisk? ellers bare smid et svar.. har en tabel.. hvis folk indsætter et for langt ord gøres tabellen lige nu bare mere bred.. hvordan gør jeg så den automatisk bryder i teksten og knalder det ned på næste linie..?
17. august 2007 - 21:14
#6
17. august 2007 - 21:16
#7
Du kan bruge wordwrap($besked, 100, "- \n", 1); Så klipper den alle linjer/ord på over 100 tegn og laver et linjeskift.
17. august 2007 - 21:17
#8
Eller som showsource siger :D
17. august 2007 - 21:20
#9
super :D og et sidste - lover det er det sidste... echo "<a href='.$_SERVER['PHP_SELF'].'?debat_id='.$vis['debat_id'].'>Slet</a>'; ?>" = unexpected T_ENCAPSED_AND_WHITESPACE
17. august 2007 - 21:24
#10
det med wordwrap er smart.. hvor er det smartest at sætte det ind.. det skal være på alle ting man henter fra databasen..
17. august 2007 - 21:40
#11
echo '<a href="'.$_SERVER['PHP_SELF'].'"?debat_id='.$vis['debat_id'].'>Slet</a>';
17. august 2007 - 21:42
#12
hvad med wordwrap.. ?
17. august 2007 - 21:43
#13
T_ECHO, expecting ',' or ';'
17. august 2007 - 21:55
#14
echo '<a href="'.$_SERVER['PHP_SELF'].'?debat_id='.$vis['debat_id'].'">Slet</a>'; og med wordwrap siger du $besked = nl2br( $besked ); $besked = wordwrap($besked, 100, "- \n", 1); echo $besked; Og hvor viser den T_ECHO fejlen? Du har glemt at afslutte linjen før.
17. august 2007 - 21:55
#15
Selve linien skal selvfølgelig være: echo '<a href="'.$_SERVER['PHP_SELF'].'?debat_id='.$vis['debat_id'].'">Slet</a>'; Hvis den siger fejl, kunne det tyde på en fejl et andet sted. Wordwrap vil jeg lade de andre forklare. :o)
17. august 2007 - 22:16
#16
har jo ingen $besked.. gider du ikke prøve med noget til mit script? ellers skal jeg jo skrive det til alt der bliver hivet ud?
17. august 2007 - 22:18
#17
Det må være: echo nl2br(wordwrap($vis[kommentar],100,"\r\n",1));
17. august 2007 - 22:30
#18
Ja det er rigtigt, ikke så smart med "-" når den også breaker ved alm. linjeskift. Og hvis du ikke allerede gør det, kan jeg anbefale at du bruger htmlentities() eller htmlspecialchars() når du smider kommentarerne i databasen, eller før du printer dem, så kan folk ikke bruge html/javascript etc. :)
17. august 2007 - 22:38
#19
strip_tags() kunne også være en løsning! :o)
17. august 2007 - 22:42
#20
Jooh, men beskytter det også mod javascript? Og fjerner det ikke tags'ne helt? Det kan jo godt være at nogle vil skriver "<b>prut</b>" i ren tekst, som herinde :D
17. august 2007 - 22:55
#21
Det fjerner tags helt jo.
17. august 2007 - 23:43
#22
hvis man skal + det der står i [email] med [navn] (altså anslag) hvordan skriver man det så ud og evt giver det en variabel...
18. august 2007 - 07:00
#23
echo $email . $navn; eller $total = $email . $navn;
19. august 2007 - 15:21
#24
takker - i smider bare svar :)
19. august 2007 - 17:06
#25
svar :)
19. august 2007 - 19:51
#26
Svar!
20. august 2007 - 15:22
#27
Var det kun mig som skulle have point?
20. august 2007 - 15:27
#28
nej, det gik lidt hurtigt.. men det andet var jo smidt en som en kommentar... eller hva? har aldrig prøvet at dele points'ne
Vi tilbyder markedets bedste kurser inden for webudvikling