FOUT: You have an error in your SQL syntax;
FOUT: 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 'gebruiker = 'Roberttt' gebruiker_id = '4' datum = '8 Juni 2006 18:14' ' at line 4
Het vreemde is dat hij dit niet altijd doet... Soms kan ik gewoon een artikel toevoegen en de andere keer weer niet.
Dit is het script:
Code (php)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?
// Controleren of er gesubmit is
if ($_POST["submit"]) {
// De geposte variabelen ff op een rijtje zetten, lekker overzichtelijk
$titel = $_POST['titel'];
$avatar = $_POST['avatar'];
$korte_tekst = $_POST['korte_tekst'];
$tekst = $_POST['tekst'];
$graphics = $_POST['graphics'];
$geluid = $_POST['geluid'];
$gameplay = $_POST['gameplay'];
$categorie = $_POST['categorie'];
$game_naam = $_POST['game_naam'];
$screenshot = $_POST['screenshot'];
// Controle of alle velden ingevuld zijn
if ($avatar=="" || $titel=="" || $korte_tekst=="" || $tekst=="") {
echo "Vul alle velden in<br><br>Klik <a href='javascript:history.back(-1)'>hier</a> om terug te gaan";
}
else {
//UBB code's toevoegen
$tekst = nl2br($tekst);
$korte_tekst = nl2br($korte_tekst);
include"./includes/ubb.php";
// Daarna het nieuws toevoegen in de tabel, als het misgaat weer een mysql_error
// Bij ID is niets ingevuld, deze gaat automatisch 1 omhoog door de auto_increment
$toevoegen =
"INSERT INTO artikel
SET
titel = '$titel'
gebruiker = '$nickname'
gebruiker_id = '$memberid'
datum = '$datum'
avatar = '$avatar'
korte_tekst = '$korte_tekst'
tekst = '$tekst'
graphics = '$graphics'
geluid = '$geluid'
gameplay = '$gameplay'
categorie = '$categorie'
game_naam = '$game_naam'
screenshots = '$screenshots'
";
$result = mysql_query ($qe) or die ('FOUT: ' . mysql_error());
// Als dat allemaal goed gaat komt er dit te staan, met een overzichtje van wat je hebt ingetypt
echo "<span class='bericht'>
Het artikel is succesvol toegevoegd!<br><br>
<b>Titel:</b> $titel<br>
<b>Datum:</b> $datum<br>
<b>Gebruiker:</b> $nickname<br>
<b>Intro:</b> $korte_tekst<br>
<b>Inhoud:</b> $tekst<br>
<b>Screenshot:</b> $screenshot<br>
</span>
";
}
}
// Als er niet gesubmit is dan komt het formulier er te staan
else {
echo "<span class='bericht'>
<form method='post' action='http://www.pspweb.nl/admin/index.php?p=artikeltoevoegen'>
Titel:<br> <input class='reactievak' type='text' size='40' name='titel'><br>
Avatar:<br> <input class='reactievak' type='text' size='40' name='avatar'> Alleen de naam van het plaatje invoeren, geen .jpg!<br>
Intro:<br> <textarea class='reactievak' cols='100' rows='4' name='korte_tekst'></textarea><br>
Inhoud:<br> <textarea class='reactievak' cols='100' rows='14' name='tekst'></textarea><br>
Cijfer graphics:<br> <input class='reactievak' type='text' size='40' name='graphics'><br>
Cijfer geluid:<br> <input class='reactievak' type='text' size='40' name='geluid'><br>
Cijfer gameplay:<br> <input class='reactievak' type='text' size='40' name='gameplay'><br>
Categorie:<br> <input class='reactievak' type='text' size='40' name='categorie'> review, preview of special<br>
Game naam:<br> <input class='reactievak' type='text' size='40' name='game_naam'> Naam van de game zoals die in de gamedatabase staat.<br>
Screenshot:<br> <textarea class='reactievak' type='text' cols='50' rows='4' name='screenshot'></textarea><br>
Afbeeldingen gescheiden door een ',' alleen de map en naam van plaatje. Geen .jpg!<br>
<input class='knop' type='submit' name='submit' value='Toevoegen'> <input class='knop' type='reset' value='Leegmaken'>
</span>
";
}
?>
// Controleren of er gesubmit is
if ($_POST["submit"]) {
// De geposte variabelen ff op een rijtje zetten, lekker overzichtelijk
$titel = $_POST['titel'];
$avatar = $_POST['avatar'];
$korte_tekst = $_POST['korte_tekst'];
$tekst = $_POST['tekst'];
$graphics = $_POST['graphics'];
$geluid = $_POST['geluid'];
$gameplay = $_POST['gameplay'];
$categorie = $_POST['categorie'];
$game_naam = $_POST['game_naam'];
$screenshot = $_POST['screenshot'];
// Controle of alle velden ingevuld zijn
if ($avatar=="" || $titel=="" || $korte_tekst=="" || $tekst=="") {
echo "Vul alle velden in<br><br>Klik <a href='javascript:history.back(-1)'>hier</a> om terug te gaan";
}
else {
//UBB code's toevoegen
$tekst = nl2br($tekst);
$korte_tekst = nl2br($korte_tekst);
include"./includes/ubb.php";
// Daarna het nieuws toevoegen in de tabel, als het misgaat weer een mysql_error
// Bij ID is niets ingevuld, deze gaat automatisch 1 omhoog door de auto_increment
$toevoegen =
"INSERT INTO artikel
SET
titel = '$titel'
gebruiker = '$nickname'
gebruiker_id = '$memberid'
datum = '$datum'
avatar = '$avatar'
korte_tekst = '$korte_tekst'
tekst = '$tekst'
graphics = '$graphics'
geluid = '$geluid'
gameplay = '$gameplay'
categorie = '$categorie'
game_naam = '$game_naam'
screenshots = '$screenshots'
";
$result = mysql_query ($qe) or die ('FOUT: ' . mysql_error());
// Als dat allemaal goed gaat komt er dit te staan, met een overzichtje van wat je hebt ingetypt
echo "<span class='bericht'>
Het artikel is succesvol toegevoegd!<br><br>
<b>Titel:</b> $titel<br>
<b>Datum:</b> $datum<br>
<b>Gebruiker:</b> $nickname<br>
<b>Intro:</b> $korte_tekst<br>
<b>Inhoud:</b> $tekst<br>
<b>Screenshot:</b> $screenshot<br>
</span>
";
}
}
// Als er niet gesubmit is dan komt het formulier er te staan
else {
echo "<span class='bericht'>
<form method='post' action='http://www.pspweb.nl/admin/index.php?p=artikeltoevoegen'>
Titel:<br> <input class='reactievak' type='text' size='40' name='titel'><br>
Avatar:<br> <input class='reactievak' type='text' size='40' name='avatar'> Alleen de naam van het plaatje invoeren, geen .jpg!<br>
Intro:<br> <textarea class='reactievak' cols='100' rows='4' name='korte_tekst'></textarea><br>
Inhoud:<br> <textarea class='reactievak' cols='100' rows='14' name='tekst'></textarea><br>
Cijfer graphics:<br> <input class='reactievak' type='text' size='40' name='graphics'><br>
Cijfer geluid:<br> <input class='reactievak' type='text' size='40' name='geluid'><br>
Cijfer gameplay:<br> <input class='reactievak' type='text' size='40' name='gameplay'><br>
Categorie:<br> <input class='reactievak' type='text' size='40' name='categorie'> review, preview of special<br>
Game naam:<br> <input class='reactievak' type='text' size='40' name='game_naam'> Naam van de game zoals die in de gamedatabase staat.<br>
Screenshot:<br> <textarea class='reactievak' type='text' cols='50' rows='4' name='screenshot'></textarea><br>
Afbeeldingen gescheiden door een ',' alleen de map en naam van plaatje. Geen .jpg!<br>
<input class='knop' type='submit' name='submit' value='Toevoegen'> <input class='knop' type='reset' value='Leegmaken'>
</span>
";
}
?>
Weten jullie de oplossing?
dus:
"INSERT INTO artikel
SET
titel = '$titel',
gebruiker = '$nickname',
gebruiker_id = '$memberid',
etccc
btw:
Lijk me sterk dat hij het ooit wel gedaan heeft:p
Gewijzigd op 01/01/1970 01:00:00 door stefan
Verder is het een idee om eens wat aan beveiliging te gaan doen, dit script heeft de deuren wagenwijd openstaan voor SQL-injection. Om nog maar niet te spreken over andere ellende.
Waarom gebruikt iedereen ineens SET bij een INSERT voor zover ik weet hoort dat bij een UPDATE
http://www.phphulp.nl/php/tutorials/3/2/2/ .
Maar het werkt nog steeds niet, nu met de komma's enzo.
Van dat Set, dat staat hier Maar het werkt nog steeds niet, nu met de komma's enzo.
Code (php)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<img src="images/artikeltoevoegen.jpg">
<?
// Controleren of er gesubmit is
if ($_POST["submit"]) {
// De geposte variabelen ff op een rijtje zetten, lekker overzichtelijk
$titel = $_POST['titel'];
$avatar = $_POST['avatar'];
$korte_tekst = $_POST['korte_tekst'];
$tekst = $_POST['tekst'];
$graphics = $_POST['graphics'];
$geluid = $_POST['geluid'];
$gameplay = $_POST['gameplay'];
$categorie = $_POST['categorie'];
$game_naam = $_POST['game_naam'];
$screenshot = $_POST['screenshot'];
// Controle of alle velden ingevuld zijn
if ($avatar=="" || $titel=="" || $korte_tekst=="" || $tekst=="") {
echo "Vul alle velden in<br><br>Klik <a href='javascript:history.back(-1)'>hier</a> om terug te gaan";
}
else {
//UBB code's toevoegen
$tekst = nl2br($tekst);
$korte_tekst = nl2br($korte_tekst);
include"./includes/ubb.php";
// Daarna het nieuws toevoegen in de tabel, als het misgaat weer een mysql_error
// Bij ID is niets ingevuld, deze gaat automatisch 1 omhoog door de auto_increment
$toevoegen =
"INSERT INTO artikel
SET
titel = '$titel',
gebruiker = '$nickname',
gebruiker_id = '$memberid',
datum = '$datum',
avatar = '$avatar',
korte_tekst = '$korte_tekst',
tekst = '$tekst',
graphics = '$graphics',
geluid = '$geluid',
gameplay = '$gameplay',
categorie = '$categorie',
game_naam = '$game_naam',
screenshots = '$screenshots',
";
$result = mysql_query ($toevoegen) or die ('FOUT: ' . mysql_error());
// Als dat allemaal goed gaat komt er dit te staan, met een overzichtje van wat je hebt ingetypt
echo "<span class='bericht'>
Het artikel is succesvol toegevoegd!<br><br>
<b>Titel:</b> $titel<br>
<b>Datum:</b> $datum<br>
<b>Gebruiker:</b> $nickname<br>
<b>Intro:</b> $korte_tekst<br>
<b>Inhoud:</b> $tekst<br>
<b>Screenshot:</b> $screenshot<br>
</span>
";
}
}
// Als er niet gesubmit is dan komt het formulier er te staan
else {
echo "<span class='bericht'>
<form method='post' action='http://www.pspweb.nl/admin/index.php?p=artikeltoevoegen'>
Titel:<br> <input class='reactievak' type='text' size='40' name='titel'><br>
Avatar:<br> <input class='reactievak' type='text' size='40' name='avatar'> Alleen de naam van het plaatje invoeren, geen .jpg!<br>
Intro:<br> <textarea class='reactievak' cols='100' rows='4' name='korte_tekst'></textarea><br>
Inhoud:<br> <textarea class='reactievak' cols='100' rows='14' name='tekst'></textarea><br>
Cijfer graphics:<br> <input class='reactievak' type='text' size='40' name='graphics'><br>
Cijfer geluid:<br> <input class='reactievak' type='text' size='40' name='geluid'><br>
Cijfer gameplay:<br> <input class='reactievak' type='text' size='40' name='gameplay'><br>
Categorie:<br> <input class='reactievak' type='text' size='40' name='categorie'> review, preview of special<br>
Game naam:<br> <input class='reactievak' type='text' size='40' name='game_naam'> Naam van de game zoals die in de gamedatabase staat.<br>
Screenshot:<br> <textarea class='reactievak' type='text' cols='50' rows='4' name='screenshot'></textarea><br>
Afbeeldingen gescheiden door een ',' alleen de map en naam van plaatje. Geen .jpg!<br>
<input class='knop' type='submit' name='submit' value='Toevoegen'> <input class='knop' type='reset' value='Leegmaken'>
</span>
";
}
?>
<?
// Controleren of er gesubmit is
if ($_POST["submit"]) {
// De geposte variabelen ff op een rijtje zetten, lekker overzichtelijk
$titel = $_POST['titel'];
$avatar = $_POST['avatar'];
$korte_tekst = $_POST['korte_tekst'];
$tekst = $_POST['tekst'];
$graphics = $_POST['graphics'];
$geluid = $_POST['geluid'];
$gameplay = $_POST['gameplay'];
$categorie = $_POST['categorie'];
$game_naam = $_POST['game_naam'];
$screenshot = $_POST['screenshot'];
// Controle of alle velden ingevuld zijn
if ($avatar=="" || $titel=="" || $korte_tekst=="" || $tekst=="") {
echo "Vul alle velden in<br><br>Klik <a href='javascript:history.back(-1)'>hier</a> om terug te gaan";
}
else {
//UBB code's toevoegen
$tekst = nl2br($tekst);
$korte_tekst = nl2br($korte_tekst);
include"./includes/ubb.php";
// Daarna het nieuws toevoegen in de tabel, als het misgaat weer een mysql_error
// Bij ID is niets ingevuld, deze gaat automatisch 1 omhoog door de auto_increment
$toevoegen =
"INSERT INTO artikel
SET
titel = '$titel',
gebruiker = '$nickname',
gebruiker_id = '$memberid',
datum = '$datum',
avatar = '$avatar',
korte_tekst = '$korte_tekst',
tekst = '$tekst',
graphics = '$graphics',
geluid = '$geluid',
gameplay = '$gameplay',
categorie = '$categorie',
game_naam = '$game_naam',
screenshots = '$screenshots',
";
$result = mysql_query ($toevoegen) or die ('FOUT: ' . mysql_error());
// Als dat allemaal goed gaat komt er dit te staan, met een overzichtje van wat je hebt ingetypt
echo "<span class='bericht'>
Het artikel is succesvol toegevoegd!<br><br>
<b>Titel:</b> $titel<br>
<b>Datum:</b> $datum<br>
<b>Gebruiker:</b> $nickname<br>
<b>Intro:</b> $korte_tekst<br>
<b>Inhoud:</b> $tekst<br>
<b>Screenshot:</b> $screenshot<br>
</span>
";
}
}
// Als er niet gesubmit is dan komt het formulier er te staan
else {
echo "<span class='bericht'>
<form method='post' action='http://www.pspweb.nl/admin/index.php?p=artikeltoevoegen'>
Titel:<br> <input class='reactievak' type='text' size='40' name='titel'><br>
Avatar:<br> <input class='reactievak' type='text' size='40' name='avatar'> Alleen de naam van het plaatje invoeren, geen .jpg!<br>
Intro:<br> <textarea class='reactievak' cols='100' rows='4' name='korte_tekst'></textarea><br>
Inhoud:<br> <textarea class='reactievak' cols='100' rows='14' name='tekst'></textarea><br>
Cijfer graphics:<br> <input class='reactievak' type='text' size='40' name='graphics'><br>
Cijfer geluid:<br> <input class='reactievak' type='text' size='40' name='geluid'><br>
Cijfer gameplay:<br> <input class='reactievak' type='text' size='40' name='gameplay'><br>
Categorie:<br> <input class='reactievak' type='text' size='40' name='categorie'> review, preview of special<br>
Game naam:<br> <input class='reactievak' type='text' size='40' name='game_naam'> Naam van de game zoals die in de gamedatabase staat.<br>
Screenshot:<br> <textarea class='reactievak' type='text' cols='50' rows='4' name='screenshot'></textarea><br>
Afbeeldingen gescheiden door een ',' alleen de map en naam van plaatje. Geen .jpg!<br>
<input class='knop' type='submit' name='submit' value='Toevoegen'> <input class='knop' type='reset' value='Leegmaken'>
</span>
";
}
?>
Quote:
Dat betekent ook dat wanneer er geen waardes meer zijn, je geen komma achter de laatste waarde zet. Er valt tenslotte niets te scheiden...Verschillende waardes worden door komma's gescheiden.
Ook dat werkt niet....
Robert:
Goh, geweldig. Maar wat dacht je van een foutmelding? Of mogen we daar naar gaan raden? Op deze manier kan niemand jou fatsoenlijk helpen, dat kun je zelf toch ook wel bedenken?Ook dat werkt niet....
Frank:
Robert:
Goh, geweldig. Maar wat dacht je van een foutmelding? Of mogen we daar naar gaan raden? Op deze manier kan niemand jou fatsoenlijk helpen, dat kun je zelf toch ook wel bedenken?Ook dat werkt niet....
Sorry, krijg precies dezelfde foutmelding...
Namelijk:
FOUT: 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 's het wel, want deze game moet niemand zijn neus voorbij laten gaan.
', ' at line 9
Owja misschien niet onbelangrijk, me webhost draait op php 5 en mysql 5.1.9 beta. Waarom beta omdat 5.0 niet stabiel was en naar 4 niet meer kon ofzo. Ik kon er helaas niets aan doen :(
Gewijzigd op 01/01/1970 01:00:00 door Robert
Lees het artikel over SQL-injection ook eens.
Jouw probleem heeft overigens niets te maken met de php- of mysql-versie, het is gewoon een gebrek aan controles en passende oplossingen.
Ok zal er eens naar kijken
's het wel, want deze game moet niemand zijn neus voorbij laten gaan.
Deze gebruikt MYSQL namelijk om waarden te scheiden.
Volgens mij moet je zoiets doen:
$korte_tekst = addslashes($_POST['korte_tekst']);
Maar goed, zolang we niet de query te zien krijgen (echo $query;) moeten we daar naar raden.
addslashes() is natuurlijk verplicht, welke waarde je ook probeert weg te schrijven. Daar zijn geen vragen over.
Gewijzigd op 01/01/1970 01:00:00 door Robert
Code (php)
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
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
<?php
// bescherming tegen mysql injection
function quote_smart($value)
{
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if (version_compare(phpversion(), "4.3.0") == "-1") {
return mysql_escape_string($value);
} else {
return mysql_real_escape_string($value);
}
}
function check_array(&$array)
{
foreach ($array as $key => $value) {
$value = quote_smart($value);
$array[$key] = $value;
}
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
check_array($_POST);
}
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
check_array($_GET);
}
?>
// bescherming tegen mysql injection
function quote_smart($value)
{
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if (version_compare(phpversion(), "4.3.0") == "-1") {
return mysql_escape_string($value);
} else {
return mysql_real_escape_string($value);
}
}
function check_array(&$array)
{
foreach ($array as $key => $value) {
$value = quote_smart($value);
$array[$key] = $value;
}
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
check_array($_POST);
}
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
check_array($_GET);
}
?>
bij $value, moet ik $tekst invullen? neem ik aan?
Maar ga er gewoon eens mee testen, met een klein simpel scriptje, en kijk wat er gebeurd. Zolang je niet snapt wat er gebeurd, moet je dit niet gebruiken!
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Heel erg bedankt voor je hulp!