Formulier wordt soms meerdere malen verzonden
Niet zo heel erg bekend met PHP-scripts en daarom kan ik dit probleem niet triggeren:
Op een site van een van mijn klanten staat een reserveringsformulier (www.daytonadasburg.com/reservering/index.php)
Basis heb ik ooit ergens gevonden (misschien op dit forum??) aangepast en functioneert al jaren naar volle tevredenheid.
Tot voor enkele maanden geleden; hotelbaas gaf te kennen dat hij soms dezelfde reserveringen meerdere malen achter elkaar ontving - lastig.
Als ik in de inbox kijk dan zie ik idd soms dezelfde reserveringen 3-5 binnenkomen met enkele seconden vertraging.
Maar niet altijd...
Ticket aangemaakt bij hostingbedrijf; hopende dat zij misschien een oplossing of reden van fout kenden- niet dus...
Hun reply: "...Wellicht dat je developer hier eens naar kan kijken om te zien of er ergens een timeout wordt bereikt waardoor het script een 2e email genereert..."
Is wel een hint maar ik heb te weinig kennis van PHP om dat te tackelen.
Misschien dat via dit forum een oplossing gevonden kan worden.
Het formulier is, zoals eerder vermeld, te vinden op : www.daytonadasburg.com/reservering/index.php
Ik heb hier geen mogelijkheid om het script zelf bij te sluiten...of zie ik iets over het hoofd?
Ik zie wel uit naar de reacties.
Het kan veel oorzaken hebben. Kan je de *relevante* code hier plaatsen, tussen code-tags?
Als je dan doorgaat wordt het formulier opnieuw verzonden.
Gebruik deze code bovenaan de pagina 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
session_start();
//https://stackoverflow.com/questions/13889198/php-avoid-browser-reposting-post-on-page-refresh/13889283#13889283
if( strcasecmp( $_SERVER['REQUEST_METHOD'],"POST" ) === 0 )
{
$_SESSION['postdata'] = $_POST;
header("Location: ".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']);
exit();
}
if ( !$_SESSION['postdata'] )
{
header("Location: forum_login.php");
exit();
}
if( isset( $_SESSION['postdata'] ) )
{
$_POST = $_SESSION['postdata'];
unset($_SESSION['postdata']);
}
?>
session_start();
//https://stackoverflow.com/questions/13889198/php-avoid-browser-reposting-post-on-page-refresh/13889283#13889283
if( strcasecmp( $_SERVER['REQUEST_METHOD'],"POST" ) === 0 )
{
$_SESSION['postdata'] = $_POST;
header("Location: ".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']);
exit();
}
if ( !$_SESSION['postdata'] )
{
header("Location: forum_login.php");
exit();
}
if( isset( $_SESSION['postdata'] ) )
{
$_POST = $_SESSION['postdata'];
unset($_SESSION['postdata']);
}
?>
Deze regel aanpassen of weglaten naar eigen situatie :
Gewijzigd op 16/09/2021 11:38:12 door Adoptive Solution
>>>
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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
ob_start();
session_start();
// Config Gedeelte
$cfg['url'] = "http://www.daytonadasburg.com"; // Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$cfg['naam'] = "Hotel Daytona Dasburg"; // Webmaster naam
$cfg['email'] = "[email protected]"; // Webmaster E-mail
$cfg['spam'] = 2; // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )
$cfg['text'] = TRUE; // Bij Fout Text Rood maken ( TRUE voor aan, FALSE voor uit )
$cfg['input'] = TRUE; // Bij Fout Border om Vakje Rood maken ( TRUE voor aan, FALSE voor uit )
$cfg['HTML'] = TRUE; // Een HTML email ( TRUE voor aan, FALSE voor uit )
$cfg['CAPTCHA'] = TRUE; // CAPTCHA ( TRUE voor aan, FALSE voor uit )
$cfg['onderwerp'] = "reservering";
// Hieronder niks meer veranderen
// E-mail Checker / Validator
function checkmail($email)
{
if(preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email))
{
return TRUE;
}
return FALSE;
}
$formulier = TRUE;
if(!isset($_COOKIE['formulier']))
{
if(isset($_POST['wis']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{
foreach($_POST as $key => $value)
{
unset($value);
}
header("Location: ".$_SERVER['PHP_SELF']."");
}
if(isset($_POST['verzenden']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{$aFout = array();
$datum_aankomst = trim($_POST['datum_aankomst']);
$datum_vertrek = trim($_POST['datum_vertrek']);
$naam = trim($_POST['naam']);
$adres = trim($_POST['adres']);
$postcode = trim($_POST['postcode']);
$plaats = trim($_POST['plaats']);
$telefoon = trim($_POST['telefoon']);
$email = trim($_POST['email']);
$aantal_personen = trim($_POST['aantal_personen']);
$samenstelling = trim($_POST['samenstelling']);
$ontbijt = trim($_POST['ontbijt']);
$alacarte = trim($_POST['alacarte']);
$dagmenu = trim($_POST['dagmenu']);
$speksteengrillen = trim($_POST['speksteengrillen']);
$speenvarken = trim($_POST['speenvarken']);
$BBQ = trim($_POST['BBQ']);
$opmerking = trim($_POST['opmerking']);
if($cfg['CAPTCHA'])
{
$code = $_POST['code'];
}
if(empty($datum_aankomst))
{
$aFout[] = "Er is geen aankomstdatum ingevuld.";
unset($datum_aankomst);
$fout['text']['datum_aankomst'] = TRUE;
$fout['input']['datum_aankomst'] = TRUE;
}
if(empty($datum_vertrek))
{
$aFout[] = "Er is geen vertrekdatum ingevuld.";
unset($datum_vertrek);
$fout['text']['datum_vertrek'] = TRUE;
$fout['input']['datum_vertrek'] = TRUE;
}
if(empty($naam))
{
$aFout[] = "Er is geen naam ingevuld.";
unset($naam);
$fout['text']['naam'] = TRUE;
$fout['input']['naam'] = TRUE;
}
if(empty($adres))
{
$aFout[] = "Er is geen adres ingevuld.";
unset($adres);
$fout['text']['adres'] = TRUE;
$fout['input']['adres'] = TRUE;
}
if(empty($postcode))
{
$aFout[] = "Er is geen postcode ingevuld.";
unset($postcode);
$fout['text']['postcode'] = TRUE;
$fout['input']['postcode'] = TRUE;
}
if(empty($plaats))
{
$aFout[] = "Er is geen plaats ingevuld.";
unset($plaats);
$fout['text']['plaats'] = TRUE;
$fout['input']['plaats'] = TRUE;
}
if(empty($telefoon))
{
$aFout[] = "Er is geen telefoonnummer ingevuld.";
unset($telefoon);
$fout['text']['telefoon'] = TRUE;
$fout['input']['telefoon'] = TRUE;
}
if(empty($email))
{
$aFout[] = "Er is geen e-mail adres ingevuld.";
unset($email);
$fout['text']['email'] = TRUE;
$fout['input']['email'] = TRUE;
}
elseif(checkmail($email) == 0)
// Wanneer je PHP 5.2 > gebruikt
//elseif(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$aFout[] = "Er is geen correct e-mail adres ingevuld.";
unset($email);
$fout['text']['email'] = TRUE;
$fout['input']['email'] = TRUE;
}
if(empty($aantal_personen))
{
$aFout[] = "Het aantal personen is niet ingevuld.";
unset($aantal_personen);
$fout['text']['aantal_personen'] = TRUE;
$fout['input']['aantal_personen'] = TRUE;
}
if(empty($samenstelling))
{
$aFout[] = "De groepssamenstelling is niet ingevuld.";
unset($samenstelling);
$fout['text']['samenstelling'] = TRUE;
$fout['input']['samenstelling'] = TRUE;
}
if($cfg['CAPTCHA'])
{
if(strtoupper($code) != $_SESSION['captcha_code'])
{
$aFout[] = "Er is geen correcte code ingevuld.";
$fout['text']['code'] = TRUE;
$fout['input']['code'] = TRUE;
}
}
if(!$cfg['text'])
{
unset($fout['text']);
}
if(!$cfg['input'])
{
unset($fout['input']);
}
if(!empty( $aFout ))
{
$errors = '
<div id="errors">
<ul>';
foreach($aFout as $sFout)
{
$errors .= " <li>".$sFout."</li>\n";
}
$errors .= "</ul>
</div>";
}
else
{
$formulier = FALSE;
##########################
## html - non-html form ##
##########################
if($cfg['HTML'])
{
// Headers
$headers = "From: \"Hotel Daytona\" <".$cfg['email'].">\r\n";
$headers .= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers .= "Return-Path: Mail-Error <".$cfg['email'].">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$bericht='
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
</head>
<body>
<br />
Naam: <b>'.$naam.'</b><br />
Email: <b><a href="mailto:'.$email.'">'.$email.'</a></b><br />
Datum aankomst:<b> '.$datum_aankomst.'</b><br />
Datum vertrek:<b> '.$datum_vertrek.'</b><br /><br />
<i>Groep</i><br />
Aantal personen:<b> '.$aantal_personen.'</b><br />
Samenstelling groep:<b> '.$samenstelling.'</b><br />
<br />
<i>Gegevens contactpersoon</i>
<br />
Adres:<b> '.$adres.'</b><br />
Postcode:<b> '.$postcode.'</b><br />
Plaats/Land:<b> '.$plaats.'</b><br />
Telefoon:<b> '.$telefoon.'</b><br /><br />
<i>Restaurant</i><br />
Ontbijt:<b> '.$ontbijt.'</b><br />
A la carte:<b> '.$alacarte.'</b><br />
Dagmenu:<b> '.$dagmenu.'</b><br />
Speksteengrillen:<b> '.$speksteengrillen.'</b><br />
Speenvarken:<b> '.$speenvarken.'</b><br />
BBQ:<b> '.$BBQ.'</b><br />
<br />
Bericht:<br />
<b>'.$opmerking.'</b>
<br />
<br />
<br />
--------------------------------------------------------------------------<br />
<b>Datum:</b> '.date("d-m-Y @ H:i:s").'<br />
<b>IP:</b>'.$_SERVER['REMOTE_ADDR'].'</a><br />
<b>Host:</b> '.gethostbyaddr($_SERVER['REMOTE_ADDR']).'<br />
</body>
</html>';
}
if(mail($cfg['email'], "Hotel Daytona ".$cfg['onderwerp'], $bericht, $headers))
{
if(isset($_POST['stuurkopie']))
{
$headers = "From: \"Copy reservering van:\" <".$naam.">\r\n";
$headers .= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers .= "Return-Path: Mail-Error <".$email.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
mail($email, "Hotel Daytona Dasburg ".$cfg['onderwerp'], $bericht, $headers);
}
unset($naam, $email, $bericht);
setcookie("formulier", 1, time() + ( $cfg['spam'] * 60 ) );
echo "
<p>
Uw bericht is succesvol verzonden, er word zo snel mogelijk gereageerd.<br />
<br />
Met vriendelijke groeten,<br />
<b>Jan en Hilly Koelewijn</b><br />
<b>".$cfg['naam']."</b>
</p>
";
}
else
{
echo "Er is een fout opgetreden bij het verzenden van de email";
}
##header("refresh:100;url=".$cfg['url']."");##
}
}
if($formulier)
{
###################
## het formulier ##
###################
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="nl" />
</head>
<body>
<div id="container">
<?php
if(isset($errors)) {
echo $errors;
}
?>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<label <?php if(isset($fout['text']['datum_aankomst'])) { echo 'class="fout"'; } ?>>Datum aankomst:</label>
<input type="text" id="nieuw" name="datum_aankomst" maxlength="40" <?php if(isset($fout['input']['datum_aankomst'])) { echo 'class="fout'; } ?> value="<?php if (!empty($datum_aankomst)) { echo stripslashes($datum_aankomst); } ?>" size="36"/><br />
<label <?php if(isset($fout['text']['datum_vertrek'])) { echo 'class="fout"'; } ?>>Datum vertrek:</label>
<input type="text" id="nieuw" name="datum_vertrek" maxlength="40" <?php if(isset($fout['input']['datum_vertrek'])) { echo 'class="fout'; } ?> value="<?php if (!empty($datum_vertrek)) { echo stripslashes($datum_vertrek); } ?>" size="36"/><br />
<i>Inchecken tussen 16u00u en 18u00, anders even telefonisch melden.</i>
<h4>Contactpersoon</h4>
<label <?php if(isset($fout['text']['naam'])) { echo 'class="fout"'; } ?>>Naam:</label>
<input type="text" id="naam" name="naam" maxlength="30" <?php if(isset($fout['input']['naam'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($naam)) { echo stripslashes($naam); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['adres'])) { echo 'class="fout"'; } ?>>Adres:</label>
<input type="text" id="adres" name="adres" maxlength="30" <?php if(isset($fout['input']['adres'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($adres)) { echo stripslashes($adres); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['postcode'])) { echo 'class="fout"'; } ?>>Postcode:</label>
<input type="text" id="postcode" name="postcode" maxlength="30" <?php if(isset($fout['input']['postcode'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($postcode)) { echo stripslashes($postcode); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['plaats'])) { echo 'class="fout"'; } ?>>Plaats / Land:</label>
<input type="text" id="plaats" name="plaats" maxlength="30" <?php if(isset($fout['input']['plaats'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($plaats)) { echo stripslashes($plaats); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['telefoon'])) { echo 'class="fout"'; } ?>>Telefoonnummer:</label>
<input type="text" id="telefoon" name="telefoon" maxlength="30" <?php if(isset($fout['input']['telefoon'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($telefoon)) { echo stripslashes($telefoon); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['email'])) { echo 'class="fout"'; } ?>>Email:</label>
<input type="text" id="email" name="email" maxlength="255" <?php if(isset($fout['input']['email'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($email)) { echo stripslashes($email); } ?>"size="36" /><br />
<h4>Groep</h4>
<label <?php if(isset($fout['text']['aantal_personen'])) { echo 'class="fout"'; } ?>>Aantal personen:</label>
<input type="text" id="aantal_personen" name="aantal_personen" maxlength="30" <?php if(isset($fout['input']['aantal_personen'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($aantal_personen)) { echo stripslashes($aantal_personen); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['samenstelling'])) { echo 'class="fout"'; } ?>>Samenstelling groep:</label>
<input type="text" id="samenstelling" name="samenstelling" maxlength="30" <?php if(isset($fout['input']['samenstelling'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($samenstelling)) { echo stripslashes($samenstelling); } ?>"size="36" /><br />
<i>A.u.b. aangeven : m/v - stel/single</i>
<h4>Restaurant</h4>
<label <?php if(isset($fout['text']['ontbijt'])) { echo 'class="fout"'; } ?>>Ontbijt:</label>
<input type="text" id="ontbijt" name="ontbijt" maxlength="30" <?php if(isset($fout['input']['ontbijt'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($ontbijt)) { echo stripslashes($ontbijt); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['alacarte'])) { echo 'class="fout"'; } ?>> la carte:</label>
<input type="text" id="alacarte" name="alacarte" maxlength="30" <?php if(isset($fout['input']['alacarte'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($alacarte)) { echo stripslashes($alacarte); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['dagmenu'])) { echo 'class="fout"'; } ?>>Dagmenu:</label>
<input type="text" id="dagmenu" name="dagmenu" maxlength="30" <?php if(isset($fout['input']['dagmenu'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($dagmenu)) { echo stripslashes($dagmenu); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['speksteengrillen'])) { echo 'class="fout"'; } ?>>Speksteengrillen:<br/>
(min.4 pers.)</label><input type="text" id="dagmenu" name="speksteengrillen" maxlength="30" <?php if(isset($fout['input']['speksteengrillen'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($speksteengrillen)) { echo stripslashes($speksteengrillen); } ?>"size="36" /><br /><br />
<label <?php if(isset($fout['text']['speenvarken'])) { echo 'class="fout"'; } ?>>Speenvarken a/h spit:<br /> (min.15 pers.)</label>
<input type="text" id="speenvarken" name="speenvarken" maxlength="30" <?php if(isset($fout['input']['speenvarken'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($speenvarken)) { echo stripslashes($speenvarken); } ?>"size="36" /><br /><br />
<label <?php if(isset($fout['text']['BBQ'])) { echo 'class="fout"'; } ?>>B.B.Q.:<br /> (min.4 pers.)</label>
<input type="text" id="BBQ" name="BBQ" maxlength="30" <?php if(isset($fout['input']['BBQ'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($BBQ)) { echo stripslashes($BBQ); } ?>"size="36" /><br /><br/>
<i>A.u.b. aangeven: ja / nee of laat veld leeg<br>
Ook graag hieronder extra aangeven indien iemand een dieet volgt</i>
<br><br>
<label <?php if(isset($fout['text']['opmerking'])) { echo 'class="fout"'; } ?>>Opmerking:</label>
<textarea id="opmerking" name="opmerking" <?php if(isset($fout['input']['opmerking'])) { echo 'class="fout"'; } ?> cols="35" rows="3"><?php if (!empty($opmerking)) { echo stripslashes($opmerking); } ?></textarea><br /><br />
<?php
if($cfg['CAPTCHA'])
{
?>
<label>Code:</label>
<img style="margin-left:3px" src="captcha.php" alt="" /><br />
<label <?php if(isset($fout['text']['code'])) { echo 'class="fout"'; } ?>>Vul code in:</label>
<input type="text" id="code" name="code" maxlength="4" size="4" <?php if(isset($fout['input']['code'])) { echo 'class="captcha fout"'; } ?> /><br />
<?php
}
?>
<label for="stuurkopie">Stuur mij een kopie</label><input type="checkbox" id="stuurkopie" name="stuurkopie" value="1" /><br />
<label></label>
<input type="submit" id="verzenden" name="verzenden" value="Verzenden" />
<input type="submit" id="wis" name="wis" value="Wis velden" />
</form>
</div>
</body>
</html>
<?php
}
}
else
{
echo "
<p>
U kunt maar eens in de ".$cfg['spam']." minuten een e-mail versturen!<br />
</p>";
##header("refresh:100;url=".$cfg['url']."");##
}
?>
ini_set('display_errors', 1);
error_reporting(E_ALL);
ob_start();
session_start();
// Config Gedeelte
$cfg['url'] = "http://www.daytonadasburg.com"; // Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$cfg['naam'] = "Hotel Daytona Dasburg"; // Webmaster naam
$cfg['email'] = "[email protected]"; // Webmaster E-mail
$cfg['spam'] = 2; // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )
$cfg['text'] = TRUE; // Bij Fout Text Rood maken ( TRUE voor aan, FALSE voor uit )
$cfg['input'] = TRUE; // Bij Fout Border om Vakje Rood maken ( TRUE voor aan, FALSE voor uit )
$cfg['HTML'] = TRUE; // Een HTML email ( TRUE voor aan, FALSE voor uit )
$cfg['CAPTCHA'] = TRUE; // CAPTCHA ( TRUE voor aan, FALSE voor uit )
$cfg['onderwerp'] = "reservering";
// Hieronder niks meer veranderen
// E-mail Checker / Validator
function checkmail($email)
{
if(preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email))
{
return TRUE;
}
return FALSE;
}
$formulier = TRUE;
if(!isset($_COOKIE['formulier']))
{
if(isset($_POST['wis']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{
foreach($_POST as $key => $value)
{
unset($value);
}
header("Location: ".$_SERVER['PHP_SELF']."");
}
if(isset($_POST['verzenden']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{$aFout = array();
$datum_aankomst = trim($_POST['datum_aankomst']);
$datum_vertrek = trim($_POST['datum_vertrek']);
$naam = trim($_POST['naam']);
$adres = trim($_POST['adres']);
$postcode = trim($_POST['postcode']);
$plaats = trim($_POST['plaats']);
$telefoon = trim($_POST['telefoon']);
$email = trim($_POST['email']);
$aantal_personen = trim($_POST['aantal_personen']);
$samenstelling = trim($_POST['samenstelling']);
$ontbijt = trim($_POST['ontbijt']);
$alacarte = trim($_POST['alacarte']);
$dagmenu = trim($_POST['dagmenu']);
$speksteengrillen = trim($_POST['speksteengrillen']);
$speenvarken = trim($_POST['speenvarken']);
$BBQ = trim($_POST['BBQ']);
$opmerking = trim($_POST['opmerking']);
if($cfg['CAPTCHA'])
{
$code = $_POST['code'];
}
if(empty($datum_aankomst))
{
$aFout[] = "Er is geen aankomstdatum ingevuld.";
unset($datum_aankomst);
$fout['text']['datum_aankomst'] = TRUE;
$fout['input']['datum_aankomst'] = TRUE;
}
if(empty($datum_vertrek))
{
$aFout[] = "Er is geen vertrekdatum ingevuld.";
unset($datum_vertrek);
$fout['text']['datum_vertrek'] = TRUE;
$fout['input']['datum_vertrek'] = TRUE;
}
if(empty($naam))
{
$aFout[] = "Er is geen naam ingevuld.";
unset($naam);
$fout['text']['naam'] = TRUE;
$fout['input']['naam'] = TRUE;
}
if(empty($adres))
{
$aFout[] = "Er is geen adres ingevuld.";
unset($adres);
$fout['text']['adres'] = TRUE;
$fout['input']['adres'] = TRUE;
}
if(empty($postcode))
{
$aFout[] = "Er is geen postcode ingevuld.";
unset($postcode);
$fout['text']['postcode'] = TRUE;
$fout['input']['postcode'] = TRUE;
}
if(empty($plaats))
{
$aFout[] = "Er is geen plaats ingevuld.";
unset($plaats);
$fout['text']['plaats'] = TRUE;
$fout['input']['plaats'] = TRUE;
}
if(empty($telefoon))
{
$aFout[] = "Er is geen telefoonnummer ingevuld.";
unset($telefoon);
$fout['text']['telefoon'] = TRUE;
$fout['input']['telefoon'] = TRUE;
}
if(empty($email))
{
$aFout[] = "Er is geen e-mail adres ingevuld.";
unset($email);
$fout['text']['email'] = TRUE;
$fout['input']['email'] = TRUE;
}
elseif(checkmail($email) == 0)
// Wanneer je PHP 5.2 > gebruikt
//elseif(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$aFout[] = "Er is geen correct e-mail adres ingevuld.";
unset($email);
$fout['text']['email'] = TRUE;
$fout['input']['email'] = TRUE;
}
if(empty($aantal_personen))
{
$aFout[] = "Het aantal personen is niet ingevuld.";
unset($aantal_personen);
$fout['text']['aantal_personen'] = TRUE;
$fout['input']['aantal_personen'] = TRUE;
}
if(empty($samenstelling))
{
$aFout[] = "De groepssamenstelling is niet ingevuld.";
unset($samenstelling);
$fout['text']['samenstelling'] = TRUE;
$fout['input']['samenstelling'] = TRUE;
}
if($cfg['CAPTCHA'])
{
if(strtoupper($code) != $_SESSION['captcha_code'])
{
$aFout[] = "Er is geen correcte code ingevuld.";
$fout['text']['code'] = TRUE;
$fout['input']['code'] = TRUE;
}
}
if(!$cfg['text'])
{
unset($fout['text']);
}
if(!$cfg['input'])
{
unset($fout['input']);
}
if(!empty( $aFout ))
{
$errors = '
<div id="errors">
<ul>';
foreach($aFout as $sFout)
{
$errors .= " <li>".$sFout."</li>\n";
}
$errors .= "</ul>
</div>";
}
else
{
$formulier = FALSE;
##########################
## html - non-html form ##
##########################
if($cfg['HTML'])
{
// Headers
$headers = "From: \"Hotel Daytona\" <".$cfg['email'].">\r\n";
$headers .= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers .= "Return-Path: Mail-Error <".$cfg['email'].">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$bericht='
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
</head>
<body>
<br />
Naam: <b>'.$naam.'</b><br />
Email: <b><a href="mailto:'.$email.'">'.$email.'</a></b><br />
Datum aankomst:<b> '.$datum_aankomst.'</b><br />
Datum vertrek:<b> '.$datum_vertrek.'</b><br /><br />
<i>Groep</i><br />
Aantal personen:<b> '.$aantal_personen.'</b><br />
Samenstelling groep:<b> '.$samenstelling.'</b><br />
<br />
<i>Gegevens contactpersoon</i>
<br />
Adres:<b> '.$adres.'</b><br />
Postcode:<b> '.$postcode.'</b><br />
Plaats/Land:<b> '.$plaats.'</b><br />
Telefoon:<b> '.$telefoon.'</b><br /><br />
<i>Restaurant</i><br />
Ontbijt:<b> '.$ontbijt.'</b><br />
A la carte:<b> '.$alacarte.'</b><br />
Dagmenu:<b> '.$dagmenu.'</b><br />
Speksteengrillen:<b> '.$speksteengrillen.'</b><br />
Speenvarken:<b> '.$speenvarken.'</b><br />
BBQ:<b> '.$BBQ.'</b><br />
<br />
Bericht:<br />
<b>'.$opmerking.'</b>
<br />
<br />
<br />
--------------------------------------------------------------------------<br />
<b>Datum:</b> '.date("d-m-Y @ H:i:s").'<br />
<b>IP:</b>'.$_SERVER['REMOTE_ADDR'].'</a><br />
<b>Host:</b> '.gethostbyaddr($_SERVER['REMOTE_ADDR']).'<br />
</body>
</html>';
}
if(mail($cfg['email'], "Hotel Daytona ".$cfg['onderwerp'], $bericht, $headers))
{
if(isset($_POST['stuurkopie']))
{
$headers = "From: \"Copy reservering van:\" <".$naam.">\r\n";
$headers .= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers .= "Return-Path: Mail-Error <".$email.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
mail($email, "Hotel Daytona Dasburg ".$cfg['onderwerp'], $bericht, $headers);
}
unset($naam, $email, $bericht);
setcookie("formulier", 1, time() + ( $cfg['spam'] * 60 ) );
echo "
<p>
Uw bericht is succesvol verzonden, er word zo snel mogelijk gereageerd.<br />
<br />
Met vriendelijke groeten,<br />
<b>Jan en Hilly Koelewijn</b><br />
<b>".$cfg['naam']."</b>
</p>
";
}
else
{
echo "Er is een fout opgetreden bij het verzenden van de email";
}
##header("refresh:100;url=".$cfg['url']."");##
}
}
if($formulier)
{
###################
## het formulier ##
###################
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="nl" />
</head>
<body>
<div id="container">
<?php
if(isset($errors)) {
echo $errors;
}
?>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<label <?php if(isset($fout['text']['datum_aankomst'])) { echo 'class="fout"'; } ?>>Datum aankomst:</label>
<input type="text" id="nieuw" name="datum_aankomst" maxlength="40" <?php if(isset($fout['input']['datum_aankomst'])) { echo 'class="fout'; } ?> value="<?php if (!empty($datum_aankomst)) { echo stripslashes($datum_aankomst); } ?>" size="36"/><br />
<label <?php if(isset($fout['text']['datum_vertrek'])) { echo 'class="fout"'; } ?>>Datum vertrek:</label>
<input type="text" id="nieuw" name="datum_vertrek" maxlength="40" <?php if(isset($fout['input']['datum_vertrek'])) { echo 'class="fout'; } ?> value="<?php if (!empty($datum_vertrek)) { echo stripslashes($datum_vertrek); } ?>" size="36"/><br />
<i>Inchecken tussen 16u00u en 18u00, anders even telefonisch melden.</i>
<h4>Contactpersoon</h4>
<label <?php if(isset($fout['text']['naam'])) { echo 'class="fout"'; } ?>>Naam:</label>
<input type="text" id="naam" name="naam" maxlength="30" <?php if(isset($fout['input']['naam'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($naam)) { echo stripslashes($naam); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['adres'])) { echo 'class="fout"'; } ?>>Adres:</label>
<input type="text" id="adres" name="adres" maxlength="30" <?php if(isset($fout['input']['adres'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($adres)) { echo stripslashes($adres); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['postcode'])) { echo 'class="fout"'; } ?>>Postcode:</label>
<input type="text" id="postcode" name="postcode" maxlength="30" <?php if(isset($fout['input']['postcode'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($postcode)) { echo stripslashes($postcode); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['plaats'])) { echo 'class="fout"'; } ?>>Plaats / Land:</label>
<input type="text" id="plaats" name="plaats" maxlength="30" <?php if(isset($fout['input']['plaats'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($plaats)) { echo stripslashes($plaats); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['telefoon'])) { echo 'class="fout"'; } ?>>Telefoonnummer:</label>
<input type="text" id="telefoon" name="telefoon" maxlength="30" <?php if(isset($fout['input']['telefoon'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($telefoon)) { echo stripslashes($telefoon); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['email'])) { echo 'class="fout"'; } ?>>Email:</label>
<input type="text" id="email" name="email" maxlength="255" <?php if(isset($fout['input']['email'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($email)) { echo stripslashes($email); } ?>"size="36" /><br />
<h4>Groep</h4>
<label <?php if(isset($fout['text']['aantal_personen'])) { echo 'class="fout"'; } ?>>Aantal personen:</label>
<input type="text" id="aantal_personen" name="aantal_personen" maxlength="30" <?php if(isset($fout['input']['aantal_personen'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($aantal_personen)) { echo stripslashes($aantal_personen); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['samenstelling'])) { echo 'class="fout"'; } ?>>Samenstelling groep:</label>
<input type="text" id="samenstelling" name="samenstelling" maxlength="30" <?php if(isset($fout['input']['samenstelling'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($samenstelling)) { echo stripslashes($samenstelling); } ?>"size="36" /><br />
<i>A.u.b. aangeven : m/v - stel/single</i>
<h4>Restaurant</h4>
<label <?php if(isset($fout['text']['ontbijt'])) { echo 'class="fout"'; } ?>>Ontbijt:</label>
<input type="text" id="ontbijt" name="ontbijt" maxlength="30" <?php if(isset($fout['input']['ontbijt'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($ontbijt)) { echo stripslashes($ontbijt); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['alacarte'])) { echo 'class="fout"'; } ?>> la carte:</label>
<input type="text" id="alacarte" name="alacarte" maxlength="30" <?php if(isset($fout['input']['alacarte'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($alacarte)) { echo stripslashes($alacarte); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['dagmenu'])) { echo 'class="fout"'; } ?>>Dagmenu:</label>
<input type="text" id="dagmenu" name="dagmenu" maxlength="30" <?php if(isset($fout['input']['dagmenu'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($dagmenu)) { echo stripslashes($dagmenu); } ?>"size="36" /><br />
<label <?php if(isset($fout['text']['speksteengrillen'])) { echo 'class="fout"'; } ?>>Speksteengrillen:<br/>
(min.4 pers.)</label><input type="text" id="dagmenu" name="speksteengrillen" maxlength="30" <?php if(isset($fout['input']['speksteengrillen'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($speksteengrillen)) { echo stripslashes($speksteengrillen); } ?>"size="36" /><br /><br />
<label <?php if(isset($fout['text']['speenvarken'])) { echo 'class="fout"'; } ?>>Speenvarken a/h spit:<br /> (min.15 pers.)</label>
<input type="text" id="speenvarken" name="speenvarken" maxlength="30" <?php if(isset($fout['input']['speenvarken'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($speenvarken)) { echo stripslashes($speenvarken); } ?>"size="36" /><br /><br />
<label <?php if(isset($fout['text']['BBQ'])) { echo 'class="fout"'; } ?>>B.B.Q.:<br /> (min.4 pers.)</label>
<input type="text" id="BBQ" name="BBQ" maxlength="30" <?php if(isset($fout['input']['BBQ'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($BBQ)) { echo stripslashes($BBQ); } ?>"size="36" /><br /><br/>
<i>A.u.b. aangeven: ja / nee of laat veld leeg<br>
Ook graag hieronder extra aangeven indien iemand een dieet volgt</i>
<br><br>
<label <?php if(isset($fout['text']['opmerking'])) { echo 'class="fout"'; } ?>>Opmerking:</label>
<textarea id="opmerking" name="opmerking" <?php if(isset($fout['input']['opmerking'])) { echo 'class="fout"'; } ?> cols="35" rows="3"><?php if (!empty($opmerking)) { echo stripslashes($opmerking); } ?></textarea><br /><br />
<?php
if($cfg['CAPTCHA'])
{
?>
<label>Code:</label>
<img style="margin-left:3px" src="captcha.php" alt="" /><br />
<label <?php if(isset($fout['text']['code'])) { echo 'class="fout"'; } ?>>Vul code in:</label>
<input type="text" id="code" name="code" maxlength="4" size="4" <?php if(isset($fout['input']['code'])) { echo 'class="captcha fout"'; } ?> /><br />
<?php
}
?>
<label for="stuurkopie">Stuur mij een kopie</label><input type="checkbox" id="stuurkopie" name="stuurkopie" value="1" /><br />
<label></label>
<input type="submit" id="verzenden" name="verzenden" value="Verzenden" />
<input type="submit" id="wis" name="wis" value="Wis velden" />
</form>
</div>
</body>
</html>
<?php
}
}
else
{
echo "
<p>
U kunt maar eens in de ".$cfg['spam']." minuten een e-mail versturen!<br />
</p>";
##header("refresh:100;url=".$cfg['url']."");##
}
?>
Edit:
Ik heb code-tags geplaatst. Gelieve deze voortaan zelf toe te voegen via de -knop bij de reactie-pagina, of kijk bij de UBB opmaakcodes bij de Veelgestelde vragen.
Ook wil ik vragen om in het vervolg relavante code te plaatsen, wat niet meer dan ongeveer 20 regels is. Niemand heeft behoefte om 300 regels of langer door te lezen.
Alvast bedankt!
Ook wil ik vragen om in het vervolg relavante code te plaatsen, wat niet meer dan ongeveer 20 regels is. Niemand heeft behoefte om 300 regels of langer door te lezen.
Alvast bedankt!
Gewijzigd op 20/09/2021 00:24:34 door - Ariën -
Graag de relevante code (tot ongeveer 20 regels) tussen codetags. Zie ook het opmaakcodeoverzicht in de Veelgestelde vragen.
Toevoeging op 16/09/2021 12:07:43:
...sorry, ik mis de "veelgestelde vragen"...
Toevoeging op 16/09/2021 12:12:21:
- Ariën - op 16/09/2021 11:59:29:
Graag de relevante code (tot ongeveer 20 regels) tussen codetags. Zie ook het opmaakcodeoverzicht in de Veelgestelde vragen.
...sorry, ik kan "veelgestelde vragen"niet vinden, noch"opmaak codeoverzicht"
Hele script telt 386 regels(?)
Graag de code wat compacter maken tot +/- 20 regel, we willen graag helpen, maar het is erg veel werk voor ons om straks tegen de 400 regels door te spitten.
Gewijzigd op 16/09/2021 13:56:01 door - Ariën -
met als inhoud
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<p>
Uw bericht is succesvol verzonden, er word zo snel mogelijk gereageerd.<br />
<br />
Met vriendelijke groeten,<br />
<b>Jan en Hilly Koelewijn</b><br />
<b>".$cfg['naam']."</b>
</p>
Uw bericht is succesvol verzonden, er word zo snel mogelijk gereageerd.<br />
<br />
Met vriendelijke groeten,<br />
<b>Jan en Hilly Koelewijn</b><br />
<b>".$cfg['naam']."</b>
</p>
En op regel 265 vervang je de gelijkluidende echo door
Daarmee voorkom je dat iemand op Refresh kan klikken. (of ja, hij klikt wel op refresh,maar verstuurt dan niet meer opnieuw de formdata.)
Toevoeging op 17/09/2021 13:28:17:
aanvulling: ik zie nog een $cfg in die html staan.
Dat moet je dan nog even oplossen.
Ik heb nu 2 wijzigingen doorgevoerd:
1: vóór start script een stukje wat zou moeten voorkomen dat na refresh het formulier nogmaals verzonden wordt
2: De reactie van hotelier als nieuw php-tje zodat er een "ander"script draait.
"cfg['naam']" simpelweg vervangen door de naam.
Script wordt zondag op maandag ge-upload en dan zullen we week eens afwachten; kijken wat er gebeurd.
Ik heb je vorige bericht even aangepast met code-tags en wat uitleg. Lees graag even het rode blok onder je bericht.
Gewijzigd op 20/09/2021 00:26:14 door - Ariën -
Ariën, bedankt voor je moeite én ik heb het blok gelezen.