contact_form.php
[code]<?php

// CONFIG YOUR E-MAIL
define('SEND_TO', 'demo@demo.nl');
define('SUBJECTS', 'Subject 1, Subject 2, Subject 3');
define('SUCCESS_MESSAGE', 'Thank you {name}, your message has been submitted to us.');
define('INBOX_MESSAGE', 'Name: {name} {enter} Company: {company} {enter} E-mail: {email} {enter} Phone number: {phone} {enter} Subject: {subject} {enter} Comment: {enter} {comment}');


// CONFIG YOUR ERROR MESSAGES
define('ERROR_MESSAGE_NAME', '(Name can\'t be blank)');
define('ERROR_MESSAGE_EMAIL', '(E-mail can\'t be blank)');
define('ERROR_MESSAGE_EMAIL_INVALID', '(Email is invalid)');
define('ERROR_MESSAGE_PHONE_INVALID', '(Phone is invalid)');
define('ERROR_MESSAGE_SUBJECT', '(Subject can\'t be blank)');
define('ERROR_MESSAGE_COMMENT', '(Comment can\'t be blank)');
define('ERROR_MESSAGE_CAPTCHA', '(Captcha can\'t be blank)');
define('ERROR_MESSAGE_CAPTCHA_INVALID', '(Captcha is invalid)');


// DON'T TOUCH BEGIN
@ini_set('session.use_cookies', '1');
@ini_set('session.use_trans_sid', 'false');
	
@session_set_cookie_params(0, '/');
@session_start();

if (ini_get('register_globals')) {
	$globals = array('_SESSION');

	foreach ($globals as $global) {
		foreach ($GLOBALS[$global] as $key => $value) {
			if ($value === @$GLOBALS[$key]) {
				unset($GLOBALS[$key]);
			}
		}
	}
}

@ini_set('magic_quotes_gpc', 'Off');

if (ini_get('magic_quotes_gpc')) {
	function clean($data) {
   		if (is_array($data)) {
  			foreach ($data as $key => $value) {
    			$data[$key] = clean($value);
  			}
		} else {
  			$data = stripslashes($data);
		}
		return $data;
	}			
	$_POST = clean($_POST);
}

function php_self(){
	if(isset($_SERVER['PATH_INFO']) && strlen($_SERVER['PATH_INFO'])> 0){
		return substr($_SERVER['PHP_SELF'], 0, (strlen($_SERVER['PHP_SELF']) - @strlen($_SERVER['PATH_INFO'])));
	}else{
    	return $_SERVER['PHP_SELF'];
	}
}

$subjects = explode(',', SUBJECTS);

$error					= FALSE;
$send 					= FALSE;

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
	$name    			= $_POST['name'];
	$company    		= $_POST['company'];
	$email   			= $_POST['email'];
	$phone   			= $_POST['phone'];
	$subject 			= $_POST['subject'];
	$comment			= $_POST['comment'];
	$captcha			= $_POST['captcha'];
		
	$pfind = array(
	  			'+',
				'-',
				' '
			);
			
	$phone_check = str_replace($pfind, '', $phone);
	
	if(empty($name)){
		$error_name 	= ERROR_MESSAGE_NAME;
		$error 			= TRUE;	
	}
	
	if(empty($email)){
		$error_email    = ERROR_MESSAGE_EMAIL;
		$error 			= TRUE;	
	}elseif(!eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', $email)){
		$error_email    = ERROR_MESSAGE_EMAIL_INVALID;
		$error 			= TRUE;
	}
	
	if(!empty($phone)){
		if(!ctype_digit($phone_check)){
			$error_phone    = ERROR_MESSAGE_PHONE_INVALID;
			$error 			= TRUE;
		}
	}
	
	if(empty($subject)){
		$error_subject  = ERROR_MESSAGE_SUBJECT;
		$error 			= TRUE;	
	}
	
	if(empty($comment)){
		$error_comment  = ERROR_MESSAGE_COMMENT;
		$error 			= TRUE;	
	}
	
	if(empty($captcha)){
		$error_captcha  = ERROR_MESSAGE_CAPTCHA;
		$error 			= TRUE;	
	}elseif($_SESSION['captcha'] != $captcha){
		$error_captcha  = ERROR_MESSAGE_CAPTCHA_INVALID;
		$error 			= TRUE;
	}
	
	if(!$error) {
	
		if(strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { 
      		$ent 		= "\r\n"; 
    	}elseif(strtoupper(substr(PHP_OS, 0, 3) == 'MAC')) { 
      		$ent 		= "\r"; 
    	}else{ 
     		$ent 		= "\n"; 
    	}
		
		$find = array(
	  			'{name}',
	  			'{company)',
				'{email}',
				'{phone}',
	  			'{subject}',
	  			'{comment}',
	  			'{enter}'
			);
	
		$replace = array(
	  			'name' 		=> $name,
				'company' 	=> $company,
				'email' 	=> $email,
				'phone' 	=> $phone,
	  			'subject'   => $subject,
	  			'commment'  => $comment,
	  			'enter'		=> $ent
			);
			
		$comment = str_replace($find, $replace, INBOX_MESSAGE);
	
		$boundary 		= '----=_NextPart_' . md5(rand());  
	    	
		$headers  		= 'From: ' . $name . '<' . $email . '>' . $ent; 
    	$headers 	   .= 'X-Mailer: PHP/' . phpversion() . $ent;  
    	$headers 	   .= 'MIME-Version: 1.0' . $ent; 
    	$headers 	   .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . $ent . $ent;  
	
		$message  		= '--' . $boundary . $ent;  
		$message 	   .= 'Content-Type: text/plain; charset="utf-8"' . $ent; 
		$message 	   .= 'Content-Transfer-Encoding: base64' . $ent . $ent;
    	$message 	   .= chunk_split(base64_encode($comment));
		
		ini_set('sendmail_from', $email);
		
    	mail(SEND_TO, $subject, strip_tags(html_entity_decode($message)), $headers);  
		
		$send 			= TRUE;
		$success 		= str_replace($find, $replace, SUCCESS_MESSAGE);
	}
}
// DON'T TOUCH END

?>
<!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" dir="ltr" lang="en" xml:lang="en">
<head>
<title>Lexperts Contact Form</title>
<meta name="description" content="Lexperts contact form" />
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>

<div id="box">

<? if($send){ ?>

<div id="success"><h1>Email Sent Successfully.</h1><p><?=$success; ?></p></div>

<? }else{ ?>

	<div id="form">

		<? if($error) { ?><div class="error"><h1>Invalid Form Input</h1></div><? } ?>

		<form  method="post" action="<?=php_self() ?>">

			<label for="name"><span class="required">*</span> Your Name 
	
			<? if(!empty($error_name)) { echo '<span class="error_message">'.$error_name.'</span>'; }elseif(!empty($name)){ echo '<img src="image/icon/accept.png" />'; } ?></label>
	
			<input name="name" type="text" id="name" size="30" <? if(!empty($name)){ echo 'value="' . $name . '"'; } ?> class="text-input" />
			
			
			<label for="company">Company 
	
			<? if(!empty($error_company)) { echo '<span class="error_message>'.$error_company.'</span>'; }elseif(!empty($company)){ echo '<img src="image/icon/accept.png" />'; } ?></label>
	
			<input name="company" type="text" id="company" size="30" <? if(!empty($company)){ echo 'value="' . $company. '"'; } ?> class="text-input" />
	
	
	    	<label for="email"><span class="required">*</span> Email 
    
	   	 	<? if(!empty($error_email)) { echo '<span class="error_message">'.$error_email.'</span>'; } elseif(!empty($email)){ echo '<img src="image/icon/accept.png" />'; } ?></label>
    
	    	<input name="email" type="text" id="email" size="30" <? if(!empty($email)){ echo 'value="' . $email . '"'; } ?> class="text-input" />


			<label for="phone">Phone number 
	
			<? if(!empty($error_phone)) {?><span class="error_message"><?=$error_phone?></span><? }elseif(!empty($phone)){ ?><img src="image/icon/accept.png" /><? } ?></label>
	
			<input name="phone" type="text" id="phone" size="30" <? if(!empty($phone)){ echo 'value="' . $phone . '"'; } ?> class="text-input" />
	


	    	<label for="subject"><span class="required">*</span> Subject 
    
	    	<? if(!empty($error_subject)) { echo '<span class="error_message">'.$error_subject.'</span>'; } elseif(!empty($subject)){ echo '<img src="image/icon/accept.png" />'; } ?></label>
    
	    	<select name="subject" type="text" id="subject">
	    	<? foreach($subjects as $value) { echo '<option value="'.$value.'">'.$value.'</option>';  } ?>
    		</select>
    
    
    		<label for="comment"><span class="required">*</span> Your comment 
    
    		<? if(!empty($error_comment)) { echo '<span class="error_message">'.$error_comment.'</span>'; }elseif(!empty($comment)){ echo '<img src="image/icon/accept.png" />'; } ?></label>
    
    		<textarea name="comment" id="comment" rows="8"><? if(!empty($comment)){ echo $comment; } ?></textarea>
    		
    		<label for="captcha"><span class="required">*</span> Are you human? 
    		<? if(!empty($error_captcha)) { echo '<span class="error_message">'.$error_captcha.'</span>'; } ?></label>
    		<div class="captcha"><img src="captcha.php" /></div> 
    		<input name="captcha" type="text" id="captcha" size="30" class="text-input-captcha" />
    		<br />
    		<input type="submit" class="submit" value="Send" />
  
		</form>

	</div>

<? } ?>

</div>
</body>
</html>
[/code]

captcha.php
[code]
<?php
@ini_set('session.use_cookies', '1');
@ini_set('session.use_trans_sid', 'false');
	
@session_set_cookie_params(0, '/');
@session_start();

if (ini_get('register_globals')) {
	$globals = array('_SESSION');

	foreach ($globals as $global) {
		foreach ($GLOBALS[$global] as $key => $value) {
			if ($value === @$GLOBALS[$key]) {
				unset($GLOBALS[$key]);
			}
		}
	}
}

header('Content-type: image/png');

$fonts  					= array ("arial.ttf", "verdana.ttf");
$im 						= @imagecreate(140, 26)or die("Cannot Initialize new GD image stream");
$white              		= imagecolorallocate($im, 255, 255, 255);
$black              		= imagecolorallocate($im, 79, 77, 79);
$links						= 6;

function generate_captcha($data) {
	$value	     			= '';  
	$charset     			= 'abcdefghijklmnopqrstuvwxyz1234567890';
    $charset_len			= strlen($charset) - 1;
    srand(microtime() * 1000000);
    
    for ($i=0;$i<$data;$i++)
    $value .= $charset{rand(0, $charset_len)};
    return $value;
}

for ($q=1; $q < 7; $q++){
    $generate_captcha[$q]   = generate_captcha(1);
    $size   	 			= rand (10,14);       
    $corner      			= rand (-15,15);
    $top     				= rand (16,20);
    $random_font    		= array_rand($fonts);
    imagettftext($im, $size, $corner, $links, $top, $black, 'font/'.$fonts[$random_font], $generate_captcha[$q]);
    $links 					= $links + 20;  
}

$_SESSION['captcha']		= $generate_captcha[1] . $generate_captcha[2] . $generate_captcha[3] . $generate_captcha[4] . $generate_captcha[5] . $generate_captcha[6];

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

style.css
[code]
body {
	background-color: #f6f6f6; 
	text-align: center; /* IE */ 
	font-family: Helvetica,Arial,sans-serif;
}

#box { 
	width: 600px;  
	padding:34px; 
	padding-top: 40px; 
	padding-bottom: 40px; 
	background-color: #ffffff; 
	margin: 0 auto; 
	margin-top: 40px;
	margin-bottom: 40px;
	text-align: left;
	border:1px solid #CCCCCC; 
	-moz-border-radius-bottomleft:10px;
	-moz-border-radius-bottomright:10px;
	-moz-border-radius-topleft:10px;
	-moz-border-radius-topright:10px;
}

textarea, select, .text-input, .text-input-captcha {
	width: 350px;
	font-family: Helvetica,Arial,sans-serif;
	font-size:13px;
	color: #333333;
	margin-bottom:20px;
	margin-top:4px;
	padding:10px;
	border:1px solid #d6d6d6;
	-moz-border-radius-bottomleft:6px;
	-moz-border-radius-bottomright:6px;
	-moz-border-radius-topleft:6px;
	-moz-border-radius-topright:6px;
}

.submit {
	font-family: Helvetica,Arial,sans-serif;
	font-size:16px;
	color: #ffffff;
	margin-bottom:20px;
	margin-top:5px;
	padding:4px 20px;
	border:1px solid #459300;
	-moz-border-radius-bottomleft:6px;
	-moz-border-radius-bottomright:6px;
	-moz-border-radius-topleft:6px;
	-moz-border-radius-topright:6px;
	background-color: #7dbc00;
}

textarea, .text-input, .text-input-captcha {
	background-image: url(image/form_bg.jpg);
	background-repeat: repeat-x;
}

.input, .text-input {
	width:250px;
}

.text-input-captcha {
	width:136px;
	text-align: center;
}

textarea {
	width:500px;
}

label {
	display:block;
	font-weight:bold;
	margin-top:10px;
}

#success h1 {
	font-size:24px;
	font-weight:bold;
	color: #555555;
}

#success p {
	font-size:16px;
	color: #555555;
}


.error_message { 
	font-size:12px;
	color: #ff4b4b;
	font-weight:lighter;
	margin-left: 6px;
}

.error h1 {
	font-size:24px;
	font-weight:bold;
	color: #ff4b4b;
}

.required { color: #ff4b4b; }

.captcha {
	border:1px solid #d6d6d6;
	width: 136px;
	height: 26px;
	padding:4px;
	padding-left: 16px;
	margin-top:4px;
	-moz-border-radius-bottomleft:6px;
	-moz-border-radius-bottomright:6px;
	-moz-border-radius-topleft:6px;
	-moz-border-radius-topright:6px;
}
[/code]