dahousecatfelix
Legacy Member
Hallo,
Ik heb hier een probleem met een php contact formulier. Ikzelf weet niet echt veel af van php en heb dit script van sitemasters.be gehaald.
Het werkt wel, maar het probleem is dat als je het bericht verzend het meerdere malen verzonden wordt.
iemand die mij kan helpen?
Dank bij voorbaat
*edit*
Ik heb juist ondervonden dat het alleen in firefox een stuk of 3 keer verzonden wordt. In ie kreeg ik maar 1 keer de mail?
Ik heb hier een probleem met een php contact formulier. Ikzelf weet niet echt veel af van php en heb dit script van sitemasters.be gehaald.
Het werkt wel, maar het probleem is dat als je het bericht verzend het meerdere malen verzonden wordt.
iemand die mij kan helpen?

Dank bij voorbaat
PHP:
<?
////////////////////////////////////////////////
//////// [url]www.sitemasters.be[/url] ////////////////////
//////// Door Tuinstoel ////////////////////////
//////// Een eenvoudig mailformuliertje ////////
////////////////////////////////////////////////
ob_start(); // Voor het cookie setten, anders zal dat hoogst waarschijnlijk niet werken.
$cNaam = ''; // Je naam...
$cEmail = '[email protected]'; // email waar het heen moet
$cOndPre = ''; // prefix voor onderwerp
$cOndSuf = ''; // suffix achter onderwerp
$cSpam = 5; // Anti Spam, X aantal minuten
?>
<?
if(!empty($_POST['verstuur']))
{ // Er is op de knop 'verstuur e-mail' gedrukt...
$pError = ''; // Een begin met de errors als die er zijn
$pI = 0; // Deze telt het aantal erros.
if(strlen($_POST['naam']) < 2)
{ $pError .= '- Je hebt je naam niet ingevuld!<br>'; $pI++; }
if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
{ $pError .= '- Je hebt geen geldig email-adres ingevuld!<br>'; $pI++; }
if(strlen($_POST['onderwerp']) < 3)
{ $pError .= '- Je hebt geen geldig onderwerp ingevuld!<br>'; $pI++; }
if(strlen($_POST['bericht']) < 10)
{ $pError .= '- Je hebt geen geldig bericht ingevuld!<br>'; $pI++; }
if(!empty($pError))
{ // Als er dan toch errors zijn..
echo ($pI == 1) ? 'De volgende fout is opgetreden:<br>' : 'De volgende fouten zijn opgetreden:<br>'; // even kijken of het meervoud of enkelvoud is.
echo $pError; // echoën van de error(s)
}
else
{
// uiteindelijk toch mailen :)
$pHeader = "MIME-Version: 1.0\r\n";
$pHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$pHeader .= "To: ".$cNaam." <".$cEmail.">\r\n";
$pHeader .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
$website = (!empty($_POST['website'])) ? '<br><br>Website: '.$_POST['website'] : '';
$pBericht = 'Het volgende bericht is gestuurd via het contact formulier:<br><hr><br>'.$_POST['bericht'].$website;
mail($cEmail,$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBericht,$pHeader);
if(isset($_POST['usermail']))
{ // Als de persoon het vakje 'Ook naar mezelf mailen' heeft aangevinkt...
$pBerichtUser = 'Het volgende bericht heb je verstuurd via contact formulier:<br><hr><br>'.$_POST['bericht'];
mail($_POST['email'],$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBerichtUser,$pHeader);
}
echo 'De e-mail is succesvol verzonden!';
setcookie('mailform',1,time()+($cSpam*60)); // cookie zetten tegen spam
$pShow = true; // formulier wordt niet weer getoond
}
}
// Kijken of er een waarde moet worden gegeven aan velden...
$pNaam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
$pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
$pWebsite = (isset($_POST['website'])) ? $_POST['website'] : '';
$pOnderwerp = (isset($_POST['onderwerp'])) ? $_POST['onderwerp'] : '';
$pBericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(isset($_COOKIE['mailform']))
{ $pShow = true; echo 'Je kunt maar eens in de '.$cSpam.' minuten een e-mail versturen!'; }
if(!isset($pShow))
{ // het formulier als $pShow niet bestaat.
?>
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
<dl>
<dt> Naam:<font class="style4"> *</font></dt>
<dd><input type="text" name="naam" size="30" value="<?= $pNaam; ?>"></dd>
<dt> Email:<font class="style4"> *</font></dt>
<dd><input type="text" name="email" size="30" value="<?= $pEmail; ?>"></dd>
<dt> Website:</dt>
<dd><input type="text" name="website" size="30" value="<?= $pWebsite; ?>"></dd>
<dt> Onderwerp:<font class="style4"> *</font></dt>
<dd><input type="text" name="onderwerp" size="30" value="<?= $pOnderwerp; ?>"></dd>
<dt> Bericht:<font class="style4"> *</font></dt>
<dd><textarea name="bericht" cols="40" rows="7"><?= $pBericht; ?></textarea></dd>
<dt> Ook naar mezelf mailen:</dt>
<dd><input type="checkbox" name="usermail"></dd>
<dt> Formulier opties:</dt>
<dd>
<input type="submit" value="Verstuur e-mail" name="verstuur"> <input type="reset" value="Wis velden"></dd>
<div class="style4"> * = verplichte velden</div>
</dl>
</form>
<?
}
?>
*edit*
Ik heb juist ondervonden dat het alleen in firefox een stuk of 3 keer verzonden wordt. In ie kreeg ik maar 1 keer de mail?

)