Het kan veel oorzaken hebben. Kan je de *relevante* code hier plaatsen, tussen code-tags?
Link gekopieerd
Als het formulier is verzonden en je doet een pagina reload, krijg je een melding.
Als je dan doorgaat wordt het formulier opnieuw verzonden.
Gebruik deze code bovenaan de pagina code :
<?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']);
}
?>
Deze regel aanpassen of weglaten naar eigen situatie :
header("Location: forum_login.php");
Link gekopieerd
T
Ton Peeters
16-09-2021 11:56
gewijzigd op 20-09-2021 00:24
Het PHP script:
>>>
<?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']."");##
}
?>
Moderator:
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!
Link gekopieerd
Graag de relevante code (tot ongeveer 20 regels) tussen codetags. Zie ook het opmaakcodeoverzicht in de Veelgestelde vragen.
Link gekopieerd
Overigens; bij relaod en opnieuw trachten te versturen wordt deze geblokkeerd omdat er slechts 1 x per 2 minuten een bericht mag worden verzonden.
[size=xsmall]
Toevoeging op 16/09/2021 12:07:43: [/size]
...sorry, ik mis de "veelgestelde vragen"...
[size=xsmall]
Toevoeging op 16/09/2021 12:12:21: [/size]
- 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(?)
Link gekopieerd
- Ariën -
16-09-2021 12:34
gewijzigd op 16-09-2021 13:56
Onderaan staat de link [ur;=https://
www.phphulp.nl/veel-gestelde-vragen/]daarheen[/url ]. :-)
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.
Link gekopieerd
maak een script genaamd success.php
met als inhoud
<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
<?php header('Location: success.php', true, 303); ?>
Daarmee voorkom je dat iemand op Refresh kan klikken. (of ja, hij klikt wel op refresh,maar verstuurt dan niet meer opnieuw de formdata.)
[size=xsmall]
Toevoeging op 17/09/2021 13:28:17: [/size]
aanvulling: ik zie nog een $cfg in die html staan.
Dat moet je dan nog even oplossen.
Link gekopieerd
Lieden, bedankt voor jullie input.
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.
Link gekopieerd
- Ariën -
20-09-2021 00:25
gewijzigd op 20-09-2021 00:26
Fijn om te horen dat je het script aangepast hebt.
Ik heb je vorige bericht even aangepast met code-tags en wat uitleg. Lees graag even het [color=red]rode[/color] blok onder je bericht.
Link gekopieerd
Ariën, bedankt voor je moeite én ik heb het blok gelezen.
Link gekopieerd