Variabele checkboxes met meerdere keuzes
Voor een simpel html5 formulier kan de gebruiker meerdere keuzes d.m.v checkboxes invoeren.
Echter bij het uitlezen komt elke keer maar 1 willekeurige waarde naar voren:
HTML:
<div>
<label for="diensten" accesskey="A">Schoonmaak</label>
<input type="checkbox" name="diensten" id="diensten" value="Schoonmaak"/></div>
<div><label for="diensten" accesskey="B">Glasbewassing</label>
<input type="checkbox" name="diensten" id="diensten" value="Glasbewassing"/></div>
<div><label for="diensten" accesskey="C">Opleveringsschoonmaak</label>
<input type="checkbox" name="diensten" id="diensten" value="Opleveringsschoonmaak"/></div>
<div><label for="diensten" accesskey="D">Gevelreiniging</label>
<input type="checkbox" name="diensten" id="diensten" value="Gevelreiniging"/></div>
<div><label for="diensten" accesskey="E">Graffitiverwijderen</label>
<input type="checkbox" name="diensten" id="diensten" value="Graffitiverwijderen"/></div>
PHP:
$e_reply = "$diensten.";
Ik weet niet goed of ik ook en hoe de verschillende valeu's aangeroepen moeten worden zodat meerdere opties zichtbaar zijn bij het uitlezen van de checkboxes.
Bedankt voor jullie hulp!
Maak de name een array en je kan het met een foreach doorlopen.
<input type="checkbox" name="diensten[]"
Allemaal hetzelfde id is niet toegestaan.
Code (php)
Overigens had je dit in 1 minuut googlen ook kunnen vinden door te zoeken op keywords : "How to get checkboxes values php"..
>> Overigens had je dit in 1 minuut googlen ook kunnen vinden ...
Dat geldt natuurlijk voor heel veel dingen ... maar dan moet je wel weten waarnaar je moet Googlen. Iemand vraagt niet voor niets om hulp. Dit soort opmerkingen voegt mijns inziens niet zoveel toe.
Code (php)
Ward:
Graag voortaan bij code de [code][/code]-tags gebruiken.
Hier kun je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kun je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Kan ik deze gewoon aanvullen met de erea voor 'diensten'?
Gewijzigd op 09/08/2016 09:49:26 door Ward van der Put
Dit geeft je in de array $_POST een tweede array die je met de volgende logica kunt afhandelen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if (
$_SERVER['REQUEST_METHOD'] == 'POST' // Is het formulier gepost
&& array_key_exists('diensten', $_POST) // en bevatten de geposte data 'diensten'
&& is_array($_POST['diensten']) // en zijn die 'diensten' een array?
) {
// Dan hebben we een array met diensten:
$diensten = $_POST['diensten'];
foreach ($diensten as $dienst) {
// Doe iets met elke afzonderlijke dienst.
// <...>
}
}
?>
if (
$_SERVER['REQUEST_METHOD'] == 'POST' // Is het formulier gepost
&& array_key_exists('diensten', $_POST) // en bevatten de geposte data 'diensten'
&& is_array($_POST['diensten']) // en zijn die 'diensten' een array?
) {
// Dan hebben we een array met diensten:
$diensten = $_POST['diensten'];
foreach ($diensten as $dienst) {
// Doe iets met elke afzonderlijke dienst.
// <...>
}
}
?>
Gewijzigd op 09/08/2016 10:05:35 door Ward van der Put
Warning: trim() expects parameter 1 to be string, array given in /public_html/form-mokum/classes/contactcheck.php on line 21
Bij het uitlezen voor de checkboxes krijg ik nu enkel een Array toegestuurd.
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
$postValues = array();
foreach ( $_POST as $name => $value ) {
$postValues[$name] = trim( $value );
}
extract( $postValues );
if (
$_SERVER['REQUEST_METHOD'] == 'POST' // Is het formulier gepost
&& array_key_exists('diensten', $_POST) // en bevatten de geposte data 'diensten'
&& is_array($_POST['diensten']) // en zijn die 'diensten' een array?
) {
// Dan hebben we een array met diensten:
$diensten = $_POST['diensten'];
foreach ($diensten as $dienst) {
// Doe iets met elke afzonderlijke dienst.
// <...>
}
}
foreach ( $_POST as $name => $value ) {
$postValues[$name] = trim( $value );
}
extract( $postValues );
if (
$_SERVER['REQUEST_METHOD'] == 'POST' // Is het formulier gepost
&& array_key_exists('diensten', $_POST) // en bevatten de geposte data 'diensten'
&& is_array($_POST['diensten']) // en zijn die 'diensten' een array?
) {
// Dan hebben we een array met diensten:
$diensten = $_POST['diensten'];
foreach ($diensten as $dienst) {
// Doe iets met elke afzonderlijke dienst.
// <...>
}
}
Om vervolgens naar een soort PHP 4 situatie te gaan met de introductie van variabelen als
$aap = $_POST['aap'];
(dat is wat jouw foreach + extract() doen)
Leuke magie, maar enerzijds zinloos en ondoorzichtig en anderzijds vrij bot omdat je niet checkt of je met een scalar (string) of met een array te maken hebt.
Korte oplossing:
tussen regel 2 en 3:
if(!is_array($value))
Maar liever zou ik aanraden om die hele routine te skippen en per verwachte invoer te controleren.
Paar regels extra, maar dan kun je ook gelijk kijken of de naam niet leeg is, mailadres op een mailadres lijkt en of de geboortedatum een datum is.
Gewijzigd op 09/08/2016 11:07:37 door Ivo P
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<?php if (!isset($_SESSION)) session_start();
if(!$_POST) exit();
if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");
// Configuration option.
// Enter the $email $address that you want to emails to be sent to.
// Example $address = "[email protected]";
$address = "";
///////////////////////////////////////////////////////////////////////////
//
//
//
///////////////////////////////////////////////////////////////////////////
$postValues = array();
foreach ( $_POST as $name => $value ) {
if(!is_array($value))
$postValues[$name] = trim( $value );
}
extract( $postValues );
if (
$_SERVER['REQUEST_METHOD'] == 'POST' // Is het formulier gepost
&& array_key_exists('diensten', $_POST) // en bevatten de geposte data 'diensten'
&& is_array($_POST['diensten']) // en zijn die 'diensten' een array?
) {
// Dan hebben we een array met diensten:
$diensten = $_POST['diensten'];
foreach ($diensten as $dienst) {
// Doe iets met elke afzonderlijke dienst.
// <...>
}
}
// Important Variables
$posted_verify = isset( $postValues['verify'] ) ? md5( $postValues['verify'] ) : '';
$session_verify = !empty($_SESSION['jigowatt']['html5-contact-form']['verify']) ? $_SESSION['jigowatt']['html5-contact-form']['verify'] : '';
$error = '';
///////////////////////////////////////////////////////////////////////////
//
// Begin verification process
//
// You may add or edit lines in here.
//
// To make a field not required, simply delete the entire if statement for that field.
// You will also have to remove required="required" from the input field, on index.html.
//
///////////////////////////////////////////////////////////////////////////
////////////////////////
// Name field is required
if(empty($name)) {
$error = 'Voer uw naam in';
}
////////////////////////
////////////////////////
// achternaam field is required
if(empty($achternaam)) {
$error = 'Voer uw achternaam in';
}
////////////////////////
////////////////////////
// Email field is required
if(empty($email)) {
$error = 'Voer een geldig e-mailadres in';
} else if(!isEmail($email)) {
$error = 'U heeft een incorrect e-mailadres ingevoerd, probeer het nogmaals';
}
////////////////////////
////////////////////////
// diensten field is required
if(empty($diensten)) {
$error = 'Klik minimaal één schoonmaak dienst aan';
}
////////////////////////
// diensten field is required
if(empty($diensten)) {
$error = 'Klik minimaal één schoonmaak dienst aan';
}
////////////////////////
////////////////////////
// Phone field is required
if(empty($phone)) {
$error = 'Voer een geldig telefoonnummer in';
}
////////////////////////
////////////////////////
// Comments field is required
if(empty($comments)) {
$error = 'Voer uw aanvraag in';
}
////////////////////////
////////////////////////
// Verification field is required
if(empty($posted_verify)) {
$error = 'Voer de correcte verificatie code in';
} else if($session_verify != $posted_verify) {
$error = 'De verificatie code is niet correct, probeer het nogmaals';
}
////////////////////////
// End verification.
///////////////////////////////////////////////////////////////////////////
if (!empty($error)) {
echo '<div class="error_message">' . $error . '</div>';
exit;
}
// Configuration option.
// i.e. The standard $subject will appear as, "You've been contacted by John Doe."
// Example, $e_subject = $name . ' has contacted you via Your Website.';
$e_subject = "Offerteaanvraag via Mokumschoonmaak";
// Configuration option.
// You can change $this if you feel that you need to.
// Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.
$e_body = "Er is een offerteaanvraag ingedient door: $name $achternaam
Het bericht of de opmerking is:" . PHP_EOL . PHP_EOL;
$e_content = $comments . PHP_EOL . PHP_EOL;
$e_reply = "Contact opnemen met: $name $achternaam kan via het e-mailadres: $email.";
$e_reply = "Er is via de offerte aanvraag gekozen voor het onderwerp: $diensten.";
if (!empty($phone)) $e_reply .= " Het ingevoerde telefoonnummer is $phone.";
$msg = wordwrap($e_body . $e_content . $e_reply, 70);
$headers = "From: $email" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
if(mail($address, $e_subject, $msg, $headers)) {
// Email has sent successfully, echo a success page.
echo "<fieldset>";
echo "<div id='success_page'>";
echo "<h1>Uw aanvraag is succesvol verzonden.</h1>";
echo "<p>Geachte <strong>$name $achternaam</strong> bedankt voor uw aanvraag. Wij nemen binnen 2 werkdagen contact met u op.</p>";
echo "</div>";
echo "</fieldset>";
} else {
echo 'Deze website / server ondersteund niet de juiste php versie. ';
}
function isEmail($email) { // Email address verification, do not edit.
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
} ?>
if(!$_POST) exit();
if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");
// Configuration option.
// Enter the $email $address that you want to emails to be sent to.
// Example $address = "[email protected]";
$address = "";
///////////////////////////////////////////////////////////////////////////
//
//
//
///////////////////////////////////////////////////////////////////////////
$postValues = array();
foreach ( $_POST as $name => $value ) {
if(!is_array($value))
$postValues[$name] = trim( $value );
}
extract( $postValues );
if (
$_SERVER['REQUEST_METHOD'] == 'POST' // Is het formulier gepost
&& array_key_exists('diensten', $_POST) // en bevatten de geposte data 'diensten'
&& is_array($_POST['diensten']) // en zijn die 'diensten' een array?
) {
// Dan hebben we een array met diensten:
$diensten = $_POST['diensten'];
foreach ($diensten as $dienst) {
// Doe iets met elke afzonderlijke dienst.
// <...>
}
}
// Important Variables
$posted_verify = isset( $postValues['verify'] ) ? md5( $postValues['verify'] ) : '';
$session_verify = !empty($_SESSION['jigowatt']['html5-contact-form']['verify']) ? $_SESSION['jigowatt']['html5-contact-form']['verify'] : '';
$error = '';
///////////////////////////////////////////////////////////////////////////
//
// Begin verification process
//
// You may add or edit lines in here.
//
// To make a field not required, simply delete the entire if statement for that field.
// You will also have to remove required="required" from the input field, on index.html.
//
///////////////////////////////////////////////////////////////////////////
////////////////////////
// Name field is required
if(empty($name)) {
$error = 'Voer uw naam in';
}
////////////////////////
////////////////////////
// achternaam field is required
if(empty($achternaam)) {
$error = 'Voer uw achternaam in';
}
////////////////////////
////////////////////////
// Email field is required
if(empty($email)) {
$error = 'Voer een geldig e-mailadres in';
} else if(!isEmail($email)) {
$error = 'U heeft een incorrect e-mailadres ingevoerd, probeer het nogmaals';
}
////////////////////////
////////////////////////
// diensten field is required
if(empty($diensten)) {
$error = 'Klik minimaal één schoonmaak dienst aan';
}
////////////////////////
// diensten field is required
if(empty($diensten)) {
$error = 'Klik minimaal één schoonmaak dienst aan';
}
////////////////////////
////////////////////////
// Phone field is required
if(empty($phone)) {
$error = 'Voer een geldig telefoonnummer in';
}
////////////////////////
////////////////////////
// Comments field is required
if(empty($comments)) {
$error = 'Voer uw aanvraag in';
}
////////////////////////
////////////////////////
// Verification field is required
if(empty($posted_verify)) {
$error = 'Voer de correcte verificatie code in';
} else if($session_verify != $posted_verify) {
$error = 'De verificatie code is niet correct, probeer het nogmaals';
}
////////////////////////
// End verification.
///////////////////////////////////////////////////////////////////////////
if (!empty($error)) {
echo '<div class="error_message">' . $error . '</div>';
exit;
}
// Configuration option.
// i.e. The standard $subject will appear as, "You've been contacted by John Doe."
// Example, $e_subject = $name . ' has contacted you via Your Website.';
$e_subject = "Offerteaanvraag via Mokumschoonmaak";
// Configuration option.
// You can change $this if you feel that you need to.
// Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.
$e_body = "Er is een offerteaanvraag ingedient door: $name $achternaam
Het bericht of de opmerking is:" . PHP_EOL . PHP_EOL;
$e_content = $comments . PHP_EOL . PHP_EOL;
$e_reply = "Contact opnemen met: $name $achternaam kan via het e-mailadres: $email.";
$e_reply = "Er is via de offerte aanvraag gekozen voor het onderwerp: $diensten.";
if (!empty($phone)) $e_reply .= " Het ingevoerde telefoonnummer is $phone.";
$msg = wordwrap($e_body . $e_content . $e_reply, 70);
$headers = "From: $email" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
if(mail($address, $e_subject, $msg, $headers)) {
// Email has sent successfully, echo a success page.
echo "<fieldset>";
echo "<div id='success_page'>";
echo "<h1>Uw aanvraag is succesvol verzonden.</h1>";
echo "<p>Geachte <strong>$name $achternaam</strong> bedankt voor uw aanvraag. Wij nemen binnen 2 werkdagen contact met u op.</p>";
echo "</div>";
echo "</fieldset>";
} else {
echo 'Deze website / server ondersteund niet de juiste php versie. ';
}
function isEmail($email) { // Email address verification, do not edit.
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
} ?>
kan mooier met REQUEST_METHOD
regel 5
sinds PHP 5.0.2 aanwezig, em daarmaast nevat deze ook wel \r of \n
regel 11
dol op spam? liever weghalen
regel 28: zie regel 3
regel 33 en 34
wat is er mis met
foreach($_POST['diensten'] ASS $dienst) {
regel 41/41
Wat doe je hier nu?
vanaf regel 60:
hier zijn de magisch ontstane vars zoals $name.
als je daar gewoon $_POST['name'] etc gebruikt, is duidelijk waar de vars vandaan komen. Ansder zit je 3000 regels later over 3 jaar je hoofd hierover te breken.
regel 93 zie regel 87: dubbel
regel 1914
PPH kent al een tijdje filter_var of filter_input
daarmee gebruik je een ingebouwde check op het formaat van het mailadres.
Dat is namelijk veel uitgebreider dan jouw ene regel
Bouke Star op 09/08/2016 11:23:07:
Volgens mij is het php script zelf versie 5. Ik stuur even de gehele php code mee. Bij het uitlezen blijft de Array namelijk nog steeds staan. De rest van de waarden is wel prima uit te lezen:
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<?php if (!isset($_SESSION)) session_start();
if(!$_POST) exit();
if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");
// Configuration option.
// Enter the $email $address that you want to emails to be sent to.
// Example $address = "[email protected]";
$address = "";
///////////////////////////////////////////////////////////////////////////
//
//
//
///////////////////////////////////////////////////////////////////////////
$postValues = array();
foreach ( $_POST as $name => $value ) {
if(!is_array($value))
$postValues[$name] = trim( $value );
}
extract( $postValues );
if (
$_SERVER['REQUEST_METHOD'] == 'POST' // Is het formulier gepost
&& array_key_exists('diensten', $_POST) // en bevatten de geposte data 'diensten'
&& is_array($_POST['diensten']) // en zijn die 'diensten' een array?
) {
// Dan hebben we een array met diensten:
$diensten = $_POST['diensten'];
foreach ($diensten as $dienst) {
// Doe iets met elke afzonderlijke dienst.
// <...>
}
}
// Important Variables
$posted_verify = isset( $postValues['verify'] ) ? md5( $postValues['verify'] ) : '';
$session_verify = !empty($_SESSION['jigowatt']['html5-contact-form']['verify']) ? $_SESSION['jigowatt']['html5-contact-form']['verify'] : '';
$error = '';
///////////////////////////////////////////////////////////////////////////
//
// Begin verification process
//
// You may add or edit lines in here.
//
// To make a field not required, simply delete the entire if statement for that field.
// You will also have to remove required="required" from the input field, on index.html.
//
///////////////////////////////////////////////////////////////////////////
////////////////////////
// Name field is required
if(empty($name)) {
$error = 'Voer uw naam in';
}
////////////////////////
////////////////////////
// achternaam field is required
if(empty($achternaam)) {
$error = 'Voer uw achternaam in';
}
////////////////////////
////////////////////////
// Email field is required
if(empty($email)) {
$error = 'Voer een geldig e-mailadres in';
} else if(!isEmail($email)) {
$error = 'U heeft een incorrect e-mailadres ingevoerd, probeer het nogmaals';
}
////////////////////////
////////////////////////
// diensten field is required
if(empty($diensten)) {
$error = 'Klik minimaal één schoonmaak dienst aan';
}
////////////////////////
// diensten field is required
if(empty($diensten)) {
$error = 'Klik minimaal één schoonmaak dienst aan';
}
////////////////////////
////////////////////////
// Phone field is required
if(empty($phone)) {
$error = 'Voer een geldig telefoonnummer in';
}
////////////////////////
////////////////////////
// Comments field is required
if(empty($comments)) {
$error = 'Voer uw aanvraag in';
}
////////////////////////
////////////////////////
// Verification field is required
if(empty($posted_verify)) {
$error = 'Voer de correcte verificatie code in';
} else if($session_verify != $posted_verify) {
$error = 'De verificatie code is niet correct, probeer het nogmaals';
}
////////////////////////
// End verification.
///////////////////////////////////////////////////////////////////////////
if (!empty($error)) {
echo '<div class="error_message">' . $error . '</div>';
exit;
}
// Configuration option.
// i.e. The standard $subject will appear as, "You've been contacted by John Doe."
// Example, $e_subject = $name . ' has contacted you via Your Website.';
$e_subject = "Offerteaanvraag via Mokumschoonmaak";
// Configuration option.
// You can change $this if you feel that you need to.
// Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.
$e_body = "Er is een offerteaanvraag ingedient door: $name $achternaam
Het bericht of de opmerking is:" . PHP_EOL . PHP_EOL;
$e_content = $comments . PHP_EOL . PHP_EOL;
$e_reply = "Contact opnemen met: $name $achternaam kan via het e-mailadres: $email.";
$e_reply = "Er is via de offerte aanvraag gekozen voor het onderwerp: $diensten.";
if (!empty($phone)) $e_reply .= " Het ingevoerde telefoonnummer is $phone.";
$msg = wordwrap($e_body . $e_content . $e_reply, 70);
$headers = "From: $email" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
if(mail($address, $e_subject, $msg, $headers)) {
// Email has sent successfully, echo a success page.
echo "<fieldset>";
echo "<div id='success_page'>";
echo "<h1>Uw aanvraag is succesvol verzonden.</h1>";
echo "<p>Geachte <strong>$name $achternaam</strong> bedankt voor uw aanvraag. Wij nemen binnen 2 werkdagen contact met u op.</p>";
echo "</div>";
echo "</fieldset>";
} else {
echo 'Deze website / server ondersteund niet de juiste php versie. ';
}
function isEmail($email) { // Email address verification, do not edit.
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
} ?>
if(!$_POST) exit();
if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");
// Configuration option.
// Enter the $email $address that you want to emails to be sent to.
// Example $address = "[email protected]";
$address = "";
///////////////////////////////////////////////////////////////////////////
//
//
//
///////////////////////////////////////////////////////////////////////////
$postValues = array();
foreach ( $_POST as $name => $value ) {
if(!is_array($value))
$postValues[$name] = trim( $value );
}
extract( $postValues );
if (
$_SERVER['REQUEST_METHOD'] == 'POST' // Is het formulier gepost
&& array_key_exists('diensten', $_POST) // en bevatten de geposte data 'diensten'
&& is_array($_POST['diensten']) // en zijn die 'diensten' een array?
) {
// Dan hebben we een array met diensten:
$diensten = $_POST['diensten'];
foreach ($diensten as $dienst) {
// Doe iets met elke afzonderlijke dienst.
// <...>
}
}
// Important Variables
$posted_verify = isset( $postValues['verify'] ) ? md5( $postValues['verify'] ) : '';
$session_verify = !empty($_SESSION['jigowatt']['html5-contact-form']['verify']) ? $_SESSION['jigowatt']['html5-contact-form']['verify'] : '';
$error = '';
///////////////////////////////////////////////////////////////////////////
//
// Begin verification process
//
// You may add or edit lines in here.
//
// To make a field not required, simply delete the entire if statement for that field.
// You will also have to remove required="required" from the input field, on index.html.
//
///////////////////////////////////////////////////////////////////////////
////////////////////////
// Name field is required
if(empty($name)) {
$error = 'Voer uw naam in';
}
////////////////////////
////////////////////////
// achternaam field is required
if(empty($achternaam)) {
$error = 'Voer uw achternaam in';
}
////////////////////////
////////////////////////
// Email field is required
if(empty($email)) {
$error = 'Voer een geldig e-mailadres in';
} else if(!isEmail($email)) {
$error = 'U heeft een incorrect e-mailadres ingevoerd, probeer het nogmaals';
}
////////////////////////
////////////////////////
// diensten field is required
if(empty($diensten)) {
$error = 'Klik minimaal één schoonmaak dienst aan';
}
////////////////////////
// diensten field is required
if(empty($diensten)) {
$error = 'Klik minimaal één schoonmaak dienst aan';
}
////////////////////////
////////////////////////
// Phone field is required
if(empty($phone)) {
$error = 'Voer een geldig telefoonnummer in';
}
////////////////////////
////////////////////////
// Comments field is required
if(empty($comments)) {
$error = 'Voer uw aanvraag in';
}
////////////////////////
////////////////////////
// Verification field is required
if(empty($posted_verify)) {
$error = 'Voer de correcte verificatie code in';
} else if($session_verify != $posted_verify) {
$error = 'De verificatie code is niet correct, probeer het nogmaals';
}
////////////////////////
// End verification.
///////////////////////////////////////////////////////////////////////////
if (!empty($error)) {
echo '<div class="error_message">' . $error . '</div>';
exit;
}
// Configuration option.
// i.e. The standard $subject will appear as, "You've been contacted by John Doe."
// Example, $e_subject = $name . ' has contacted you via Your Website.';
$e_subject = "Offerteaanvraag via Mokumschoonmaak";
// Configuration option.
// You can change $this if you feel that you need to.
// Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.
$e_body = "Er is een offerteaanvraag ingedient door: $name $achternaam
Het bericht of de opmerking is:" . PHP_EOL . PHP_EOL;
$e_content = $comments . PHP_EOL . PHP_EOL;
$e_reply = "Contact opnemen met: $name $achternaam kan via het e-mailadres: $email.";
$e_reply = "Er is via de offerte aanvraag gekozen voor het onderwerp: $diensten.";
if (!empty($phone)) $e_reply .= " Het ingevoerde telefoonnummer is $phone.";
$msg = wordwrap($e_body . $e_content . $e_reply, 70);
$headers = "From: $email" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
if(mail($address, $e_subject, $msg, $headers)) {
// Email has sent successfully, echo a success page.
echo "<fieldset>";
echo "<div id='success_page'>";
echo "<h1>Uw aanvraag is succesvol verzonden.</h1>";
echo "<p>Geachte <strong>$name $achternaam</strong> bedankt voor uw aanvraag. Wij nemen binnen 2 werkdagen contact met u op.</p>";
echo "</div>";
echo "</fieldset>";
} else {
echo 'Deze website / server ondersteund niet de juiste php versie. ';
}
function isEmail($email) { // Email address verification, do not edit.
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
} ?>
Ook lijkt het erop dat je $error continu overschrijft, uiteindelijk houd je alleen de laatste foutmelding over. Misschien is het handiger om per veld bij te houden of er iets mis ging bij het invullen.