Hello mensen,
ik heb een contact formulier :
http://marty-f1.uuuq.com/contactt/contactt.php
dit script hoort er bij:
<? 

////////////////////////////////////////////////////////////// 
//    Contact / Mail formulier (Anti Spam & Mail Checker)   // 
////////////////////////////////////////////////////////////// 

ob_start(); // Voor Cookie setten 

// Headers zetten zodat de de inhoud niet word gecashed 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 

// Config Gedeelte 
$site = "http://www.marty-f1.uuuq.com/nders.html";    // Site waarnaar je terug gaat als je een bericht hebt achtergelaten 
$wm_naam = "Martyn";                    // Webmaster naam 
$wm_email = "*******@hotmail.com";        // Webmaster E-mail 
$Anti_Spam = "10";                        // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten ) 
$fout_text = TRUE;                        // Bij Fout Text Rood maken ( TRUE voor aan, FALSE voor uit ) 
$fout_vakje = TRUE;                        // Bij Fout Border om Vakje Rood maken ( TRUE voor aan, FALSE voor uit ) 
$html = TRUE;                                // Een HTML email 

// Hierna hoef je niks meer te veranderen! 
$naam = $_POST['naam']; 
$email = $_POST['email']; 
$onderwerp = $_POST['onderwerp']; 
$bericht = $_POST['bericht']; 
$bericht_wrap = wordwrap ($bericht, 40, "\n", 1); 

// IP van de verstuurder 
if(getenv($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
    $ip = getenv($_SERVER['HTTP_X_FORWARDED_FOR']); 
} elseif(getenv($_SERVER['HTTP_CLIENT_IP'])) { 
    $ip = getenv($_SERVER['HTTP_CLIENT_IP']); 
} else { 
    $ip = $_SERVER['REMOTE_ADDR']; 
} 

$host = gethostbyaddr($ip);         // Host van verstuurder 

if($html) { 
// Headers 
    $headers = "From: \"Contact Formulier\" <".$wm_naam.">\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
    $headers .= "Return-Path: Mail-Error <".$wm_naam.">\r\n"; 

// Bericht 
    $message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"; 
    $message .= "<HTML><HEAD>"; 
    $message .= "<META http-equiv=3DContent-Type content=3D\"text/html; = charset=3Dwindows-1252\">"; 
    $message .= "</HEAD><BODY>"; 
    $message .= "<BR> "; 
    $message .= "<TABLE>"; 
    $message .= "<tr><td>Naam:</td><td>".$naam."</td></tr>"; 
    $message .= "<tr><td>Email:</td><td><a href=\"mailto:".$email."\">".$email."</a></td></tr>"; 
    $message .= "<BR> "; 
    $message .= "<tr><td>Bericht:</td><td>".$bericht."</td></tr>"; 
    $message .= "<tr><td colspan=\"2\">&nbsp;</td></tr>"; 
    $message .= "<BR> "; 
    $message .= "<tr><td>Datum:</td><td>".date("d-m-Y H:i:s")."</td></tr>"; 
    $message .= "<tr><td>IP:</td><td><a href=\"http://sunny.nic.com/cgi-bin/whois?domain=".$ip."\">".$ip."</a></td></tr>"; 
    $message .= "<tr><td>Host:</td><td>".$host."</td></tr>"; 
    $message .= "</TABLE></BODY></HTML>"; 
      
} 

else { 
// Headers 
    $headers = "From: \"Contact Formulier\" <".$wm_naam.">\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/plain; charset=iso-8859-1"; 

// Bericht 
    $message = "Naam: ".$naam."        \n"; 
    $message .= "E-mail: ".$email."     \n"; 
    $message .= "Bericht:\n".$bericht_wrap."     \n "; 
    $message .= "               \n "; 
    $message .= "Datum: ".date("d-m-Y H:i:s")." \n"; 
    $message .= "------------------------------------------------------- \n "; 
    $message .= "IP: ".$ip."                    \n "; 
    $message .= "Host: ".$host."                \n "; 

} 
// Mail Checker 
function checkmail($mail) 
{ 
    $email_host = explode("@", $mail); 
    $email_host = $email_host['1']; 
    $email_resolved = gethostbyname($email_host); 
    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail)) 
       $valid = 1; 
    return $valid; 
} 
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond. 
if(!isset($_COOKIE['mailformulier'])) 
{ 
    if(isset($_POST['wis'])) 
    { 
        foreach ($_POST as $key => $value) 
        { 
            unset($value); 
        } 
        header(""); 
    } 
    // Alles Controleren Wanneer er op Verzenden wordt gedrukt 
    if(isset($_POST['verzenden'])) 
    { 
        $fout = ""; 
        if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam))) 
        { 
            $fout .= " "; 
            unset($naam); 
            $fout_vakje_naam = "input_fout"; 
            $fout_text_naam = "text_fout"; 
        } 
        if((empty($email)) OR (strlen($email) < 7) OR (eregi(">", $email))) 
        { 
            $fout .= "U bent vergeten uw e-mail adres in te vullen! <BR>"; 
            unset($email); 
            $fout_vakje_email = "input_fout"; 
            $fout_text_email = "text_fout"; 
        } 
        elseif(checkmail($email) == 0) 
        { 
            $fout .= "Vul een correct e-mail adres in! <BR>"; 
            unset($email); 
            $fout_vakje_email = "input_fout"; 
            $fout_text_email = "text_fout"; 
        } 
        if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) ) 
        { 
            $fout .= "U bent vergeten een onderwerp in te vullen! <BR>"; 
            unset($onderwerp); 
            $fout_vakje_onderwerp = "input_fout"; 
            $fout_text_onderwerp = "text_fout"; 
        } 
        if(empty($bericht)) 
        { 
            $fout .= "U bent vergeten een bericht in te vullen! <BR"; 
            unset($bericht); 
            $fout_vakje_bericht = "input_fout"; 
            $fout_text_bericht = "text_fout"; 
        } 
        elseif(strlen($bericht) < 6) 
        { 
            $fout .= "Uw bericht is tekort! <BR>"; 
            $fout_vakje_bericht = "input_fout"; 
            $fout_text_bericht = "text_fout"; 
        } 
        if(!empty($fout)) 
        { 
        echo "<font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en) 
        } 
        else 
        { 
        mail($wm_email,$onderwerp,$message,$headers); 

        // Bericht als mail succesvol is verzonden 
        echo "<head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></head>"; 
        echo "<BR>Uw contact bericht is succesvol verzonden!<BR>"; 
        echo "Er word zo snel mogelijk gereageerd.<BR><BR>"; 
        echo "Met vriendelijke groeten,<BR>"; 
        echo "<B>".$wm_naam."</B>"; 

        // cookie zetten tegen spam 
        setcookie("mailformulier",1,time()+($Anti_Spam*60)); 

        // formulier wordt niet weer getoond 
        $Formulier = TRUE; 

        header("refresh:3;url=".$site.""); 
        } 
    } 
} 
else { 
    $Formulier = FALSE; 
    echo "<html><head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" /></head><body>"; 
    echo "<center><h2> Spam Beveiliging </h2><br />"; 
    echo "Je kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</body></html>"; 
    header("refresh:3;url=".$site.""); 
} 

if(!isset($Formulier)) 
{ 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
<head> 
<link href="file:///C|/Documents and Settings/De Kinderen/Mijn documenten/martijn/kontakt/style.css" rel="stylesheet" type="text/css" /> 
<title>Contact Formulier</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 

<body> 
<table  border="0" cellpadding="5" cellspacing="0"  width="100%" style="border-collapse: collapse"> 
<tr><td><br /> 
<form method="post" action=""> 
<table> 
<tr><td>IP / Host: </td><td><? echo $ip;?> / <? echo $host; ?></td></tr> 
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="20" value="<? echo $naam; ?>" />
<?
 
        $fout1 = ""; 
        if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam))) 
        { 
            $fout1 .= "U bent vergeten uw naam in te vullen!"; 
            unset($naam); 
            $fout_vakje_naam = "input_fout"; 
            $fout_text_naam = "text_fout"; 
        } 
echo "<font color=\"#FF0000\"> $fout1 </font><br>";

?>

</td></tr> 
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="30" value="<? echo $email; ?>" />
<?
        if((empty($email)) OR (strlen($email) < 7) OR (eregi(">", $email))) 
        { 
            $fout2 .= "U bent vergeten uw e-mail adres in te vullen!"; 
            unset($email); 
            $fout_vakje_email = "input_fout"; 
            $fout_text_email = "text_fout"; 
        } 
        elseif(checkmail($email) == 0) 
        { 
            $fout3 .= "Vul een correct e-mail adres in!"; 
            unset($email); 
            $fout_vakje_email = "input_fout"; 
            $fout_text_email = "text_fout"; 
        } 
?>

</td></tr> 
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="30" value="<? echo $onderwerp; ?>" />
<?
        if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) ) 
        { 
            $fout4 .= "U bent vergeten een onderwerp in te vullen!"; 
            unset($onderwerp); 
            $fout_vakje_onderwerp = "input_fout"; 
            $fout_text_onderwerp = "text_fout"; 
        } 
?>
</td></tr> 
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="100" rows="5"><? echo $bericht; ?></textarea></td></tr> 
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /> 
<?
        if(empty($bericht)) 
        { 
            $fout5 .= "U bent vergeten een bericht in te vullen! <BR"; 
            unset($bericht); 
            $fout_vakje_bericht = "input_fout"; 
            $fout_text_bericht = "text_fout"; 
        } 
        elseif(strlen($bericht) < 6) 
        { 
            $fout6 .= "Uw bericht is tekort! <BR>"; 
            $fout_vakje_bericht = "input_fout"; 
            $fout_text_bericht = "text_fout"; 
        } 
?>
</td></tr> 
</table> 
</form> 
</td></tr> 
</table> 

</body> 
</html> 
<? 
} 
?> 

ik heb nu een hele nacht gewacht op 2mailtjes via dit email script maar nog steeds niks ontvangen.. hoe komt dat?
zien jullie misschien iets wat ik vergeten ben en hoe moet dat dan?
hoe moet je dan die smtp instellen?
je moet het togh in php.ini instellen?

ik heb nu dit:
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = **********@hotmail.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
als je nu eens dit hele script aan de kant zet en een hele simpele mail functie maakt die een heel simpel mailtje stuurt met alles hard-coded er in.
dan kun je veel makkelijker aangeven waar het fout gaat. Als dat wel werkt kun je rustig functionaliteit toevoegen om te kijken waar het fout gaat.
Heeft iemadn dan nog een simple mail functie ding liggen?
en weet iemadn een host(GRATIS) die wel contact formulier verzend enzo?
want de mijne(www.zymic.com) doet dat niet. denk ik. want ik krijg nooit ene mail.

Martyn
Midas schreef op 28.05.2009 15:52
Martyn, zoek alsjeblieft eerst een handleiding PHP op. Dan kan je het daarna zelf.

Sorry, maar ik vond het even nodig dat te herhalen.
Zoek alsjeblieft eens hier.
er zijn letterlijk miljoenen simpele mail scripts. ik denk niet dat we dat hier hoeven te herhalen.
EDIT: als je een andere host zoekt kan ik je helaas alleen naar betaalde hosts verwijzen. probeer [url=http://www.1eurohosting.nl]deze[/url eens.
oke dat ga ik dna maar eerst even doen.
maar weet iemadn toevallig wel een host die mail function ondersteund en ook echt de mailtje verzend naar het email adres waar je heen wilt?


Martyn
de host die jij net opgaf ondersteunt gewoon email hoor. staat netjes op hun homepage.
ik blijf er bij dat je een simpel script moet pakken en het gewoon moet proberen op de host die je nu hebt.

(sterker nog, mijn thuis-server, achter 2 firewalls, 1 router en ziggo-troep kan gewoon mail versturen, alleen soms gaat er gewoon ergens iets fout wat je niet kan zien met zo'n groot script.)
maar hoe kan het dan dan ik het niet ontvang?
ligt het misschien dat ik ene hotmail adres gebruik of iets?

Martyn
De adviezen hierboven zijn echt heel goed. Mr. De Jong vlooit ongeveer je code regel-voor-regel door........heerlijk. Ik zit vrolijk mee te leren.

Hieronder een linkje naar w3schools: ook dat is erg goed. Je kunt de voorbeelden zo gebruiken en je krijgt nog uitleg ook.

http://www.w3schools.com/php/php_mail.asp
oke,
maar ik heb ook nogg even gekijken of mijn host echt ondersteund(www.zumic.com)
die acpteert het wel maar dan wel betalen en ik ben gratis.
weet iemadn dan een goede host(gratis) met mail enzo?

en bedankt voor die site..
een gratis host met mail is vaak lastig te vinden.
je kunt even google-en want er bestaat ergens een site die een actuele lijst bijhoud van hosting providers met mail support. je kunt dan filteren op een hele boel requirements.

Reageren