Avatar billede d.kryger Praktikant
01. april 2003 - 13:23 Der er 15 kommentarer og
2 løsninger

Ingen HTML kode

Hej Eksperter.

Jeg har et debatforum hvor man IKKE skal kunne oprette HTML kode i "textarea". Hvordan kan man begrænse det?

Gerne med noget kode, hvis det er muligt.
Avatar billede schaefner Juniormester
01. april 2003 - 13:24 #1
Avatar billede schaefner Juniormester
01. april 2003 - 13:24 #2
$tekst = strip_tags($tekst);

$tekst indeholder så den tekst brugeren har skrevet i textarea'et
Avatar billede Slettet bruger
01. april 2003 - 13:31 #3
endnu bedre er
$tekst = htmlspecialchars($tekst);

http://www.php.net/manual/en/function.htmlspecialchars.php
Så får brugeren nemlig også mulighed for at bruge "<" og ">" i sin tekst!
Avatar billede exp Juniormester
01. april 2003 - 13:53 #4
$str = str_replace("<", "&lt;", $str);
$str = str_replace(">", "&gt;", $str);
Avatar billede xyborx Nybegynder
01. april 2003 - 14:24 #5
En anden mulighed er htmlentities
Info: www.php.net/htmlentities
Avatar billede d.kryger Praktikant
01. april 2003 - 15:52 #6
Nu er php ikke min stærke side, så jeg håber I vil hjælpe mig. Hvor skal jeg indsætte koden?

Kode:
<form method="post" action="func.php?function=thread" name="post">
<div align="center">
<center>
<table border="0" width="350" cellspacing="1" cellpadding="0">
<tr>
<td width="100%"><font size="1" face="Verdana">Navn:<br>
<input type="text" class="input" name="navn" size="56" style="font-family: Verdana"></font></td>
</tr>
<tr>
<td width="100%"><font size="1" face="Verdana">E-mail adresse:<br>
<input type="text" class="input" name="email" size="56" style="font-family: Verdana"></font></td>
</tr>
<tr>
<td width="100%"><font size="1" face="Verdana">Overskrift:<br>
<input type="text" class="input" name="overskrift" size="56" style="font-family: Verdana"></font></td>
</tr>
<tr>
<td width="100%"><font size="1" face="Verdana">Besked:<br>
<textarea name="besked" class="input" rows="10" cols="55" style="font-family: Verdana"></textarea></font></td>
</tr>
<tr>
<td width="100%"><p align="center"><font size="1" face="Verdana"><br>
<input type="submit" class="input_knap" name="send" style="font-family: Verdana" value="Posterer indlæg">&nbsp;<input type="reset" class="input_knap" value="Ryd felterne" name="nulstil" style="font-family: Verdana"></font></p>
</td>
</tr>
</table>
</center>
</div>
</form>
Avatar billede exp Juniormester
01. april 2003 - 15:55 #7
i "func.php?function=thread"...
Avatar billede Slettet bruger
01. april 2003 - 15:56 #8
Og htmlentities er klart at foretrække, vil jeg mene. Så får du også skrevet æ, ø og å rigtigt.
Avatar billede d.kryger Praktikant
01. april 2003 - 16:02 #9
Exp -> Ok, hvor i func.php?

func.php:
// Gemmer ny tråd
if ($_GET['function'] == "thread" && $_POST['send'])
{
$query = mysql_query("INSERT INTO forum_body (overskrift, navn, email, besked, dato)" . "VALUES ('".$_POST['overskrift']."','$navn','$email','$besked','$dato')");
header("Location: index.php");
}
#
Avatar billede Slettet bruger
01. april 2003 - 16:12 #10
Gerne i dem alle:

$query = mysql_query("INSERT INTO forum_body (overskrift, navn, email, besked, dato)" . "VALUES ('".$_POST['overskrift']."','" . htmlentities($navn) . "','" . htmlentities($email) . "','" . htmlentities($besked) . "','$dato')");

Hvis $dato også indeholder æ, ø eller å, kan du også bruge htmlentities på den.
Avatar billede exp Juniormester
02. april 2003 - 08:28 #11
ja, som phoenixv siger... :o)
Avatar billede d.kryger Praktikant
02. april 2003 - 08:39 #12
phoenixv -> Læg et svar, så jeg kan fordele pointene.
Avatar billede Slettet bruger
02. april 2003 - 15:14 #13
Nej tak, jeg uddybede jo bare lidt.
Avatar billede d.kryger Praktikant
07. april 2003 - 11:13 #14
Hej igen.

Jeg har lige opdaget et lille problem ved at bruger denne kode. Når folk skriver noget i 'textarea' feltet, og bruger 'Enter', så bruger den nl2br, men den skriver så bare <br> i feltet, her skal koden jo netop virke.

Kan det lade sig gøre eller hva?

Koden:
// Gemmer ny tråd
if ($_GET['function'] == "thread" && $_POST['send'])
{
$query = mysql_query("INSERT INTO forum_body (overskrift, navn, email, besked, dato)" . "VALUES ('".$_POST['overskrift']."', '$navn', '$email', '".htmlentities($besked)."', '$dato')");
header("Location: index.php");
}
Avatar billede exp Juniormester
07. april 2003 - 11:16 #15
hvis det er i et textarea den skal virke i, skal du erstatte alle <br> med /n
Avatar billede d.kryger Praktikant
07. april 2003 - 11:19 #16
Der er sådan at når man skriver i textarea skal man kunne lave et linie skift vha enter.

Hvordan får jeg den til det?
Avatar billede exp Juniormester
07. april 2003 - 11:26 #17
Når du gemmer noget fra et textarea i en mysql-db, så gemmer den automatisk linieskift.

Dit problem er at du formaterer teksten med nl2br - det skal du så ikke gøre
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester