Scripts
Lexperts Contact Form
Script is te downloaden op: http://www.lexperts.nl/free/lexperts-contact-form/ Voor de mensen die liever copy/paste doen. Zorg er voor dat je drie extra mappen aangemaakt worden (font, image, icon): De volgende fonts moet in de map "font" te vinden zijn: http://www.lexperts.nl/free/lexperts-contact-form/demo/font/arial.ttf http://www.lexperts.nl/free/lexperts-contact-form/demo/font/verdana.ttf De volgende afbeelding moet in de map "image" te vinden zijn: http://lexperts.nl/free/lexperts-contact-form/demo/image/form_bg.jpg De map image moet nog een map "icon" erbij komen en hierin moet de volgende afbeelding te vinden zijn: http://lexperts.nl/free/lexperts-contact-form/demo/image/icon/accept.png
lexperts-contact-form
contact_form.php
[code]<?php
// CONFIG YOUR E-MAIL
define('SEND_TO', '[email protected]');
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]
Reacties
0