probleem vragenlijst
ik heb een vragenlijst dat de entry's in en database zet, maar sinds enkele dagen gaat het niet meer:s
dit is het eerste deel vd 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
if ($submit) {
// process form
$db = mysql_connect("localhost", "user", "pw");
mysql_select_db("database",$db);
$sql = "INSERT INTO vragenlijst (voornaam,familienaam,geslacht,geboortedatum,straat,nr,postcode,gemeente,voornaammoeder,familienaammoeder,voornaamvader,familienaamvader,voornaampartner,familienaampartner,telefoonprive,gsm,emailprive,telefoonwerk,emailwerk) VALUES ('$voornaam','$familienaam','$geslacht','$geboortedatum','$straat','$nr','$postcode', '$gemeente','$voornaammoeder','$familienaammoeder','$voornaamvader','$familienaamvader','$voornaampartner','$familienaampartner','$telefoonprive','$gsm','$emailprive','$telefoonwerk','$emailwerk')";
$result = mysql_query($sql);
echo "Bedankt voor de gegevens in te vullen, klik op index om terug naar de hoofdpagina te gaan.\n";
} else{
?>
if ($submit) {
// process form
$db = mysql_connect("localhost", "user", "pw");
mysql_select_db("database",$db);
$sql = "INSERT INTO vragenlijst (voornaam,familienaam,geslacht,geboortedatum,straat,nr,postcode,gemeente,voornaammoeder,familienaammoeder,voornaamvader,familienaamvader,voornaampartner,familienaampartner,telefoonprive,gsm,emailprive,telefoonwerk,emailwerk) VALUES ('$voornaam','$familienaam','$geslacht','$geboortedatum','$straat','$nr','$postcode', '$gemeente','$voornaammoeder','$familienaammoeder','$voornaamvader','$familienaamvader','$voornaampartner','$familienaampartner','$telefoonprive','$gsm','$emailprive','$telefoonwerk','$emailwerk')";
$result = mysql_query($sql);
echo "Bedankt voor de gegevens in te vullen, klik op index om terug naar de hoofdpagina te gaan.\n";
} else{
?>
/code
een voorbeeld is te zien op :
http://kaag.frih.net/yo/vragenlijst.php
het formulier staat er dus, maar het doet niets!
wat is de fout?
grtz
Quote:
sinds enkele dagen gaat het niet meer
Daarvoor werkte het gewoon? Even je host vragen wat er veranderd is.
is dat dan ok nog goed?
<form method="post" action="">
er wordt een nieuwe rij gemaakt, maar er wordt niet in gezet:s
dit is de volledige code:
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
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
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// process form
$db = mysql_connect("localhost", "user", "pswrd");
mysql_select_db("databse",$db);
$sql = "INSERT INTO vragenlijst (voornaam,familienaam,geslacht,geboortedatum,straat,nr,postcode,gemeente,voornaammoeder,familienaammoeder,voornaamvader,familienaamvader,voornaampartner,familienaampartner,telefoonprive,gsm,emailprive,telefoonwerk,emailwerk) VALUES ('$voornaam','$familienaam','$geslacht','$geboortedatum','$straat','$nr','$postcode', '$gemeente','$voornaammoeder','$familienaammoeder','$voornaamvader','$familienaamvader','$voornaampartner','$familienaampartner','$telefoonprive','$gsm','$emailprive','$telefoonwerk','$emailwerk')";
$result = mysql_query($sql);
echo "Bedankt voor de gegevens in te vullen, klik op index om terug naar de hoofdpagina te gaan.\n";
} else{
// display form
?>
<table>
<tr>
<td colspan="2" class="style1">
Beste familieleden,<br/><br/>
Hier dus onze vragenlijst. Zoals je ziet verzamelen we de personalia van alle leden van onze familie.<br/>
Graag zouden we hebben dat per tante, nonkel, nicht, kozijn, kind, kleinkind één zo’n formulier wordt ingevuld.<br/>
We willen immers op termijn ook een stamboom met foto’s maken.<br/><br/>
Velden die niet van toepassing zijn of die je niet wil invullen laat je gewoon blanco.<br/>
Als iedereen meewerkt hebben we meteen een hele recente adressenlijst van de familie die altijd actueel kan gehouden worden.<br/><br/>
Dank u <br/><br/><br/><br/>
</td>
</tr>
<tr>
<form method="post" action="">
<td class="style1">Voornaam:</td><td><input type="Text" name="voornaam"><br></td></tr>
<tr><td class="style1">Familienaam:</td><td width="40%"><input type="Text" name="familienaam"><br></td></tr>
<tr><td class="style1">Geslacht:</td><td width="40%"><input type="Text" name="geslacht"><br></td></tr>
<tr><td class="style1"> Geboortedatum:</td><td width="40%"><input type="Text" name="geboortedatum"><br></td></tr>
<tr><td class="style1"> Straat:</td><td width="40%"><input type="Text" name="straat"><br></td></tr>
<tr><td class="style1"> Nr:</td><td width="40%"><input type="Text" name="nr"><br></td></tr>
<tr><td class="style1"> Postcode:</td><td width="40%"><input type="Text" name="postcode"><br></td></tr>
<tr><td class="style1"> Gemeente:</td><td width="40%"><input type="Text" name="gemeente"><br></td></tr>
<tr><td class="style1"> Voornaam moeder:</td><td width="40%"><input type="Text" name="voornaammoeder"><br></td></tr>
<tr><td class="style1"> Familienaam moeder:</td><td width="40%"><input type="Text" name="familienaammoeder"><br></td></tr>
<tr><td class="style1"> Voornaam vader:</td><td width="40%"><input type="Text" name="voornaamvader"><br></td></tr>
<tr><td class="style1"> Familienaam vader:</td><td width="40%"><input type="Text" name="familienaamvader"><br></td></tr>
<tr><td class="style1"> Voornaam partner:</td><td width="40%"><input type="Text" name="voornaampartner"><br></td></tr>
<tr><td class="style1"> Familienaam partner:</td><td width="40%"><input type="Text" name="familienaampartner"><br></td></tr>
<tr><td class="style1"> Telefoon prive:</td><td width="40%"><input type="Text" name="telefoonprive"><br></td></tr>
<tr><td class="style1"> Gsm nummer:</td><td width="40%"><input type="Text" name="gsm"><br></td></tr>
<tr><td class="style1"> Email prive:</td><td width="40%"><input type="Text" name="emailprive"><br></td></tr>
<tr><td class="style1"> Telefoon werk:</td><td width="40%"><input type="Text" name="telefoonwerk"><br></td></tr>
<tr><td class="style1"> Email werk:</td><td width="40%"><input type="Text" name="emailwerk"><br></td></tr>
</table>
<input type="Submit" name="submit" value="Verzend">
</form>
<?php
} // end if
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// process form
$db = mysql_connect("localhost", "user", "pswrd");
mysql_select_db("databse",$db);
$sql = "INSERT INTO vragenlijst (voornaam,familienaam,geslacht,geboortedatum,straat,nr,postcode,gemeente,voornaammoeder,familienaammoeder,voornaamvader,familienaamvader,voornaampartner,familienaampartner,telefoonprive,gsm,emailprive,telefoonwerk,emailwerk) VALUES ('$voornaam','$familienaam','$geslacht','$geboortedatum','$straat','$nr','$postcode', '$gemeente','$voornaammoeder','$familienaammoeder','$voornaamvader','$familienaamvader','$voornaampartner','$familienaampartner','$telefoonprive','$gsm','$emailprive','$telefoonwerk','$emailwerk')";
$result = mysql_query($sql);
echo "Bedankt voor de gegevens in te vullen, klik op index om terug naar de hoofdpagina te gaan.\n";
} else{
// display form
?>
<table>
<tr>
<td colspan="2" class="style1">
Beste familieleden,<br/><br/>
Hier dus onze vragenlijst. Zoals je ziet verzamelen we de personalia van alle leden van onze familie.<br/>
Graag zouden we hebben dat per tante, nonkel, nicht, kozijn, kind, kleinkind één zo’n formulier wordt ingevuld.<br/>
We willen immers op termijn ook een stamboom met foto’s maken.<br/><br/>
Velden die niet van toepassing zijn of die je niet wil invullen laat je gewoon blanco.<br/>
Als iedereen meewerkt hebben we meteen een hele recente adressenlijst van de familie die altijd actueel kan gehouden worden.<br/><br/>
Dank u <br/><br/><br/><br/>
</td>
</tr>
<tr>
<form method="post" action="">
<td class="style1">Voornaam:</td><td><input type="Text" name="voornaam"><br></td></tr>
<tr><td class="style1">Familienaam:</td><td width="40%"><input type="Text" name="familienaam"><br></td></tr>
<tr><td class="style1">Geslacht:</td><td width="40%"><input type="Text" name="geslacht"><br></td></tr>
<tr><td class="style1"> Geboortedatum:</td><td width="40%"><input type="Text" name="geboortedatum"><br></td></tr>
<tr><td class="style1"> Straat:</td><td width="40%"><input type="Text" name="straat"><br></td></tr>
<tr><td class="style1"> Nr:</td><td width="40%"><input type="Text" name="nr"><br></td></tr>
<tr><td class="style1"> Postcode:</td><td width="40%"><input type="Text" name="postcode"><br></td></tr>
<tr><td class="style1"> Gemeente:</td><td width="40%"><input type="Text" name="gemeente"><br></td></tr>
<tr><td class="style1"> Voornaam moeder:</td><td width="40%"><input type="Text" name="voornaammoeder"><br></td></tr>
<tr><td class="style1"> Familienaam moeder:</td><td width="40%"><input type="Text" name="familienaammoeder"><br></td></tr>
<tr><td class="style1"> Voornaam vader:</td><td width="40%"><input type="Text" name="voornaamvader"><br></td></tr>
<tr><td class="style1"> Familienaam vader:</td><td width="40%"><input type="Text" name="familienaamvader"><br></td></tr>
<tr><td class="style1"> Voornaam partner:</td><td width="40%"><input type="Text" name="voornaampartner"><br></td></tr>
<tr><td class="style1"> Familienaam partner:</td><td width="40%"><input type="Text" name="familienaampartner"><br></td></tr>
<tr><td class="style1"> Telefoon prive:</td><td width="40%"><input type="Text" name="telefoonprive"><br></td></tr>
<tr><td class="style1"> Gsm nummer:</td><td width="40%"><input type="Text" name="gsm"><br></td></tr>
<tr><td class="style1"> Email prive:</td><td width="40%"><input type="Text" name="emailprive"><br></td></tr>
<tr><td class="style1"> Telefoon werk:</td><td width="40%"><input type="Text" name="telefoonwerk"><br></td></tr>
<tr><td class="style1"> Email werk:</td><td width="40%"><input type="Text" name="emailwerk"><br></td></tr>
</table>
<input type="Submit" name="submit" value="Verzend">
</form>
<?php
} // end if
?>
Gewijzigd op 01/01/1970 01:00:00 door wouter reyntjens
Zoek maar eens met Google naar "PHP superglobals tutorials", dan vind je genoeg.
grtz
Begin je code eens met de volgende regel:
error_reporting(E_ALL);
Je krijgt dan een hele serie notices dat je variabelen niet bestaan. Dat komt omdat $voornaam e.d. niet bestaat. Deze worden nu netjes in de array $_POST gezet en kun je oproepen met $_POST['voornaam'].
Maar voordat je alles zo maar in je database gooit, controleer wel eerst even de input. Wat je nu doet is bijzonder onveilig! Zoek maar eens op de term 'SQL-injection'...
@ Wouter: ik heb je post even ge-edit voor de leesbaarheid. Kijk even in de broncode hoe ik het gedaan heb, dan weet je het voortaan. Ik ga nu even je code bestuderen om te kijken wat er beter kan.
Je kan (niet netjes hoor) bovenin je script alle globals omzetten naar de vars die je nu gebruikt. Dan hoef je niet overal in het script te gaan editen.
Dus zoiets:
$naam = $_POST['naam'];
$bla = $_POST['bla'];
Enz.
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
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
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// process form
$db = mysql_connect("localhost", "user", "pswrd");
mysql_select_db("databse", $db);
$sql = "
INSERT INTO vragenlijst
(voornaam, familienaam, geslacht, geboortedatum, straat, nr, postcode, gemeente, voornaammoeder, familienaammoeder, voornaamvader, familienaamvader, voornaampartner, familienaampartner, telefoonprive, gsm, emailprive, telefoonwerk, emailwerk)
VALUES
('$voornaam', '$familienaam', '$geslacht', '$geboortedatum', '$straat', '$nr', '$postcode', '$gemeente', '$voornaammoeder', '$familienaammoeder', '$voornaamvader', '$familienaamvader', '$voornaampartner', '$familienaampartner', '$telefoonprive', '$gsm', '$emailprive', '$telefoonwerk', '$emailwerk')";
if ($result = mysql_query($sql)) {
echo "Bedankt voor de gegevens in te vullen, klik op index om terug naar de hoofdpagina te gaan.\n";
}
else {
trigger_error (mysql_error ());
}
}
else {
// display form
?>
<table>
<tr>
<td colspan="2" class="style1">
Beste familieleden, <br/><br/>
Hier dus onze vragenlijst. Zoals je ziet verzamelen we de personalia van alle leden van onze familie.<br/>
Graag zouden we hebben dat per tante, nonkel, nicht, kozijn, kind, kleinkind één zo’n formulier wordt ingevuld.<br/>
We willen immers op termijn ook een stamboom met foto’s maken.<br/><br/>
Velden die niet van toepassing zijn of die je niet wil invullen laat je gewoon blanco.<br/>
Als iedereen meewerkt hebben we meteen een hele recente adressenlijst van de familie die altijd actueel kan gehouden worden.<br/><br/>
Dank u <br/><br/><br/><br/>
</td>
</tr>
<tr>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<td class="style1">Voornaam:</td><td><input type="Text" name="voornaam"><br></td></tr>
<tr><td class="style1">Familienaam:</td><td width="40%"><input type="Text" name="familienaam"><br></td></tr>
<tr><td class="style1">Geslacht:</td><td width="40%"><input type="Text" name="geslacht"><br></td></tr>
<tr><td class="style1"> Geboortedatum:</td><td width="40%"><input type="Text" name="geboortedatum"><br></td></tr>
<tr><td class="style1"> Straat:</td><td width="40%"><input type="Text" name="straat"><br></td></tr>
<tr><td class="style1"> Nr:</td><td width="40%"><input type="Text" name="nr"><br></td></tr>
<tr><td class="style1"> Postcode:</td><td width="40%"><input type="Text" name="postcode"><br></td></tr>
<tr><td class="style1"> Gemeente:</td><td width="40%"><input type="Text" name="gemeente"><br></td></tr>
<tr><td class="style1"> Voornaam moeder:</td><td width="40%"><input type="Text" name="voornaammoeder"><br></td></tr>
<tr><td class="style1"> Familienaam moeder:</td><td width="40%"><input type="Text" name="familienaammoeder"><br></td></tr>
<tr><td class="style1"> Voornaam vader:</td><td width="40%"><input type="Text" name="voornaamvader"><br></td></tr>
<tr><td class="style1"> Familienaam vader:</td><td width="40%"><input type="Text" name="familienaamvader"><br></td></tr>
<tr><td class="style1"> Voornaam partner:</td><td width="40%"><input type="Text" name="voornaampartner"><br></td></tr>
<tr><td class="style1"> Familienaam partner:</td><td width="40%"><input type="Text" name="familienaampartner"><br></td></tr>
<tr><td class="style1"> Telefoon prive:</td><td width="40%"><input type="Text" name="telefoonprive"><br></td></tr>
<tr><td class="style1"> Gsm nummer:</td><td width="40%"><input type="Text" name="gsm"><br></td></tr>
<tr><td class="style1"> Email prive:</td><td width="40%"><input type="Text" name="emailprive"><br></td></tr>
<tr><td class="style1"> Telefoon werk:</td><td width="40%"><input type="Text" name="telefoonwerk"><br></td></tr>
<tr><td class="style1"> Email werk:</td><td width="40%"><input type="Text" name="emailwerk"><br></td></tr>
</table>
<input type="Submit" name="submit" value="Verzend">
</form>
<?php
} // end if
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// process form
$db = mysql_connect("localhost", "user", "pswrd");
mysql_select_db("databse", $db);
$sql = "
INSERT INTO vragenlijst
(voornaam, familienaam, geslacht, geboortedatum, straat, nr, postcode, gemeente, voornaammoeder, familienaammoeder, voornaamvader, familienaamvader, voornaampartner, familienaampartner, telefoonprive, gsm, emailprive, telefoonwerk, emailwerk)
VALUES
('$voornaam', '$familienaam', '$geslacht', '$geboortedatum', '$straat', '$nr', '$postcode', '$gemeente', '$voornaammoeder', '$familienaammoeder', '$voornaamvader', '$familienaamvader', '$voornaampartner', '$familienaampartner', '$telefoonprive', '$gsm', '$emailprive', '$telefoonwerk', '$emailwerk')";
if ($result = mysql_query($sql)) {
echo "Bedankt voor de gegevens in te vullen, klik op index om terug naar de hoofdpagina te gaan.\n";
}
else {
trigger_error (mysql_error ());
}
}
else {
// display form
?>
<table>
<tr>
<td colspan="2" class="style1">
Beste familieleden, <br/><br/>
Hier dus onze vragenlijst. Zoals je ziet verzamelen we de personalia van alle leden van onze familie.<br/>
Graag zouden we hebben dat per tante, nonkel, nicht, kozijn, kind, kleinkind één zo’n formulier wordt ingevuld.<br/>
We willen immers op termijn ook een stamboom met foto’s maken.<br/><br/>
Velden die niet van toepassing zijn of die je niet wil invullen laat je gewoon blanco.<br/>
Als iedereen meewerkt hebben we meteen een hele recente adressenlijst van de familie die altijd actueel kan gehouden worden.<br/><br/>
Dank u <br/><br/><br/><br/>
</td>
</tr>
<tr>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<td class="style1">Voornaam:</td><td><input type="Text" name="voornaam"><br></td></tr>
<tr><td class="style1">Familienaam:</td><td width="40%"><input type="Text" name="familienaam"><br></td></tr>
<tr><td class="style1">Geslacht:</td><td width="40%"><input type="Text" name="geslacht"><br></td></tr>
<tr><td class="style1"> Geboortedatum:</td><td width="40%"><input type="Text" name="geboortedatum"><br></td></tr>
<tr><td class="style1"> Straat:</td><td width="40%"><input type="Text" name="straat"><br></td></tr>
<tr><td class="style1"> Nr:</td><td width="40%"><input type="Text" name="nr"><br></td></tr>
<tr><td class="style1"> Postcode:</td><td width="40%"><input type="Text" name="postcode"><br></td></tr>
<tr><td class="style1"> Gemeente:</td><td width="40%"><input type="Text" name="gemeente"><br></td></tr>
<tr><td class="style1"> Voornaam moeder:</td><td width="40%"><input type="Text" name="voornaammoeder"><br></td></tr>
<tr><td class="style1"> Familienaam moeder:</td><td width="40%"><input type="Text" name="familienaammoeder"><br></td></tr>
<tr><td class="style1"> Voornaam vader:</td><td width="40%"><input type="Text" name="voornaamvader"><br></td></tr>
<tr><td class="style1"> Familienaam vader:</td><td width="40%"><input type="Text" name="familienaamvader"><br></td></tr>
<tr><td class="style1"> Voornaam partner:</td><td width="40%"><input type="Text" name="voornaampartner"><br></td></tr>
<tr><td class="style1"> Familienaam partner:</td><td width="40%"><input type="Text" name="familienaampartner"><br></td></tr>
<tr><td class="style1"> Telefoon prive:</td><td width="40%"><input type="Text" name="telefoonprive"><br></td></tr>
<tr><td class="style1"> Gsm nummer:</td><td width="40%"><input type="Text" name="gsm"><br></td></tr>
<tr><td class="style1"> Email prive:</td><td width="40%"><input type="Text" name="emailprive"><br></td></tr>
<tr><td class="style1"> Telefoon werk:</td><td width="40%"><input type="Text" name="telefoonwerk"><br></td></tr>
<tr><td class="style1"> Email werk:</td><td width="40%"><input type="Text" name="emailwerk"><br></td></tr>
</table>
<input type="Submit" name="submit" value="Verzend">
</form>
<?php
} // end if
?>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
SanThe:
Is vrij makkelijk te doen.
Je kan (niet netjes hoor) bovenin je script alle globals omzetten naar de vars die je nu gebruikt. Dan hoef je niet overal in het script te gaan editen.
Dus zoiets:
$naam = $_POST['naam'];
$bla = $_POST['bla'];
Enz.
Je kan (niet netjes hoor) bovenin je script alle globals omzetten naar de vars die je nu gebruikt. Dan hoef je niet overal in het script te gaan editen.
Dus zoiets:
$naam = $_POST['naam'];
$bla = $_POST['bla'];
Enz.
Als je die vars vaak nodig hebt kan een kortere schrijfwijze handig zijn. Het zal vaker voorkomen dat je iets wilt doen als:
$naam = htmlspecialchars ($_POST['naam']);
$bla = htmlspecialchars ($_POST['bla']);
uit oogpunt van beveiliging.
Maar dan heb je alles in één keer.
@SanThe: is inderdaad quick, maar wel dirty ;-)
heel hartelijk bedankt
wouter
Susses verder.
http://www.phphulp.nl/php/tutorials/3/244/454/ maar ik zou niet echt weten hoe ik dit het best zou moeten doen, kan je mij op weg zetten?
bedankt
ik ben dus nog maar een echte newbie en ik heb naar deze tutorial gekeken bedankt
Ik ben daar ook nog niet zo'n ster in. Ik zie dat Frank er niet meer is, maar ik denk dat hij wel een paar goede nuttige tips kan geven. Die tut die je bekeken hebt heb ik eigenlijk nog niet gelezen, dus daar kan ik niks over zeggen.