Ik gebruik FCKeditor en als ik daar een tekst mee maak en ik wil de in mijn db zetten met volgend script:
<?
if ( isset( $_POST ) )
$postArray = &$_POST ; // 4.1.0 or later, use $_POST
else
$postArray = &$HTTP_POST_VARS ; // prior to 4.1.0, use HTTP_POST_VARS

foreach ( $postArray as $sForm => $value )

$pagename = $_POST['pagename'] ;
$pagecontent = htmlspecialchars("$value") ;
if ($pagename != NULL && $pagecontent != NULL) {
$query = "INSERT INTO pagina (pagename, pagecontent, fromuser)
VALUES ('$pagename', '$pagecontent', '$username')";
mysql_query($query) or die (__LINE__." ".mysql_error());

$query = mysql_query("SELECT MAX(pid) AS laatste_id FROM pagina");
$id = mysql_fetch_assoc($query);

}
?>

Dan krijg ik:
69 You have an error in your SQL syntax near 's geld gekost om de ongein terug van je systeem te verwijderen? dan is deze site' at line 2

Raar maar daarstraks kon ik daar wel paginas mee toevoegen
Iemand nog ideeen?
Het lijkt erop dat er wat tekst in je database terecht is gekomen met een ' erin.
Daar geeft je query een error op.
mischien vind hij die 's niet zo leuk
voordat je een bericht in de db stopt eerst met bijv str_replace aan de slag.

$pagecontent moet in de bd dan

$pagecontent= str_replace (" ' ", " ", "$pagecontent");
Zovervangt hij ' door een spatie
Maar hij krijg ik die ' er dan terug in?
ja dat is een goede volgens mij moet er ook een manier zijn om een ' te escapen met \
Moet je even zoeken

Voordat je iets in de database wegschrijft moet je die tekst eerst met de instructie addslashes bewerken.

Als je de tekst weer uit de database ophaalt kun je met de instructie stripslashes de tekst weer goed weergeven.

Zie:
addslashes

stripslashes
en je kunt htmlentities gebruiken


<?php
$str = "A 'quote' is <b>bold</b>";

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

php.net
Het is gelukt met addslashes en stripslashes
Bedankt
Klaasjan schreef op 18.02.2006 23:11
oftopic
400 :)
oftopic
401 :-)

Reageren