ReBirTh
Legacy Member
Misschien dat iemand van de experts hier me eens wil/kan helpen met een probleempje.
Ik heb onderstaande code eens ergens gevonden, en gebruik deze op een site voor een contactformulier. Hij verstuurt de mail zonder problemen, maar om één of andere reden krijg ik nooit de lijn te zien waarin hij zegt dat de mail succesvol verzonden is. Wil iemand me eens zeggen waar precies de fout zit, en wat de mogelijke oplossing is?
Ter verduidelijking: ik heb wel wat kennis van html en php, maar ik ben verre van een expert, en dit script heb ik gevonden op een site, en niet zelf gemaakt.
Ik heb onderstaande code eens ergens gevonden, en gebruik deze op een site voor een contactformulier. Hij verstuurt de mail zonder problemen, maar om één of andere reden krijg ik nooit de lijn te zien waarin hij zegt dat de mail succesvol verzonden is. Wil iemand me eens zeggen waar precies de fout zit, en wat de mogelijke oplossing is?
PHP:
<HTML>
<HEAD>
</HEAD>
<BODY bgcolor="#4C6260">
<?php
if(isset($_SESSION['contact_gelukt'])){ // is e-mail verstuurd?
if($_SESSION['contact_gelukt'] == "yes"){ // is gelukt?
unset($_SESSION['contact_gelukt']);
echo '<p>De e-mail is met succes verstuurd.</p>' .NL;
}
elseif($_SESSION['contact_gelukt'] == "no"){ // is niet gelukt?
unset($_SESSION['contact_gelukt']);
echo '<p><strong>De volgende fout heeft zich voorgedaan:</strong></p>' .NL;
echo '<p>Er heeft zich een probleem voorgedaan bij het versturen van de e-mail</p>' .NL;
echo '<p>Gelieve op een later tijdstip opnieuw te proberen. Excuses voor het ongemak.</p>' .NL;
}
}
else{
if(isset($_POST['contact'])){ // is formulier gepost?
$bFormulier_gepost = TRUE;
}
else{
$bFormulier_gepost = FALSE;
}
// variabelen uitlezen, of lege variabelen aanmaken
$sNaam = ($bFormulier_gepost ? html_entity_decode(trim($_POST['naam'])) : "");
$sEmail = ($bFormulier_gepost ? html_entity_decode(trim($_POST['email'])) : "");
$sBericht = ($bFormulier_gepost ? html_entity_decode(trim($_POST['bericht'])) : "");
if($bFormulier_gepost){ // is formulier gepost
// lege foutvariabelen aanmaken
$aFouten["naam"]["err"] = 0;
$aFouten["email"]["err"] = 0;
$aFouten["bericht"]["err"] = 0;
// controleren op fouten
$bFout_gevonden = FALSE;
if(strlen($sNaam)==0){
$bFout_gevonden = TRUE;
$aFouten["naam"]["err"] = 1;
$aFouten["naam"]["err_msg"] = "Gelieve uw naam in te vullen.";
}
if(strlen($sEmail)==0){
$bFout_gevonden = TRUE;
$aFouten["email"]["err"] = 1;
$aFouten["email"]["err_msg"] = "Gelieve uw e-mailadres in te vullen.";
}
elseif(!is_emailadres_geldig($sEmail)){
$bFout_gevonden = TRUE;
$aFouten["email"]["err"] = 1;
$aFouten["email"]["err_msg"] = "Gelieve een geldig e-mailadres in te vullen.";
}
if(strlen($sBericht)==0){
$bFout_gevonden = TRUE;
$aFouten["bericht"]["err"] = 1;
$aFouten["bericht"]["err_msg"] = "Gelieve uw bericht in te vullen.";
}
}
else{
$bFout_gevonden = FALSE;
}
if($bFormulier_gepost && !$bFout_gevonden){
// formulier is gepost en geen fouten gevonden
$to = "*********@mail.com"; // hier komt je eigen e-mailadres
$onderwerp = "Reactie op de website www.*********.be";
$headers = "From: ".html2specialchars($sNaam)."<".html2specialchars($sEmail).">\r\n";
$headers .= "X-Sender: <contact@*********.be>\r\n";
$headers .= "Return-Path: <contact@*********.be>\r\n";
$bericht = "Deze mail is verzonden vanuit http://www.*********.be/contact.php\n";
$bericht .= "Naam : " . html2specialchars($sNaam) . "\n";
$bericht .= "E-mailadres : " . html2specialchars($sEmail) . "\n\n";
$bericht .= html2specialchars($sBericht) . "\n\n\n";
$verzonden = mail($to,$onderwerp,$bericht,$headers);
if($verzonden){
$_SESSION['contact_gelukt'] = "yes";
header('Location: http://www.*********.be/contact.php');
exit;
}
else{
$_SESSION['contact_gelukt'] = "no";
header('Location: http://www.*********.be/contact.php');
exit;
}
}
else{
?>
U kan contact met ons opnemen, door het invullen van onderstaand formulier:<BR>
De velden met een sterretje zijn wel verplicht in te vullen!<BR><BR>
<?php
define('NL',"\n");
if($bFormulier_gepost && $bFout_gevonden){
echo '<h3>Foutmelding!</h3>' .NL;
echo $aFouten["naam"]["err"]==1 ? ('<p class="fout">'.$aFouten["naam"]["err_msg"].'</p>'.NL) : '';
echo $aFouten["email"]["err"]==1 ? ('<p class="fout">'.$aFouten["email"]["err_msg"].'</p>'.NL) : '';
echo $aFouten["bericht"]["err"]==1 ? ('<p class="fout">'.$aFouten["bericht"]["err_msg"].'</p>'.NL) : '';
}
?>
<form action="http://www.*********.be/contact.php" method="post">
<table border="0">
<tr>
<td><label for="naam"<?php echo (isset($aFouten) && $aFouten["naam"]["err"]==1 ? 'class="fout" ':''); ?>>Naam*:</label></TD>
<td><input name="naam" id="naam" type="text" maxlength="255" value="<?php echo htmlentities($sNaam); ?>" /></TD>
</tr>
<tr>
<td><label for"email"<?php echo (isset($aFouten) && $aFouten["email"]["err"]==1 ? 'class="fout" ':''); ?>>E-mail* :</label></td>
<td><input name="email" id="email" type="text" maxlength="255" value="<?php echo htmlentities($sEmail); ?>" /></td>
</tr>
<tr>
<td><label for="bericht"<?php echo (isset($aFouten) && $aFouten["bericht"]["err"]==1 ? 'class="fout" ':''); ?>>Bericht*:</label></td>
<td><textarea name="bericht" cols="60" rows="12" id="bericht"><?php echo htmlentities($sBericht); ?></textarea></td>
</tr>
<tr>
<td><input name="contact" type="submit" value="Verstuur" /></td>
</tr>
</table>
</form>
<?php
}
}
function html2specialchars($str){
$trans_table = array_flip(get_html_translation_table(HTML_ENTITIES));
return strtr($str, $trans_table);
}
?>
<?php
function is_emailadres_geldig($email){
return (eregi(
'^[-!#$%&\'*+\\./0-9=?A-Z^_`{|}~]+'. // de gebruikersnaam
'@'. // het @-teken
'([-0-9A-Z]+\\.)+' . // domeinnaam
'([0-9A-Z]){2,6}$', // top-level domain (TLD)
trim($email)));
}
?>
Ter verduidelijking: ik heb wel wat kennis van html en php, maar ik ben verre van een expert, en dit script heb ik gevonden op een site, en niet zelf gemaakt.

