fckeditor tekst in database
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.
Alleen nog 1 ding. Zoals ik het nu heb werkt het niet, wat moet ik anders doen ?
code :
Code (php)
1
2
3
4
2
3
4
<?
$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());
?>
$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
Gewijzigd op 03/08/2011 15:49:03 door Roy Marijnissen
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.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$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());
?>
$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());
?>
Gewijzigd op 03/08/2011 16:03:54 door Roy Marijnissen
Die $_FILES hoeft niet. Verder raad ik aan om variabelen buiten quotes te halen.
Toevoeging op 03/08/2011 16:29:43:
Heb hem nu kunnen testen maar krijg nog steeds een error :
En zo wel...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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.
}
?>
$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.
Gewijzigd op 03/08/2011 16:31:47 door - Ariën -
Werkt helaas nog niet, krijg nu alleen een lege witte pagina...
Daar moet wel wat gebeuren he.
Klopt, heb het probleem al gevonden. Had het script verkeerd gekopieerd waardoor het variabele teken weg was. bedankt !