Captcha in PHP formulier

Status
Niet open voor verdere reacties.

justinos

Gebruiker
Lid geworden
12 nov 2004
Berichten
199
Hoi Allemaal,

Ik probeer al weken lang voor elkaar te krijgen om een Captcha code in mijn contact formulier toe te voegen. Dit omdat ik al maanden last heb van SPAM via het online formulier. Ik wordt er gek van en soms wel een stuk of 10 berichten per dag. Vooral de laatste dagen wordt ik er compleet gestoord van.

Via google heb ik al heel wat scripts gevonden maar het probleem is dat ik het niet krijg toegepast in mijn al bestaande script. Ik wil mijn eigen contact formulier namelijk gewoon behouden. Al op verschillende manieren heb ik pogingen gedaan maar steeds slaat het hele script op hol en werkt niks meer. Via deze website heb ik een goede uitleg van een script gevonden: http://www.joriso.nl/verhaaltjes-webdevelopment-captcha-2.html

Echter ook hiermee lukt het me niet de captcha toe te voegen. Zij geven namelijk dit stukje script aan om toe te voegen in het contact formulier:

HTML:
<html> 
<head>
<title>html formulier met php captcha</title>
</head> 

<body> 

<form method="post" action="write.php"> 
<input class="input" type="text" name="norobot"> 
<img src="captcha.php"><input type="submit" value="Toevoegen"> 

</form> 

</body> 

</html>


Een waslijst, maar onderstaand script is mijn contact formulier:

PHP:
<? 

ob_start(); 

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"); 

 
$site = "http://www.kermisadviesgroep.nl/home.htm";    // Site waarnaar je terug gaat als je een bericht hebt achtergelaten 
$wm_naam = "KAG";                    // Webmaster naam 
$wm_email = "info@email.nl";        // Webmaster E-mail 
$Anti_Spam = "10";                        // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten ) 
$html = TRUE;                                // Een HTML email 

// Hierna hoef je niks meer te veranderen! 
$naam = $_POST['naam']; 
$email = $_POST['email']; 
$functie = $_POST['functie']; 
$onderwerp = $_POST['onderwerp']; 
$bericht = $_POST['bericht']; 
$bericht_wrap = wordwrap ($bericht, 90, "\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 KAG\" <".$wm_email.">\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 .= "<tr><td>Functie:</td><td>".$functie."</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 KAG\" <".$wm_email.">\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 .= "Functie: ".$functie."     \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'])) 
{ 
    // Alles Controleren Wanneer er op Verzenden wordt gedrukt 
    if(isset($_POST['verzenden'])) 
    { 
        $fout = ""; 
        if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam))) 
        { 
            $fout .= "U bent vergeten uw naam in te vullen! <BR>"; 
            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 "<center><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 "Wij streven ernaar zo snel mogelijk reactie te geven.<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:6;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 "U kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></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="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 class="tabel" border="1" cellpadding="5" cellspacing="0"  width="300" style="border-collapse: collapse"> 
<tr><td><br /> 
<form method="post" action="<? echo $PHP_SELF; ?>"> 
<table> 
<tr><td> </td><td> </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="30" value="<? echo $naam; ?>" /></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="40" value="<? echo $email; ?>" /></td></tr> 
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></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="70" value="<? echo $onderwerp; ?>" /></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="68" rows="10"><? echo $bericht; ?></textarea></td></tr> 
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" /> 
</td></tr> 
</table> 
</form> 
</td></tr> 
</table> 


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

Ik weet mij geen raad meer en hoop dan ook dat iemand mij hiermee kan en wilt helpen!! Alvast heel erg bedankt, zou blij zijn als het is verholpen!

Groet,
Justin
 
Ik heb hem even voor je aangepast..

Captcha.php:
PHP:
<?php
// het random nr. aanmaken en gecodeerd opslaan in php sessie

session_start();

$randomnr = rand(1000, 9999);
$_SESSION['randomnr2'] = md5($randomnr);

// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font

$im = imagecreatetruecolor(100, 38);

// Kleurenbepaling

$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);

// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts

imagefilledrectangle($im, 0, 0, 200, 35, $black);

// hier - font.ttf' vervangen met de locatie van je eigen font bestand
$font = 'font.ttf';

// schaduw toevoegen

imagettftext($im, 35, 0, 22, 24, $grey, $font, $randomnr);

// randomnr. toevoegen

imagettftext($im, 35, 0, 15, 26, $white, $font, $randomnr);

// voorkomen dat afbeelding ge-cached wordt

header("Expires: Wed, 1 Jan 1997 00: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");

// plaatje verzenden naar browser

header ("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
?>

Formulier:

PHP:
<? 

ob_start(); 

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"); 

 
$site = "http://www.kermisadviesgroep.nl/home.htm";    // Site waarnaar je terug gaat als je een bericht hebt achtergelaten 
$wm_naam = "KAG";                    // Webmaster naam 
$wm_email = "info@email.nl";        // Webmaster E-mail 
$Anti_Spam = "10";                        // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten ) 
$html = TRUE;                                // Een HTML email 

// Hierna hoef je niks meer te veranderen! 
$naam = $_POST['naam']; 
$email = $_POST['email']; 
$functie = $_POST['functie']; 
$onderwerp = $_POST['onderwerp']; 
$bericht = $_POST['bericht']; 
$norobot = $_POST['norobot'];
$bericht_wrap = wordwrap ($bericht, 90, "\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 KAG\" <".$wm_email.">\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 .= "<tr><td>Functie:</td><td>".$functie."</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 KAG\" <".$wm_email.">\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 .= "Functie: ".$functie."     \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'])) 
{  
    // Alles Controleren Wanneer er op Verzenden wordt gedrukt 
    if(isset($_POST['verzenden'])) 
    { 
        $fout = ""; 
        if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam))) 
        { 
            $fout .= "U bent vergeten uw naam in te vullen! <BR>"; 
            unset($naam); 
            $fout_vakje_naam = "input_fout"; 
            $fout_text_naam = "text_fout"; 
        } 
		if (md5($norobot) == $_SESSION['randomnr2']) {
			$fout .= "U heeft de code incorrect over getypt! <BR>"; 
            unset($norobot); 
            $fout_vakje_norobot = "input_fout"; 
            $fout_text_norobot = "text_fout"; 
		} elseif((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 "<center><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 "Wij streven ernaar zo snel mogelijk reactie te geven.<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:6;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 "U kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></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="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 class="tabel" border="1" cellpadding="5" cellspacing="0"  width="300" style="border-collapse: collapse"> 
<tr><td><br /> 
<form method="post" action="<? echo $PHP_SELF; ?>"> 
<table> 
<tr><td> </td><td> </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="30" value="<? echo $naam; ?>" /></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="40" value="<? echo $email; ?>" /></td></tr> 
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></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="70" value="<? echo $onderwerp; ?>" /></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="68" rows="10"><? echo $bericht; ?></textarea></td></tr> 
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" /> 
</td></tr> 
</table> 
</form> 
</td></tr> 
</table> 


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

Als het goed is werkt het zo..
Vergeet niet in captcha.php het font aan te passen naar een bestaand script.

Als je nog vragen hebt, hoor ik het graag.
 
Ah juist......... dat is het probleem!! Ben ik dus al weken lang mee bezig, 20 verschillende scripts geprobeerd en uiteindelijk is het probleem dat de host geen PHP ondersteund. Moet ik dus even via een andere hosting doen!

Ontzettend bedankt voor de hulp, het werkt inmiddels :thumb:
 
Het script werkt nu, alleen de Captcha niet. De cijfers zijn wel zichtbaar maar ook als er een foute code ingevoerd wordt, wordt de mail gewoon verzonden. Kan iemand mij hiermee helpen?
 
Het script werkt nu, alleen de Captcha niet. De cijfers zijn wel zichtbaar maar ook als er een foute code ingevoerd wordt, wordt de mail gewoon verzonden. Kan iemand mij hiermee helpen?

Laat de code eens zien die je nu helemaal hebt..?
 
Captcha.php:

PHP:
<?php 
// het random nr. aanmaken en gecodeerd opslaan in php sessie 

session_start(); 

$randomnr = rand(1000, 9999); 
$_SESSION['randomnr2'] = md5($randomnr); 

// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font 

$im = imagecreatetruecolor(100, 38); 

// Kleurenbepaling 

$white = imagecolorallocate($im, 255, 255, 255); 
$grey = imagecolorallocate($im, 128, 128, 128); 
$black = imagecolorallocate($im, 0, 0, 0); 

// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts 

imagefilledrectangle($im, 0, 0, 200, 35, $black); 

// hier - font.ttf' vervangen met de locatie van je eigen font bestand 
$font = 'font.ttf'; 

// schaduw toevoegen 

imagettftext($im, 35, 0, 22, 24, $grey, $font, $randomnr); 

// randomnr. toevoegen 

imagettftext($im, 35, 0, 15, 26, $white, $font, $randomnr); 

// voorkomen dat afbeelding ge-cached wordt 

header("Expires: Wed, 1 Jan 1997 00: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"); 

// plaatje verzenden naar browser 

header ("Content-type: image/gif"); 
imagegif($im); 
imagedestroy($im); 
?>

Write.php:

PHP:
<?php 
session_start(); 

$redirect= $_POST['referer']; 
if (md5($_POST['norobot']) == $_SESSION['randomnr2']) 

{ // plaats hier php code voor geslaagde captcha

echo "goedzo - u bent geen robot"; 
} 

else 

{ // plaats hier php code voor gefaalde captcha 

echo "foei robot, foei foei foei!"; 

} 
?>

en contact.php zoals ik het hierboven genoemd heb. Het font bestand staat ook op de hosting, gewoon genaamd "font.ttf" dus dat werkt gewoon.

Bedankt alvast!!
 
write.php heb je niet meer nodig.

Maak van contact.php eens dit:

PHP:
<? 
session_start();
ob_start(); 

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"); 

 
$site = "http://www.kermisadviesgroep.nl/home.htm";    // Site waarnaar je terug gaat als je een bericht hebt achtergelaten 
$wm_naam = "KAG";                    // Webmaster naam 
$wm_email = "info@email.nl";        // Webmaster E-mail 
$Anti_Spam = "10";                        // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten ) 
$html = TRUE;                                // Een HTML email 

// Hierna hoef je niks meer te veranderen! 
$naam = $_POST['naam']; 
$email = $_POST['email']; 
$functie = $_POST['functie']; 
$onderwerp = $_POST['onderwerp']; 
$bericht = $_POST['bericht']; 
$norobot = $_POST['norobot'];
$bericht_wrap = wordwrap ($bericht, 90, "\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 KAG\" <".$wm_email.">\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 .= "<tr><td>Functie:</td><td>".$functie."</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 KAG\" <".$wm_email.">\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 .= "Functie: ".$functie."     \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'])) 
{  
    // Alles Controleren Wanneer er op Verzenden wordt gedrukt 
    if(isset($_POST['verzenden'])) 
    { 
        $fout = ""; 
        if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam))) 
        { 
            $fout .= "U bent vergeten uw naam in te vullen! <BR>"; 
            unset($naam); 
            $fout_vakje_naam = "input_fout"; 
            $fout_text_naam = "text_fout"; 
        } 
		if (md5($norobot) == $_SESSION['randomnr2']) {
			$fout .= "U heeft de code incorrect over getypt! <BR>"; 
            unset($norobot); 
            $fout_vakje_norobot = "input_fout"; 
            $fout_text_norobot = "text_fout"; 
		} elseif((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 "<center><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 "Wij streven ernaar zo snel mogelijk reactie te geven.<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:6;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 "U kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></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="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 class="tabel" border="1" cellpadding="5" cellspacing="0"  width="300" style="border-collapse: collapse"> 
<tr><td><br /> 
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>"> 
<table> 
<tr><td> </td><td> </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="30" value="<? echo $naam; ?>" /></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="40" value="<? echo $email; ?>" /></td></tr> 
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></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="70" value="<? echo $onderwerp; ?>" /></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="68" rows="10"><? echo $bericht; ?></textarea></td></tr> 
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" /> 
</td></tr> 
</table> 
</form> 
</td></tr> 
</table> 


</body> 
</html> 
<? 
} 
?>
 
Oké, heb ik gedaan. Nog even voor de duidelijkheid hieronder de codes.
Het script werkt nog steeds niet. Als ik nu de code JUIST overtyp, dan staat er dat het fout is. Typ ik de code fout, dan gaat alles gewoon goed?!

Nu is het zelfs zo dat wanneer je de code GOED overtypt er in beeld komt dat het fout is, en als je het FOUT overtypt wordt de mail gewoon verzonden!

Onderstaande code heb ik nu als contact.php, voor de duidelijkheid nog even:

Code:
<?  
session_start(); 
ob_start();  

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");  

  
$site = "http://www.kermisadviesgroep.nl/home.htm";    // Site waarnaar je terug gaat als je een bericht hebt achtergelaten  
$wm_naam = "KAG";                    // Webmaster naam  
$wm_email = "justin.groot@hotmail.com";        // Webmaster E-mail  
$Anti_Spam = "0";                        // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )  
$html = TRUE;                                // Een HTML email  

// Hierna hoef je niks meer te veranderen!  
$naam = $_POST['naam'];  
$email = $_POST['email'];  
$functie = $_POST['functie'];  
$onderwerp = $_POST['onderwerp'];  
$bericht = $_POST['bericht'];  
$norobot = $_POST['norobot']; 
$bericht_wrap = wordwrap ($bericht, 90, "\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 KAG\" <".$wm_email.">\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 .= "<tr><td>Functie:</td><td>".$functie."</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 KAG\" <".$wm_email.">\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 .= "Functie: ".$functie."     \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']))  
{   
    // Alles Controleren Wanneer er op Verzenden wordt gedrukt  
    if(isset($_POST['verzenden']))  
    {  
        $fout = "";  
        if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam)))  
        {  
            $fout .= "U bent vergeten uw naam in te vullen! <BR>";  
            unset($naam);  
            $fout_vakje_naam = "input_fout";  
            $fout_text_naam = "text_fout";  
        }  
        if (md5($norobot) == $_SESSION['randomnr2']) { 
            $fout .= "U heeft de code incorrect over getypt! <BR>";  
            unset($norobot);  
            $fout_vakje_norobot = "input_fout";  
            $fout_text_norobot = "text_fout";  
        } elseif((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 "<center><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 "Wij streven ernaar zo snel mogelijk reactie te geven.<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:6;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 "U kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></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="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 class="tabel" border="1" cellpadding="5" cellspacing="0"  width="300" style="border-collapse: collapse">  
<tr><td><br />  
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">  
<table>  
<tr><td> </td><td> </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="30" value="<? echo $naam; ?>" /></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="40" value="<? echo $email; ?>" /></td></tr>  
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></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="70" value="<? echo $onderwerp; ?>" /></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="68" rows="10"><? echo $bericht; ?></textarea></td></tr>  
<tr><td><input class="input" type="text" name="norobot"> </td> 
<td><img src="captcha.php"></td></tr> 
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />  
</td></tr>  
</table>  
</form>  
</td></tr>  
</table>  


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

en de Captcha:

Code:
<?php 
// het random nr. aanmaken en gecodeerd opslaan in php sessie 

session_start(); 

$randomnr = rand(1000, 9999); 
$_SESSION['randomnr2'] = md5($randomnr); 

// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font 

$im = imagecreatetruecolor(100, 38); 

// Kleurenbepaling 

$white = imagecolorallocate($im, 255, 255, 255); 
$grey = imagecolorallocate($im, 128, 128, 128); 
$black = imagecolorallocate($im, 0, 0, 0); 

// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts 

imagefilledrectangle($im, 0, 0, 200, 35, $black); 

// hier - font.ttf' vervangen met de locatie van je eigen font bestand 
$font = 'font.ttf'; 

// schaduw toevoegen 

imagettftext($im, 35, 0, 22, 24, $grey, $font, $randomnr); 

// randomnr. toevoegen 

imagettftext($im, 35, 0, 15, 26, $white, $font, $randomnr); 

// voorkomen dat afbeelding ge-cached wordt 

header("Expires: Wed, 1 Jan 1997 00: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"); 

// plaatje verzenden naar browser 

header ("Content-type: image/gif"); 
imagegif($im); 
imagedestroy($im); 
?>
 
Ik zie het probleem al..

PHP:
 if (md5($norobot) == $_SESSION['randomnr2']) { 
            $fout .= "U heeft de code incorrect over getypt! <BR>";  
            unset($norobot);  
            $fout_vakje_norobot = "input_fout";  
            $fout_text_norobot = "text_fout";  
        }

vervangen voor

PHP:
 if (md5($norobot) != $_SESSION['randomnr2']) { 
            $fout .= "U heeft de code incorrect over getypt! <BR>";  
            unset($norobot);  
            $fout_vakje_norobot = "input_fout";  
            $fout_text_norobot = "text_fout";  
        }
 
Juist!! Eindelijk. Nu werkt het perfect. Een geweldig contact formulier die wat mij betreft nu volledig is. Ontzettend bedankt voor je hulp, nu hopen dat ik daadwerkelijk van de SPAM af ben.

:thumb:
 
Juist!! Eindelijk. Nu werkt het perfect. Een geweldig contact formulier die wat mij betreft nu volledig is. Ontzettend bedankt voor je hulp, nu hopen dat ik daadwerkelijk van de SPAM af ben.

:thumb:

Gelukkig!
Als je nog vragen hebt, hoor k het graag.
 
Hallo, we zitten inmiddels in 2011 en laatste bericht in deze draad is van 2007...Ik denk dat ik het script maar eens overneem.
Heb alleen (denk ik) alleen probleem met het veldje waar code onleesbaar is. Of wil een PHP expert even hier kijken/lezen??? Heb ik het probleem uitgelegd.
http://www.helpmij.nl/forum/showthread.php/603779-Captcha
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan