Inschrijvingsformulier met extra opties.
Ik ben bezig met het maken van een inschrijfformulier voor een workshop-dag.
Dit is de website: http://dendri0.freehostia.com/spolt/
Hij is nog 100% HTML. Maar had graag de ingevulde gegevens weggeschreven in mijn MySQL database, zodat ik het dan in Excel of Access kan overzetten.
Maar nu is het probleem het wilt niet lukken,
Er kunnen maximaal 200 mensen zich opgeven voor een workshop, ik wil graag dat er foutmelding komt, ofdat de workshop niet meer kiesbaar is in het menu. Maargoed dat is zorg voor later.
Ik hoop dat mensen me opweg kunnen helpen.
Heb veel gelezen en geprobeerd maar zie door de bomen het bos niet meer.
DennizZ.
EDIT:
Code (php)
1
2
3
4
2
3
4
$sql = "INSERT INTO Klant (Voornaam, Tussenvoegsel, Achternaam, School,
Keuze1, Keuze2, Reserve1, Reserve2, Reserve3) VALUES ('$voornaam',
'$tussenvoegsel', '$achternaam', '$school', '$KEUZE1', '$KEUZE2',
'$RESERVE1', '$RESERVE2', 'RESERVE3')";
Keuze1, Keuze2, Reserve1, Reserve2, Reserve3) VALUES ('$voornaam',
'$tussenvoegsel', '$achternaam', '$school', '$KEUZE1', '$KEUZE2',
'$RESERVE1', '$RESERVE2', 'RESERVE3')";
Ben ik hier mee op de goede weg? Bij alle input velden heb ik in HTML de namen hetzelfde als achter het $ teken. En de namen zonder $ ervoor zijn mijn database tabellen.
Ik heb dit van een ander script gekopieerd en aangepast.
Gewijzigd op 01/01/1970 01:00:00 door Dennis Driessen
Dit is natuurlijk niet 100% compleet, maar je snapt 't idee wel:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql = sprintf(
"INSERT INTO Klant (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($_POST["voornaam"],
mysql_real_escape_string($_POST["tussenvoegsel"],
# etc..
);
?>
$sql = sprintf(
"INSERT INTO Klant (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($_POST["voornaam"],
mysql_real_escape_string($_POST["tussenvoegsel"],
# etc..
);
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$sql = sprintf(
"INSERT INTO inschrijvingen (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($_POST["VNAAM"],
mysql_real_escape_string($_POST["TSSV "],
mysql_real_escape_string($_POST["ANAAM"],
mysql_real_escape_string($_POST["SCHOOL"],
mysql_real_escape_string($_POST["KEUZE1"],
mysql_real_escape_string($_POST["KEUZE2"],
mysql_real_escape_string($_POST["RESERVE1"],
mysql_real_escape_string($_POST["RESERVE2"],
mysql_real_escape_string($_POST["RESERVE3"],
);
?>
$sql = sprintf(
"INSERT INTO inschrijvingen (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($_POST["VNAAM"],
mysql_real_escape_string($_POST["TSSV "],
mysql_real_escape_string($_POST["ANAAM"],
mysql_real_escape_string($_POST["SCHOOL"],
mysql_real_escape_string($_POST["KEUZE1"],
mysql_real_escape_string($_POST["KEUZE2"],
mysql_real_escape_string($_POST["RESERVE1"],
mysql_real_escape_string($_POST["RESERVE2"],
mysql_real_escape_string($_POST["RESERVE3"],
);
?>
Ik heb nou deze code, ik heb bij die mysql_real_escape_string de waarde ingevuld die ik bij het tekstveld heb ingevuld bij name="...".
Dus <input name="VNAAM"> en mysql_real_escape_string($_POST["VNAAM"],
Dat klopt tot dusver?
Dan moet ik toch nog de submit button aanpassen oid en dan is het klaar?
(en pgFrank zou ook nog willen dat je er een mysql_affected_rows bij doet, maar da's niet noodzakelijk) en dan ben je inderdaad wel ver ja.
p.s. bij TSSV zit nog een tab.. die moet weg.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$sql = sprintf(
"INSERT INTO inschrijvingen (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($_POST["VNAAM"],
mysql_real_escape_string($_POST["TSSV"],
mysql_real_escape_string($_POST["ANAAM"],
mysql_real_escape_string($_POST["SCHOOL"],
mysql_real_escape_string($_POST["KEUZE1"],
mysql_real_escape_string($_POST["KEUZE2"],
mysql_real_escape_string($_POST["RESERVE1"],
mysql_real_escape_string($_POST["RESERVE2"],
mysql_real_escape_string($_POST["RESERVE3"],
);
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
?>
$sql = sprintf(
"INSERT INTO inschrijvingen (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($_POST["VNAAM"],
mysql_real_escape_string($_POST["TSSV"],
mysql_real_escape_string($_POST["ANAAM"],
mysql_real_escape_string($_POST["SCHOOL"],
mysql_real_escape_string($_POST["KEUZE1"],
mysql_real_escape_string($_POST["KEUZE2"],
mysql_real_escape_string($_POST["RESERVE1"],
mysql_real_escape_string($_POST["RESERVE2"],
mysql_real_escape_string($_POST["RESERVE3"],
);
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
?>
En dan zet ik daar nog bij:
Ik heb deze informatie uit de SQL beginners cursus. Dus ik ga ervanuit dat dit verder klopt.
Bedankt voor de hulp Gerben tot nog toe!
Moet ik nog wat aan de HTML veranderen verder of wilt het zo ook wel?
EDIT:
====
Dit levert mij een mooie error op:
Code (php)
1
Parse error: parse error, unexpected ')' in /home/www/dennisdriessen.com/spolt/index.php on line 15
Het heeft wat te maken met de ); denk ik want die zit op regel 15.
Ik heb deze veranderd naar deze code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$sql = sprintf(
"INSERT INTO inschrijvingen (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($_POST["VNAAM"],
mysql_real_escape_string($_POST["TSSV"],
mysql_real_escape_string($_POST["ANAAM"],
mysql_real_escape_string($_POST["SCHOOL"],
mysql_real_escape_string($_POST["KEUZE1"],
mysql_real_escape_string($_POST["KEUZE2"],
mysql_real_escape_string($_POST["RESERVE1"],
mysql_real_escape_string($_POST["RESERVE2"],
mysql_real_escape_string($_POST["RESERVE3"],');
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
?>
$sql = sprintf(
"INSERT INTO inschrijvingen (Voornaam, Tussenvoegsel, Achternaam, School, Keuze1, Keuze2, Reserve1, Reserve2, Reserve3)
VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string($_POST["VNAAM"],
mysql_real_escape_string($_POST["TSSV"],
mysql_real_escape_string($_POST["ANAAM"],
mysql_real_escape_string($_POST["SCHOOL"],
mysql_real_escape_string($_POST["KEUZE1"],
mysql_real_escape_string($_POST["KEUZE2"],
mysql_real_escape_string($_POST["RESERVE1"],
mysql_real_escape_string($_POST["RESERVE2"],
mysql_real_escape_string($_POST["RESERVE3"],');
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
?>
En dan krijg ik een error dat er op regel 23 een unexpected > zou staan.
Gewijzigd op 01/01/1970 01:00:00 door Dennis Driessen
Ook na alle aanpassingen.
Huidige code register.php
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
include_once "functions.php";
connect();
if(!$_POST['submit']){
echo "<table border=\"0\" cellspacing=\"3\" cellpadding=
\"3\">\n";
echo "<form method=\"post\" action=\"register.php\">\n";
echo "<td colspan=\"2\" align=\"center\">Registration Form\n";
echo "Voornaam:<\td input type=\"text\" name\"vnaam\">\n";
echo "Tussenvoegsel:<\td input type=\"text\" name\"tssv\">\n";
echo "Achternaam:<\td input type=\"text\" name\"anaam\">\n";
echo "E-mailadres:<\td input type=\"text\" name\"email\">\n";
echo "School:<\td input type=\"text\" name\"school\">\n";
echo "Eerste keuze:<\td input type=\"text\" name\"keuze1\">\n";
echo "Tweede keuze:<\td input type=\"text\" name\"keuze2\">\n";
echo "Eerste reservekeuze:<\td input type=\"text\" name\"reserve1\">\n";
echo "Tweede reservekeuze:<\td input type=\"text\" name\"reserve2\">\n";
echo "Derde reservekeuze:<\td input type=\"text\" name\"reserve3\">\n";
echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit\" value=\"Register\">\n";
echo "</form></table>\n";
}else {
$vnaam = protect($_POST['vnaam']);
$tssv = protect($_POST['tssv']);
$anaam = protect($_POST['anaam']);
$email = protect($_POST['email']);
$keuze1 = protect($_POST['keuze1']);
$keuze2 = protect($_POST['keuze2']);
$reserve1 = protect($_POST['reserve1']);
$reserve2 = protect($_POST['reserve2']);
$reserve3 = protect($_POST['reserve3']);
$errors = array();
if(!$vnaam) {
$errors[] = "Het veld voornaam is niet ingevuld.";
}
if(!$tssv) {
$errors[] = "Het veld tussenvoegsel is niet ingevuld.";
}
if(!$anaam) {
$errors[] = "Het veld achternaam is niet ingevuld.";
}
if(!$email) {
$errors[] = "Het veld e-mailadres is niet ingevuld.";
}
if(!$school) {
$errors[] = "Het veld school is niet ingevuld.";
}
if(!$keuze1) {
$errors[] = "Het veld keuze is niet ingevuld.";
}
if(!$keuze2) {
$errors[] = "Het veld keuze 2 is niet ingevuld.";
}
if(!$reserve1) {
$errors[] = "Het veld reserve 1 is niet ingevuld.";
}
if(!$reserve2) {
$errors[] = "Het veld reserve 2 is niet ingevuld.";
}
if(!$reserve3) {
$errors[] = "Het veld reserve 3 is niet ingevuld.";
}
if(!$school) {
$errors[] = "Het veld school is niet ingevuld.";
}
if($email){
$sql = "SELECT * FROM 'inschrijvingen' WHERE 'email'={$email}";
$res = mysql_query($sql2) or die(mysql_error());
if(mysql_num_rows($res) > 0){
$errors[] = "Er heeft zich al iemand opgegeven met dit e-mailadres";
}
}
if(count($errors) > 0){
foreach($errors AS $error){
echo $error . "<br>\n";
}
}else {
$sql2 = "INSERT INTO 'inschrijvingen'
('vnaam','tssv','anaam','email','school','keuze1','keuze2',
'reserve1','reserve2','reserve3')
VALUES ('vnaam','tssv','anaam','email','school','keuze1','keuze2',
'reserve1','reserve2','reserve3') ";
$res4 = mysql_query($sql2) or die (mysql_eror());
echo "Bedankt voor je aanmelding! Het aanmelden is succesvol voltooid.";
}
}
?>
include_once "functions.php";
connect();
if(!$_POST['submit']){
echo "<table border=\"0\" cellspacing=\"3\" cellpadding=
\"3\">\n";
echo "<form method=\"post\" action=\"register.php\">\n";
echo "<td colspan=\"2\" align=\"center\">Registration Form\n";
echo "Voornaam:<\td input type=\"text\" name\"vnaam\">\n";
echo "Tussenvoegsel:<\td input type=\"text\" name\"tssv\">\n";
echo "Achternaam:<\td input type=\"text\" name\"anaam\">\n";
echo "E-mailadres:<\td input type=\"text\" name\"email\">\n";
echo "School:<\td input type=\"text\" name\"school\">\n";
echo "Eerste keuze:<\td input type=\"text\" name\"keuze1\">\n";
echo "Tweede keuze:<\td input type=\"text\" name\"keuze2\">\n";
echo "Eerste reservekeuze:<\td input type=\"text\" name\"reserve1\">\n";
echo "Tweede reservekeuze:<\td input type=\"text\" name\"reserve2\">\n";
echo "Derde reservekeuze:<\td input type=\"text\" name\"reserve3\">\n";
echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit\" value=\"Register\">\n";
echo "</form></table>\n";
}else {
$vnaam = protect($_POST['vnaam']);
$tssv = protect($_POST['tssv']);
$anaam = protect($_POST['anaam']);
$email = protect($_POST['email']);
$keuze1 = protect($_POST['keuze1']);
$keuze2 = protect($_POST['keuze2']);
$reserve1 = protect($_POST['reserve1']);
$reserve2 = protect($_POST['reserve2']);
$reserve3 = protect($_POST['reserve3']);
$errors = array();
if(!$vnaam) {
$errors[] = "Het veld voornaam is niet ingevuld.";
}
if(!$tssv) {
$errors[] = "Het veld tussenvoegsel is niet ingevuld.";
}
if(!$anaam) {
$errors[] = "Het veld achternaam is niet ingevuld.";
}
if(!$email) {
$errors[] = "Het veld e-mailadres is niet ingevuld.";
}
if(!$school) {
$errors[] = "Het veld school is niet ingevuld.";
}
if(!$keuze1) {
$errors[] = "Het veld keuze is niet ingevuld.";
}
if(!$keuze2) {
$errors[] = "Het veld keuze 2 is niet ingevuld.";
}
if(!$reserve1) {
$errors[] = "Het veld reserve 1 is niet ingevuld.";
}
if(!$reserve2) {
$errors[] = "Het veld reserve 2 is niet ingevuld.";
}
if(!$reserve3) {
$errors[] = "Het veld reserve 3 is niet ingevuld.";
}
if(!$school) {
$errors[] = "Het veld school is niet ingevuld.";
}
if($email){
$sql = "SELECT * FROM 'inschrijvingen' WHERE 'email'={$email}";
$res = mysql_query($sql2) or die(mysql_error());
if(mysql_num_rows($res) > 0){
$errors[] = "Er heeft zich al iemand opgegeven met dit e-mailadres";
}
}
if(count($errors) > 0){
foreach($errors AS $error){
echo $error . "<br>\n";
}
}else {
$sql2 = "INSERT INTO 'inschrijvingen'
('vnaam','tssv','anaam','email','school','keuze1','keuze2',
'reserve1','reserve2','reserve3')
VALUES ('vnaam','tssv','anaam','email','school','keuze1','keuze2',
'reserve1','reserve2','reserve3') ";
$res4 = mysql_query($sql2) or die (mysql_eror());
echo "Bedankt voor je aanmelding! Het aanmelden is succesvol voltooid.";
}
}
?>
en functions.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function protect($string)
{
$string = mysql_real_escape_string($string);
$string = strip_tags($string);
$string = addslashes($string);
return $string;
}
function connect()
{
$con = mysql_connect(localhost, database_naam, 'database_wachtwoord') or die (mysql_error());
$db = mysql_select_db(inschrijvingen, $con);
}
?>
function protect($string)
{
$string = mysql_real_escape_string($string);
$string = strip_tags($string);
$string = addslashes($string);
return $string;
}
function connect()
{
$con = mysql_connect(localhost, database_naam, 'database_wachtwoord') or die (mysql_error());
$db = mysql_select_db(inschrijvingen, $con);
}
?>
En de url is:
Quote:
Ben echt ten einde raad.
Echo je query vlak voordat je 'm uitvoert.
Dat doet mijn script nu toch al?
$res = mysql_query($sql2) or die(mysql_error());
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
if(count($errors) > 0){
foreach($errors AS $error){
echo $error . "<br>\n";
}
}else {
$sql2 = "INSERT INTO 'inschrijvingen'
('vnaam','tssv','anaam','email','school')
VALUES ('$vnaam','$tssv','$anaam','$email','$school') ";
$res4 = mysql_query($sql2) or die (mysql_eror());
echo "Bedankt voor je aanmelding! Het aanmelden is succesvol voltooid.";
}
foreach($errors AS $error){
echo $error . "<br>\n";
}
}else {
$sql2 = "INSERT INTO 'inschrijvingen'
('vnaam','tssv','anaam','email','school')
VALUES ('$vnaam','$tssv','$anaam','$email','$school') ";
$res4 = mysql_query($sql2) or die (mysql_eror());
echo "Bedankt voor je aanmelding! Het aanmelden is succesvol voltooid.";
}
Heb dat gedeelte eruit gehaald, SanThe. Maar ik had nog een typo gevonden.
$res4 = mysql_query($sql2) or die (mysql_eror());
$res4 = mysql_query($sql2) or die (mysql_error());
Maar nu krijg ik deze error:
Géén quotes om de tabelnamen heen zetten.