form inputs verzenden
In verband met de gemeenteraadsverkiezingen wil ik een prognosewedstrijd maken waarbij deelnemers moeten inschatten hoe de zetelverdeling wordt. Het lukt mij niet om ingevulde gegevens vanuit "form, /table" via een voorlopge website naar mijn emailadres te krijgen. Van de ingevukde gegevens ontvang ik wel "Naam,emailadres en eventueel opmerkingen" maar niet de prognoses. Zodra ik een prognose opgave invoeg, krijg ik een parser fout.
Onderstaand het HTML bestand (ingekort) en het PHP bestand.
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Wedstrijd2</title>
<meta content="text/html; charset=unicode"
http-equiv="Content-Type">
<meta name="GENERATOR" content="MSHTML 11.00.9600.16476">
</head>
<body>
<font style="color: rgb(51, 51, 255);" size="+2">Verkiezingen
Gemeenteraad Zaanstad</font><br>
<br>
//hier heb ik een stuk voorinfo weggelaten//
</table>
<br>
<p><font size="5"><strong>Ik voorspel:</strong></font>
</p>
<p> PvdA
VVD
ZOG
D66
GrL
SP CDA </p>
<form name="form1" method="post" action="post.php">
<script>
function totalIt() {
var a = document.getElementById("text1").value;
var b = document.getElementById("text2").value;
var c = document.getElementById("text3").value;
var d = document.getElementById("text4").value;
var e = document.getElementById("text5").value;
var f = document.getElementById("text6").value;
var g = document.getElementById("text7").value;
var h = document.getElementById("text8").value;
var i = document.getElementById("text9").value;
var j = document.getElementById("text10").value;
var k = document.getElementById("text11").value;
var l = document.getElementById("text12").value;
var m = document.getElementById("text13").value;
var n = document.getElementById("text14").value;
if ((isNumeric(a, true)) && (isNumeric(b, true)&&(isNumeric(c, true)))) {
a = parseFloat(a);
b = parseFloat(b);
c = parseFloat(c);
d = parseFloat(d);
e = parseFloat(e);
f = parseFloat(f);
g = parseFloat(g);
h = parseFloat(h);
i = parseFloat(i);
j = parseFloat(j);
k = parseFloat(k);
l = parseFloat(l);
m = parseFloat(m);
n = parseFloat(n);
var xytotal = a + b + c + d + e + f + g + h + i + j + k + l+ m + n
document.getElementById("total").value = xytotal;
if (confirm ("Is Total Correct?")) {
document.getElementById("form1").submit();
}
} else {
alert("U dient bij elke fractie een aantal in te vullen, 0 kan ook.");
}
}
function isNumeric(sText, decimalAllowed) {
if (sText.length == 0) return false;
var validChars = "";
if (decimalAllowed) {
validChars = "0123456789.";
} else {
validChars = "0123456789";
}
var isNumber = true;
var charA;
var decimalCount = 0;
for (i = 0; i < sText.length && isNumber == true && decimalCount < 2; i++) {
charA = sText.charAt(i); if (charA == ".") { decimalCount += 1;
}
if (validChars.indexOf(charA) == -1) {
isNumber = false;
}
}
return isNumber;
}
</script>
<p> <input name="text1" id="text1"
style="height: 22px; width: 44px;" size="1"> <input
name="text2" id="text2"
style="height: 22px; width: 44px;" size="1"> <input
name="text3" id="text3"
style="height: 22px; width: 45px;" size="1"> <input
name="text4" id="text4"
style="height: 22px; width: 45px;" size="1"> <input
name="text5" id="text5"
style="height: 22px; width: 45px;" size="1"> <input
name="text6" id="text6"
style="height: 22px; width: 45px;" size="1"> <input
name="text7" id="text7"
style="height: 22px; width: 45px;" size="1"> </p>
<p> ROSA
ZIP
CU
DZ
PB
POV PvdIJ</p>
<p> <input name="text8" id="text8"
style="height: 22px; width: 45px;" size="1"> <input
name="text9" id="text9"
style="height: 22px; width: 45px;" size="1"> <input
name="text10" id="text10"
style="height: 22px; width: 45px;" size="1"> <input
name="text11" id="text11"
style="height: 22px; width: 45px;" size="1"> <input
name="text12" id="text12"
style="height: 22px; width: 45px;" size="1"> <input
name="text13" id="text13"
style="height: 22px; width: 45px;" size="1"> <input
name="text14" id="text14"
style="height: 22px; width: 45px;" size="1"> <input
name="total" id="total" readonly="readonly"
style="height: 22px; width: 45px;" size="1"> <input
name="btn" id="btn" value="KLIK"
onclick="totalIt()" type="button"> </p>
<br>
<p>Elke goed gescoorde voospelling 0 strafpunten en elke zetel
misgegokt
geeft 1 strafpunt.<br>
De winnaars van de enquetewedstrijd zullen uiterlijk twee weken na 19
maart a.s. worden bekend gemaakt.<br>
<br>
Over de uitslag kan niet worden gecorrespondeerd.<br>
<br>
Uw naam: <br>
<input name="naam" value="" type="text"><br>
Uw E-mailadres: <br>
<input name="email" value="" type="text"><br>
Eventuele opmerkingen:<br>
<textarea name="bericht" rows="7" cols="45"></textarea><br>
<input name="Submit" value="Verzenden" type="submit">
</p>
</form>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="GENERATOR" content="PageBreeze HTML Editor">
<title>post1</title>
</head>
<body style="background-color: rgb(255, 255, 255);">
<br>
<?php if (!isset($_POST['naam']) || !isset($_POST['email']) || !isset($_POST['bericht'])) { echo 'U heeft niet alle velden ingevuld!'; exit; }
$naam = htmlspecialchars($_POST['naam']); $email = htmlspecialchars($_POST['email']); $bericht = htmlspecialchars($_POST['bericht']); $tijd = time(); $datum = strftime('%d/%m/%y %H:%M', $tijd); $ip = getenv('REMOTE_ADDR'); $message = $naam.' met het e-mailadres '. $email.' en het IP '.$ip.' stuurde op '.$datum.' het volgende bericht: '.$bericht.''; mail('[email protected]', 'Bericht van [email protected]', $message, 'From: '.$email); echo 'Uw prognose is verzonden.'; ?>
</body>
</html>
<html>
<head>
<title>Wedstrijd2</title>
<meta content="text/html; charset=unicode"
http-equiv="Content-Type">
<meta name="GENERATOR" content="MSHTML 11.00.9600.16476">
</head>
<body>
<font style="color: rgb(51, 51, 255);" size="+2">Verkiezingen
Gemeenteraad Zaanstad</font><br>
<br>
//hier heb ik een stuk voorinfo weggelaten//
</table>
<br>
<p><font size="5"><strong>Ik voorspel:</strong></font>
</p>
<p> PvdA
VVD
ZOG
D66
GrL
SP CDA </p>
<form name="form1" method="post" action="post.php">
<script>
function totalIt() {
var a = document.getElementById("text1").value;
var b = document.getElementById("text2").value;
var c = document.getElementById("text3").value;
var d = document.getElementById("text4").value;
var e = document.getElementById("text5").value;
var f = document.getElementById("text6").value;
var g = document.getElementById("text7").value;
var h = document.getElementById("text8").value;
var i = document.getElementById("text9").value;
var j = document.getElementById("text10").value;
var k = document.getElementById("text11").value;
var l = document.getElementById("text12").value;
var m = document.getElementById("text13").value;
var n = document.getElementById("text14").value;
if ((isNumeric(a, true)) && (isNumeric(b, true)&&(isNumeric(c, true)))) {
a = parseFloat(a);
b = parseFloat(b);
c = parseFloat(c);
d = parseFloat(d);
e = parseFloat(e);
f = parseFloat(f);
g = parseFloat(g);
h = parseFloat(h);
i = parseFloat(i);
j = parseFloat(j);
k = parseFloat(k);
l = parseFloat(l);
m = parseFloat(m);
n = parseFloat(n);
var xytotal = a + b + c + d + e + f + g + h + i + j + k + l+ m + n
document.getElementById("total").value = xytotal;
if (confirm ("Is Total Correct?")) {
document.getElementById("form1").submit();
}
} else {
alert("U dient bij elke fractie een aantal in te vullen, 0 kan ook.");
}
}
function isNumeric(sText, decimalAllowed) {
if (sText.length == 0) return false;
var validChars = "";
if (decimalAllowed) {
validChars = "0123456789.";
} else {
validChars = "0123456789";
}
var isNumber = true;
var charA;
var decimalCount = 0;
for (i = 0; i < sText.length && isNumber == true && decimalCount < 2; i++) {
charA = sText.charAt(i); if (charA == ".") { decimalCount += 1;
}
if (validChars.indexOf(charA) == -1) {
isNumber = false;
}
}
return isNumber;
}
</script>
<p> <input name="text1" id="text1"
style="height: 22px; width: 44px;" size="1"> <input
name="text2" id="text2"
style="height: 22px; width: 44px;" size="1"> <input
name="text3" id="text3"
style="height: 22px; width: 45px;" size="1"> <input
name="text4" id="text4"
style="height: 22px; width: 45px;" size="1"> <input
name="text5" id="text5"
style="height: 22px; width: 45px;" size="1"> <input
name="text6" id="text6"
style="height: 22px; width: 45px;" size="1"> <input
name="text7" id="text7"
style="height: 22px; width: 45px;" size="1"> </p>
<p> ROSA
ZIP
CU
DZ
PB
POV PvdIJ</p>
<p> <input name="text8" id="text8"
style="height: 22px; width: 45px;" size="1"> <input
name="text9" id="text9"
style="height: 22px; width: 45px;" size="1"> <input
name="text10" id="text10"
style="height: 22px; width: 45px;" size="1"> <input
name="text11" id="text11"
style="height: 22px; width: 45px;" size="1"> <input
name="text12" id="text12"
style="height: 22px; width: 45px;" size="1"> <input
name="text13" id="text13"
style="height: 22px; width: 45px;" size="1"> <input
name="text14" id="text14"
style="height: 22px; width: 45px;" size="1"> <input
name="total" id="total" readonly="readonly"
style="height: 22px; width: 45px;" size="1"> <input
name="btn" id="btn" value="KLIK"
onclick="totalIt()" type="button"> </p>
<br>
<p>Elke goed gescoorde voospelling 0 strafpunten en elke zetel
misgegokt
geeft 1 strafpunt.<br>
De winnaars van de enquetewedstrijd zullen uiterlijk twee weken na 19
maart a.s. worden bekend gemaakt.<br>
<br>
Over de uitslag kan niet worden gecorrespondeerd.<br>
<br>
Uw naam: <br>
<input name="naam" value="" type="text"><br>
Uw E-mailadres: <br>
<input name="email" value="" type="text"><br>
Eventuele opmerkingen:<br>
<textarea name="bericht" rows="7" cols="45"></textarea><br>
<input name="Submit" value="Verzenden" type="submit">
</p>
</form>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="GENERATOR" content="PageBreeze HTML Editor">
<title>post1</title>
</head>
<body style="background-color: rgb(255, 255, 255);">
<br>
<?php if (!isset($_POST['naam']) || !isset($_POST['email']) || !isset($_POST['bericht'])) { echo 'U heeft niet alle velden ingevuld!'; exit; }
$naam = htmlspecialchars($_POST['naam']); $email = htmlspecialchars($_POST['email']); $bericht = htmlspecialchars($_POST['bericht']); $tijd = time(); $datum = strftime('%d/%m/%y %H:%M', $tijd); $ip = getenv('REMOTE_ADDR'); $message = $naam.' met het e-mailadres '. $email.' en het IP '.$ip.' stuurde op '.$datum.' het volgende bericht: '.$bericht.''; mail('[email protected]', 'Bericht van [email protected]', $message, 'From: '.$email); echo 'Uw prognose is verzonden.'; ?>
</body>
</html>
Graag in het vervolg bij code, [code] [/code] tags gebruiken. Heb verder ook ivm kans op spam je emailadressen eruit gehaald.[/modedit]
Gewijzigd op 08/02/2014 15:57:11 door Bas IJzelendoorn
Misschien handig om te kijken wat die fout dan precies is, en rond welke regel dat optreedt.
PHP is vrij nauwkeurig in de foutmeldingen. Vrijwel altijd wordt een regelnummer genoemd. De fout zit dan in die regel, of vlak ervoor als je bijvoorbeeld een ; vergeten bent een regel eerder.
Wie verzint er overigens zoiets, om alles op 1 regel te prakken....