[b]contact.php[/b]

[code]
<?php
############################################
#  Filename   : contact.php                #
#------------------------------------------#
#  Written By : Thijs Ferket               #
#  Website    : www.ferket.net             #
#------------------------------------------#
############################################

ini_set('display_errors', 1);
error_reporting(E_ALL);

ob_start();
session_start();

// Config Gedeelte
$cfg['url'] = "http://www.uwwebsite.nl";// Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$cfg['naam'] = "Uw naam";				// Webmaster naam
$cfg['email'] = "uw email adres";		// Webmaster E-mail
$cfg['spam'] = 10;						// 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 )


// Hieronder niks meer veranderen
// E-mail Checker / Validator
function checkmail($email)
{
	if(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$", $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();
		
		$naam = trim($_POST['naam']);
		$email = trim($_POST['email']);
		$onderwerp = trim($_POST['onderwerp']);
		$bericht = trim($_POST['bericht']);
		
		if($cfg['CAPTCHA'])
        {
			$code = $_POST['code'];
		}
				
		if(empty($naam) || (strlen($naam) < 3) || eregi("[<>]", $naam) )
		{
			$aFout[] = "Er is geen naam ingevuld.";
			unset($naam);
			$fout['text']['naam'] = TRUE;
			$fout['input']['naam'] = 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($onderwerp))
		{
			$aFout[] = "Er is geen onderwerp ingevuld.";
			unset($onderwerp);
			$fout['text']['onderwerp'] = TRUE;
			$fout['input']['onderwerp'] = TRUE;
		}
		if(empty($bericht))
		{
			$aFout[] = "Er is geen bericht ingevuld.";
			unset($bericht);
			$fout['text']['bericht'] = TRUE;
			$fout['input']['bericht'] = 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;
			
			
			if($cfg['HTML'])
			{
				// Headers
				$headers = "From: \"Contact Formulier\" <".$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 />
				<b>Naam:</b> '.$naam.'<br />
				<b>Email:</b> <a href=\"mailto:'.$email.'\">'.$email.'</a><br />
				<br />
				<b>Bericht:</b><br />
				'.$bericht.'
				<br />
				<br />
				<br />
				--------------------------------------------------------------------------<br />
				<b>Datum:</b> '.date("d-m-Y @ H:i:s").'<br />
				<b>IP:</b> <a href=\"http://sunny.nic.com/cgi-bin/whois?domain='.$_SERVER['REMOTE_ADDR'].'\">'.$_SERVER['REMOTE_ADDR'].'</a><br />
				<b>Host:</b> '.gethostbyaddr($_SERVER['REMOTE_ADDR']).'<br />
				</body>
				</html>';
			}
			else 
			{
				$bericht_wrap = wordwrap ($bericht, 40, "\n", 1);
				// Headers
				$headers = "From: \"Contact Formulier\" <".$cfg['email'].">\n"; 
				$headers .= "MIME-Version: 1.0\n";
				$headers .= "Content-type: text/plain; charset='iso-8859-1'\n"; 
			
				// 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: ".$_SERVER['REMOTE_ADDR']."                    \n ";
				$message .= "Host: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])."                \n ";
			
			}
		
			if(mail($cfg['email'], "[Contact] ".$onderwerp, $bericht, $headers)) 
			{
				if(isset($_POST['stuurkopie']))
				{
					$headers = "From: \"Contact Formulier\" <".$email.">\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, "[Contact] ".$onderwerp, $bericht, $headers);
				
				}
				
				unset($naam, $email, $onderwerp, $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>".$cfg['naam']."</b>
				</p>
				";	
			}
			else
			{
				echo "Er is een fout opgetreden bij het verzenden van de email";
			}
			header("refresh:3;url=".$cfg['url']."");
		}
	}
	if($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" />
        
        <title>Contact Formulier door Thijs</title>
        <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;
	}
	?>

    <h3>Contact Formulier Versie 2</h3>
        <form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
        <p>
        <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); } ?>" /><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); } ?>" /><br />
        
        <label <?php if(isset($fout['text']['onderwerp'])) { echo 'class="fout"'; } ?>>Onderwerp:</label>
        <input type="text" id="onderwerp" name="onderwerp" maxlength="40" <?php if(isset($fout['input']['onderwerp'])) { echo 'class="fout'; } ?> value="<?php if (!empty($onderwerp)) { echo stripslashes($onderwerp); } ?>" /><br />
        
        <label <?php if(isset($fout['text']['bericht'])) { echo 'class="fout"'; } ?>>Bericht:</label>
        <textarea id="bericht" name="bericht" <?php if(isset($fout['input']['bericht'])) { echo 'class="fout"'; } ?> cols="35" rows="6"><?php if (!empty($bericht)) { echo stripslashes($bericht); } ?></textarea><br />

		<?php
        if($cfg['CAPTCHA'])
        {
        ?>
        <label></label>
        <img src="captcha.php" alt="" /><br />
        
        <label <?php if(isset($fout['text']['code'])) { echo 'class="fout"'; } ?>>Code:</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" />
        </p>
        </form>
	</div>
        
</body>   
</html>
	<?php
	}
}
else 
{
	echo "
	<p>
	U kunt maar eens in de ".$cfg['spam']." minuten een e-mail versturen!<br />
	U wordt nu automatisch doorgestuurd.
	</p>";
    header("refresh:3;url=".$cfg['url']."");
}
?>

[/code]


[b]captcha.php[/b]

[code]
<?php
############################################
#  Filename   : captcha.php                #
#------------------------------------------#
#  Written By : Thijs Ferket               #
#  Website    : www.ferket.net             #
#------------------------------------------#
############################################

session_start();

if (phpversion () < "5"){ // define PHP5 functions if server uses PHP4

function str_split($text, $split = 1)
{
if (!is_string($text)) return false;
if (!is_numeric($split) && $split < 1) return false;
$len = strlen($text);
$array = array();
$s = 0;
$e=$split;
while ($s <$len)
    {
        $e=($e <$len)?$e:$len;
        $array[] = substr($text, $s,$e);
        $s = $s+$e;
    }
return $array;
}
}

// Captcha keygenerator
function keygen($aantal)
{
	$tekens = array_merge(range('A', 'F'), array('H', 'J', 'K', 'M', 'N'), range('P', 'Z'));
	$randomstring = "";
	for($i=1; $i <= $aantal; $i++)
	{
		shuffle($tekens);
		$randomstring .= $tekens[0];
	}
	return $randomstring;
}
	
$random_code = keygen(4);
$_SESSION['captcha_code'] = $random_code;

$breedte = 90;
$hoogte = 30;

header("content-type: image/png");

$afbeelding = imagecreate($breedte, $hoogte);
$achtergrond = imagecolorallocate($afbeelding, 255, 255, 255);
$font = "fonts/arial.ttf";

$kleur = imagecolorallocate($afbeelding, 186, 197, 214);
imagerectangle($afbeelding, 0, 0, $breedte-1, $hoogte-1, $kleur);

$aantal_punten = rand(250, 500);

for ($i = 0; $i < $aantal_punten; $i++)
{
	imagesetpixel($afbeelding, rand(1, $breedte-1), rand(1, $hoogte-1), $kleur);
}

$aantal_lijnen = rand(5, 8);
$aantal_cirkels = rand(5, 8);
$aantal_lijnen2 = rand(2, 6);
$spread = 100;

for($i = 0; $i < $aantal_lijnen; $i++)
{
	$y_begin = rand(-$spread, $hoogte + $spread);
	$y_eind = rand(-$spread, $hoogte + $spread);
	$kleur = imagecolorallocate($afbeelding, rand(170, 255), rand(170, 255), rand(170, 255));

	imageline($afbeelding, 0, $y_begin, $breedte, $y_eind, $kleur);
}

for($i = 0; $i < $aantal_cirkels; $i++)
{
	$y_center = rand(1, $breedte-1);
	$x_center = rand(1, $hoogte-1);
	$kleur = imagecolorallocate($afbeelding, rand(170, 255), rand(170, 255), rand(170, 255));

	imageellipse($afbeelding, $y_center, $y_center, rand(50, 100), rand(50, 100), $kleur);
}

$tekst = str_split($random_code);

for ($i = 0; $i < count($tekst); $i++)
{
	$xas = rand(5, 15);
	$yas = rand(18, 25);
	$graden = rand(-25, 25);
	$grootte = rand(12,14);
	$kleur = imagecolorallocate($afbeelding, rand(0, 100), rand(0, 100), rand(0, 100));
	imagettftext($afbeelding, $grootte, $graden, $i * 20 + $xas, $yas, $kleur, $font, $tekst[$i]);
}

for($i = 0; $i < $aantal_lijnen2; $i++)
{
	$y_begin = rand(-$spread, $hoogte + $spread);
	$y_eind = rand(-$spread, $hoogte + $spread);
	$kleur = imagecolorallocate($afbeelding, rand(170, 255), rand(170, 255), rand(170, 255));

	imageline($afbeelding, 0, $y_begin, $breedte, $y_eind, $kleur);
}

imagepng($afbeelding);
imagedestroy($afbeelding);
?>
[/code]

[b]style.css[/b]

[code]
body {
	font: 10px Verdana, Arial, Helvetica, sans-serif;
}
div#container {
	width: 400px;
	margin:0 auto;
	border: 1px solid #bac5d6;
	padding: 15px;
	background: #f2f4f7;
}

label {
	float: left;
	width: 140px;
	text-align: left;
	padding-top: 5px;
}

input, textarea {
	padding: 3px;
	margin: 3px;
	border: 1px solid #bac5d6;
	font: 10px Verdana, sans-serif;
	background: #fff;
}
input.fout, textarea.fout {
	border: 1px solid #FF0000;
}

label.fout {
	color: #FF0000;
}

[/code]