Ik gebruik in een cmsje fckeditor. De output zet ik dan in een mysql database. Alleen heb ik het probleem soms als er b.v. een ' in de tekst staat dat dit niet werkt omdat ik voor ik de tekst in de database zet er niks mee doe, alleen via een $_POST erin zetten. Dit moet uiteraard anders. Wat moet ik precies eerst met de output doen voor ik hem goed in de database kan zetten ?
door mysql_real_escape_string() halen.
Uiteraard, dat was hem ! Bedankt

Alleen nog 1 ding. Zoals ik het nu heb werkt het niet, wat moet ik anders doen ?

code :

<?
$berichtje = mysql_real_escape_string($_POST['FCKeditor1']);
  mysql_query("UPDATE nieuws SET titel = '".$_POST['titel']."', bericht = $berichtje, img = 'uploads/".$_FILES['afbeelding']['name']."', img_active = $checkBox WHERE id = '".$_GET['bewerkid']."'") or die(mysql_error());
?>


error :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '

Test message!!
, img_active = 2 WHERE id = '1'' at line 1
Gebruik deze functie ook over andere POST/GET/COOKIE/SESSION variabelen in je query.
Haal variabelen buiten quotes.
De rest zou in princiepe wel zo mogen blijven staan. De vraag is meer waarom werkt dit stukje niet terwijl het zonder die mysql_real_escape_string wel werkt ?
Omdat er karakters in staan waarin MySQL over de zeik gaat, omdat ze niet ge-escaped worden.
A oke, zou het zo wel moeten werken ? Of moet die upload ook nog gedaan worden, en zo ja hoe ? (kan nu niet gelijk testen vandaar de vraag even)


<?
$checkBox = (isset($_POST['check'])) ? $_POST['check'] : '1'; 
$titeltje = mysql_real_escape_string($_POST['titel']);
$berichtje = mysql_real_escape_string($_POST['FCKeditor1']);
$bewerkidtje = mysql_real_escape_string($_POST['bewerkid']);
  mysql_query("UPDATE nieuws SET titel = $titeltje, bericht = $berichtje, img = 'uploads/".$_FILES['afbeelding']['name']."', img_active = $checkBox WHERE id = $bewerkidtje") or die(mysql_error());
?>
Die $_FILES hoeft niet. Verder raad ik aan om variabelen buiten quotes te halen.
Oke, maar klopt de code nu dan of moet ik nog iets veranderen ?

[size=xsmall]Toevoeging op 03/08/2011 16:29:43:[/size]

Heb hem nu kunnen testen maar krijg nog steeds een error :


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1, bericht =

Test message!!
, img_active = 2 WHERE id =' at line 1
Nu klopt het nog niet...

En zo wel...

<?php
$result = mysql_query("
UPDATE nieuws 
    SET titel = '".$titeltje."', 
	bericht = '".$berichtje."', 
	img = 'uploads/".$_FILES['afbeelding']['name']."',
	img_active = '".$checkBox."' 
WHERE id = '".$bewerkidtje."'
");
if($result) {
// gelukt
} else {
// niet gelukt, mysql_error() tonen.
}
?>


Hierbij is het overschrijven van variabelen even buiten beschouwing gelaten.
Werkt helaas nog niet, krijg nu alleen een lege witte pagina...

Reageren