Toon posts:

htmlentities bij comment

Pagina: 1
Acties:
  • 53 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik zit met een probleem, ik heb een newsscript gebouwd, en nu wil ik ervoor zorgen dat er geen html in de "comment" gepost kan worden. Nu heb ik uitgezocht hoe dit mogelijk is en dit heb ik gevonden:
$comment = nl2br(htmlentities($comment));

Nu is het probleem dat dit niet werkt, maar voor zover ik weet moet dit voldoende zijn...

Ik hoop dat iemand me hier mee kan helpen.

Bij voorbaat dank,
Sander

ps. hier is de code:

<?
if($add == "1"){
$add= "";
global $nid;
$timestamp=time();
//$comment_html = nl2br(htmlentities(comment));
$comment = nl2br(htmlentities($comment));
//$commenthtml = addslashes($commenthtml);
$sqlquery = "INSERT INTO sprnews_comments ( timestamp, cauthor, cemail, comment, newsid ) VALUES ( '$timestamp', '$c_author', '$c_email', '$comment', '$c_newsid');";
mysql_query($sqlquery);
$add= "";
}
$add= "";
global $nid;
?>
<br><hr size=1 color=black><br><b>Add Comment</b><br>
<form name="form1" method="post" action="<? $PHP_SELF ?>">
<input type="hidden" name="c_newsid" value="<? echo $nid ?>">
<table width="400" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="139">Name</td>
<td width="255">
<input type="text" name="c_author" value="">
</td>
</tr>
<tr>
<td width="139">Email</td>
<td width="255">
<input type="text" name="c_email" value="">
</td>
</tr>
<tr>
<td width="139">Comment</td>
<td width="255">
<textarea name="comment" cols="60" rows="5"></textarea>
</td>
</tr>
</table>
<div align="center"><br>
<input type="hidden" name="add" value="1">
<input type="submit" name="Submit" value="Post Comment">
<input type="reset" name="Submit2" value="Reset">
</div>
</form>

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
het werkt niet.... Wat werkt er dan niet?

heb je geen method: HtmlDecode of HtmlEncode oid?

https://fgheysels.github.io/


  • sjroorda
  • Registratie: December 2001
  • Laatst online: 08:50
1. gebruik [ php] en [/ php] om je code heen
2. Wat werkt er niet? Krijg je niets te zien, teveel, of HTML-opgemaakt? Dat laatste ligt dan nl niet aan de htmlentities, maar elders in je code.

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 19-08 10:46
Zo, dat is duidelijker :)
Volgende keer effe zelf doen he ;)
Nu kan ik eens kijken wat er fout gaat... :P

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
if($add == "1"){
$add= "";
global $nid;
$timestamp=time();
//$comment_html = nl2br(htmlentities(comment)); 
$comment = nl2br(htmlentities($comment));
//$commenthtml = addslashes($commenthtml);
$sqlquery = "INSERT INTO sprnews_comments ( timestamp, cauthor, cemail, comment, newsid ) VALUES ( '$timestamp', '$c_author', '$c_email', '$comment', '$c_newsid');";
mysql_query($sqlquery);
$add= "";
}
$add= "";
global $nid;
?>

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<br><hr size=1 color=black><br><b>Add Comment</b><br>
<form name="form1" method="post" action="<? $PHP_SELF ?>">
<input type="hidden" name="c_newsid" value="<? echo $nid ?>">
  <table width="400" border="0" cellspacing="0" cellpadding="0" align="center">
    <tr>
      <td width="139">Name</td>
      <td width="255">
        <input type="text" name="c_author" value="">
      </td>
    </tr>
    <tr>
      <td width="139">Email</td>
      <td width="255">
        <input type="text" name="c_email" value="">
      </td>
    </tr>
    <tr>
      <td width="139">Comment</td>
      <td width="255">
        <textarea name="comment" cols="60" rows="5"></textarea>
      </td>
    </tr>
  </table>
  <div align="center"><br>
  <input type="hidden" name="add" value="1">
    <input type="submit" name="Submit" value="Post Comment">
    <input type="reset" name="Submit2" value="Reset">
  </div>
</form>

Verwijderd

Topicstarter
Op het moment dat er een comment gepost wordt en iemand zet daar html in dan werkt die html gewoon, als de post bv: "hallo <br> test" is dan geeft hij dit weer:
hallo
test

maar hij moet dit weergeven:
hallo <br> test

en dat werkt dus niet, en ook als iemand een "enter" geeft voor een nieuwe regel in de comment dan laat hij dit niet zien in de comment. Als dit bv. in het comment textarea wordt getiept:
hallo
dit is een comment

dan geeft hij het zo weer:

hallo dit is een comment

dus dat zijn de problemen

Verwijderd

Topicstarter
dankje kermit :)

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 19-08 10:46
je moet de HTML- bracket/tags omzetten naar een:
[code]<[/code] voor een < en:[code]>[/code] voor een >


Edit:
No Problemo ;)

[ Voor 39% gewijzigd door FitNiX op 11-03-2003 15:07 ]


  • sjroorda
  • Registratie: December 2001
  • Laatst online: 08:50
Maak van regel 7 uit de PHP-code eens
$comment = nl2br(htmlentities($_POST['comment']));

Goede kans dat-ie anders alsnog de post-waarde pakt in plaats van de bewerkte waarde. Gebruik altijd $_GET[], $_POST[] en $_SESSION i.p.v. de vars direct aan te roepen!

Verwijderd

Topicstarter
dat doet "htmlentities()" als ik het goed heb ?

[ Voor 16% gewijzigd door Verwijderd op 11-03-2003 15:08 ]


Verwijderd

Topicstarter
hm, werkt ook niet sjrooda:/

het lijkt wel alsof "nl2br(htmlentities()" helemaal geen effect heeft.

Verwijderd

Topicstarter
ik heb dit trouwens getest door dit in te voeren:

PHP:
1
2
3
$commenttest = nl2br(htmlentities($_POST['comment']));

$sqlquery = "INSERT INTO sprnews_comments ( timestamp, cauthor, cemail, comment, newsid ) VALUES ( '$timestamp', '$c_author', '$c_email', '$commenttest', '$c_newsid');";


zo moet ie namelijk dit wel meepakken: nl2br(htmlentities($_POST['comment']))

[ Voor 16% gewijzigd door Verwijderd op 11-03-2003 15:21 ]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Mja, dit is toch echt heel basic. Als je er niet uitkomt wat er precies gebeurt met je variabelen moet je gewoon tussentijdse waarden even naar je scherm printen.

htmlentities is de oplossing voor speciale karakters in tekst, die je in HTML gewoon wilt weergeven, en nl2br de oplossing om newlines om te zetten in <br />'s

Verder is het eenvoudig debugwerk.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.