Gegevens invoeren in DB
Ik heb wat hulp nodig bij het maken van een scriptje om gegevens in een MySQL database in te voeren. Het volgende script gebruik ik nu en krijg de volgende foutmelding:
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
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
<?php
session_start();
?>
<?php
//set $rootdir
$rootdir="../";
//Make a connection to your database, this is required!
require ($rootdir . "system/connect.inc.php");
?>
<?php
if (isset($_POST['submit'])){
$computer=strip_tags($_POST['computer']);
$merk=strip_tags($_POST['merk']);
$model=strip_tags($_POST['model']);
$processor=strip_tags($_POST['processor']);
$mobo=strip_tags($_POST['mobo']);
$ram=strip_tags($_POST['ram']);
$hdd=strip_tags($_POST['hdd']);
$am=strip_tags($_POST['am']); //am = afspeel media
$video=strip_tags($_POST['video']);
$geluid=strip_tags($_POST['geluid']);
$usb=strip_tags($_POST['usb']);
$voeding=strip_tags($_POST['voeding']);
$overige=strip_tags($_POST['overige']);
$opmerkingen=strip_tags($_POST['opmerkingen']);
$sql="INSERT INTO specs (`computer`,`merk`,`model`,`processor`,`mobo`,`ram`,`hdd,`am`,`video`,`geluid`,`usb`,`voeding`,`overige`,`opmerkingen`) VALUES ('$computer','$merk','$model','$processor','$mobo','$ram','$hdd','$am','$video','$geluid','$usb','$voeding','$overige','$opmerkingen')";
$sql = mysql_query($sql);
if ($sql === false){
echo "Er is een fout gevonden: <br /><br />";
echo mysql_error();
}
}
?>
<?php
mysql_close();
?>
session_start();
?>
<?php
//set $rootdir
$rootdir="../";
//Make a connection to your database, this is required!
require ($rootdir . "system/connect.inc.php");
?>
<?php
if (isset($_POST['submit'])){
$computer=strip_tags($_POST['computer']);
$merk=strip_tags($_POST['merk']);
$model=strip_tags($_POST['model']);
$processor=strip_tags($_POST['processor']);
$mobo=strip_tags($_POST['mobo']);
$ram=strip_tags($_POST['ram']);
$hdd=strip_tags($_POST['hdd']);
$am=strip_tags($_POST['am']); //am = afspeel media
$video=strip_tags($_POST['video']);
$geluid=strip_tags($_POST['geluid']);
$usb=strip_tags($_POST['usb']);
$voeding=strip_tags($_POST['voeding']);
$overige=strip_tags($_POST['overige']);
$opmerkingen=strip_tags($_POST['opmerkingen']);
$sql="INSERT INTO specs (`computer`,`merk`,`model`,`processor`,`mobo`,`ram`,`hdd,`am`,`video`,`geluid`,`usb`,`voeding`,`overige`,`opmerkingen`) VALUES ('$computer','$merk','$model','$processor','$mobo','$ram','$hdd','$am','$video','$geluid','$usb','$voeding','$overige','$opmerkingen')";
$sql = mysql_query($sql);
if ($sql === false){
echo "Er is een fout gevonden: <br /><br />";
echo mysql_error();
}
}
?>
<?php
mysql_close();
?>
De foutmelding die ik daarbij krijg is:
Parse error: parse error in verwerken.php on line 37
Helaas kom ik er maar niet achter wat de fout is. Voor zover ik weet heb ik geen typfouten gemaakt. Ook de logs bieden geen uitkomst. Google heeft ook geen oplossing.
Alvast bedankt.
Gewijzigd op 01/01/1970 01:00:00 door Unwanted Registrations
Wat is regel 37?
Regel 37 is het einde van PHP, dus "?>" :).
Zou je je hele code eens kunnen geven? Want hier zit, zover ik kan zien, geen fout in.
Ik weet het, dat is het vreemde juist... Ik heb ook al mijn MySQL database nagekeken en daar waren 0 records in gevestigd, dus hij slaat ook niets op ofzo :S.
Is dit al je code? Want de code hier is maar 30 regels en de error spreekt over regel 37 van verwerken.php.
Dit is al mijn code... :). Had bij de eerste wijziging een foutje gemaakt :). Nu staat hij er helemaal op :).
Je weet hoe veld controle werkt?
Om te kijken of er een formulier wordt gepost gebruiken we $_SERVER['REQUEST_METHOD'] == 'POST') .
Haal die backtics eens uit je query.
Je query is SQL injection gevoelig.
Waarom steeds php openen en sluiten?
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
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
<?php
session_start();
//set $rootdir
$rootdir = "../";
//Make a connection to your database, this is required!
require ($rootdir . "system/connect.inc.php");
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
foreach($_POST as $field)
{
$_POST[$field] = mysql_real_escape_string(strip_tags($_POST[$field]));
}
$sql = "INSERT INTO specs (computer,merk,model,processor,mobo,ram,hdd,am,video,geluid,usb,voeding,overige,opmerkingen)";
$sql .= "VALUES ('" . $_POST['computer'] . "',
'" . $_POST['merk'] . "',
'" . $_POST['model'] . "',
'" . $_POST['processor'] . "',
'" . $_POST['mobo'] . "',
'" . $_POST['ram'] . "',
'" . $_POST['hdd'] . "',
'" . $_POST['am'] . "',
'" . $_POST['video'] . "',
'" . $_POST['geluid'] . "',
'" . $_POST['usb'] . "',
'" . $_POST['voeding'] . "',
'" . $_POST['overige'] . "',
'" . $_POST['opmerkingen'] . "')";
$res = mysql_query($sql);
if($res === false)
{
echo "Er is een fout gevonden: <br /><br />";
echo mysql_error();
}
}
mysql_close();
?>
session_start();
//set $rootdir
$rootdir = "../";
//Make a connection to your database, this is required!
require ($rootdir . "system/connect.inc.php");
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
foreach($_POST as $field)
{
$_POST[$field] = mysql_real_escape_string(strip_tags($_POST[$field]));
}
$sql = "INSERT INTO specs (computer,merk,model,processor,mobo,ram,hdd,am,video,geluid,usb,voeding,overige,opmerkingen)";
$sql .= "VALUES ('" . $_POST['computer'] . "',
'" . $_POST['merk'] . "',
'" . $_POST['model'] . "',
'" . $_POST['processor'] . "',
'" . $_POST['mobo'] . "',
'" . $_POST['ram'] . "',
'" . $_POST['hdd'] . "',
'" . $_POST['am'] . "',
'" . $_POST['video'] . "',
'" . $_POST['geluid'] . "',
'" . $_POST['usb'] . "',
'" . $_POST['voeding'] . "',
'" . $_POST['overige'] . "',
'" . $_POST['opmerkingen'] . "')";
$res = mysql_query($sql);
if($res === false)
{
echo "Er is een fout gevonden: <br /><br />";
echo mysql_error();
}
}
mysql_close();
?>
Verder zie ik geen fouten...
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
@GaMer13: ook jou scriptje werkt niet... Geen fouten maar ook geen records in de database.
@ark: Zoals ik al zei, net begonnen... Echter de website die ik nu probeer te maken blijft intern. Dus die komt niet op internet :).
In ieder geval alvast dank je wel voor de hulp :).
Geef de if-jes eens een else met een echo zodat je kunt zien of ze wel goed werken.
Ze werken prima. Ik heb een "else" geprobeerd, onderaan, maar ik krijg niet de echo dus het werkt wel... Alleen raar dat de database niet gevult word :S
Notice: Undefined index: Desktop in verwerken.php on line 25
En nog een foutmelding, misschien dat dit te maken heeft met de database:
Duplicate entry '0' for key 'PRIMARY'
Gewijzigd op 01/01/1970 01:00:00 door Unwanted Registrations
Dit is fout:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
foreach($_POST as $field)
{
$_POST[$field] = mysql_real_escape_string(strip_tags($_POST[$field]));
}
?>
foreach($_POST as $field)
{
$_POST[$field] = mysql_real_escape_string(strip_tags($_POST[$field]));
}
?>
Moet zo zijn:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
foreach($_POST as $key => $field)
{
$_POST[$key] = mysql_real_escape_string(strip_tags($_POST[$key]));
}
?>
foreach($_POST as $key => $field)
{
$_POST[$key] = mysql_real_escape_string(strip_tags($_POST[$key]));
}
?>
Oke, dat ga ik uitproberen... :). En ik heb wat goed nieuws... :O. Er is een record in de database! Alleen nu snap ik waarom die error er was van MySQL... Hij probeerde een rij met id 0 nogmaals toe te voegen... Dus even kijken of dit probleem blijft bestaan :)
Staat die wel op auto_increment?
Zou handig zijn als je ook even je mysql tabel kan posten.