hoe kan ik er voor zorgen dat bij onderstaande er geen foutmeldingen zijn als er bvb bij het franse nieuws een ' in de tekst staat, nu krijg ik een syntax error.

<?php

include ('config.php');

if ($_POST['submit']) {

if (!$error) {

$query = "INSERT INTO nieuws (titel, datum, short, nieuws, foto, fotokl, date, titelFR, shortFR, nieuwsFR, fr) VALUES ('$HTTP_POST_VARS[titel]', '$HTTP_POST_VARS[datum]', '$HTTP_POST_VARS[short]', '$HTTP_POST_VARS[nieuws]', '$HTTP_POST_VARS[foto]', '$HTTP_POST_VARS[fotokl]', '$HTTP_POST_VARS[date]', '$HTTP_POST_VARS[titelFR]', '$HTTP_POST_VARS[shortFR]', '$HTTP_POST_VARS[nieuwsFR]', '$HTTP_POST_VARS[fr]')";
mysql_query($query) or die (mysql_error());
?>
addslashes($_POST["tekst"]);


en bij uitlezen :

stripslashes($var);
kan je het es meer uitleggen want ben nieuw in dit alles bvb mijn script beetje aanpassen

alvast bedankt
Welke syntax error?
Kan zoveel zijn, sowieso kloppen je kaajes { en } niet en ook if($_POSt... klopt niet, moet iets zijn van isset($_POST... en je gebruikt $_POSt in je if, maar in je query gebruik je $HTTP_POST_VARS? Dat is 5 jaar terug. zo'n beetje.
$HTTP_POST_VARS[...] vervangen door $_POST['...' (tussen quotes)].

Kortom :P
Leg wat meer uit, laat een beter relevant deel zien. En geef de fout, anders kunnen wij ook niets.
laat eens het relevante gedeelte van config.php zien , daar kan je mijn bovenstaande gedeelte toepassen in de praktijk.
fout is gewoon als er in de tekst een ' wordt gebruikt... bvb franse tekst je m'excuse

heb het nu al beetje aangepast... waar moet ik nu nog die stripslashes invoegen

<?php

include ('config.php');

if ($_POST['submit']) {

if (!$error) {

$titel = addslashes($_POST['titel']);
$datum = addslashes($_POST['datum']);
$short = addslashes($_POST['short']);
$nieuws = addslashes($_POST['nieuws']);
$foto = addslashes($_POST['foto']);
$fotokl = addslashes($_POST['fotokl']);
$date = addslashes($_POST['date']);
$titelFR = addslashes($_POST['titelFR']);
$shortFR = addslashes($_POST['shortFR']);
$nieuwsFR = addslashes($_POST['nieuwsFR']);
$fr = addslashes($_POST['fr']);


$query = "INSERT INTO nieuws
(titel,datum,short,nieuws,foto,fotokl,date,titelFR,shortFR,nieuwsFR,fr)
VALUES
('$titel','$datum','$short','$nieuws','$foto','$fotokl','$date','$titelFR','$shortFR','$nieuwsFR','$fr')";
mysql_query($query) or die (mysql_error());

?>
haal eerst je variabelen uit de string
deze pagina is gewoon toevoegen, er moet achteraf niks getoond worden

VOLLEDIGE PAGINA :

mod edit door: Robert Deiman

Graag alleen relevante code posten. Begin voor alle code met [ignore]
 en sluit aan het einde af met 
[/ignore] Dan is het tenminste overzichtelijk.

Robert Deiman


@Steve plaats alleen relevante code en niet je hele pagina. Ten tweede: Kijk eens de SQL beginners tutorial en PHP beginners tutorial door, want zo gaat dat niet he.

Addslashes moet je voor dit soort zaken niet gebruiken. Gebruik daar voor in de plaats gewoon [php]mysql_real_escape_string[/php].
PHP beginnershandleiding
http://www.phphulp.nl/php/tutorials/8/575/

SQL beginnershandleiding:
http://www.phphulp.nl/php/tutorials/3/576/

Je moet alle variabelen die SQL binnen gaan controleren op geldigheid, (moet het een getal zijn, zorg dan ook dat de input alleen een getal kan zijn) en gooi over alle input in de query's mysql_real_escape_string.

Addslashes maakt een rommeltje van alle data die je in je database gooit, bij mysql_real_escape_string wordt er alleen gezorgd dat alles wat je invoert ook als tekst in de database komt te staan, dus dat er geen mysql_injection mogelijk is.

Reageren