Hey guys,
I'm new and have read (and tried) all posts about honeypots for my contactform.
I have also tried a combination with a loadtime function, but that also failed.
In my example below I have only the honeypot function, but it's not working...
Which PHP-guru can help me out? I asume only the PHP part is wrong....
I also asume I only have to adjust the "sendemail.php" and not the "class.sendemail.php".
Who can help me out? Score extra points by also putting a loadtime function in it ;-)
Thanks for all your help!
HTML Code:
-------------------------------------
CSS (style.css):
.robotic {
display:none;
}
-------------------------------------
HMTL (index.html):
<div id="contactform">
<div id="response"></div>
<form method="POST" action="sendemail.php" class="form">
<div id="main">
<p class="name">
<input type="text" name="name" id="name" />
<label for="name" class="overlabel">Name</label>
</p>
<p class="email">
<input type="text" name="email" id="email" />
<label for="email" class="overlabel">E-mail</label>
</p>
<p class="text">
<textarea name="comments" id="comments" ></textarea>
<label for="comments" class="overlabel">Comments</label>
</p>
<!-- Honeypot -->
<p class="robotic" id="pot">
<input type="text" name="robotest" id="robotest" />
<label for="robotest" class="overlabel">Leave this blank</label>
</p>
<p class="submit">
<button type="submit" name="submit" id="submit" class="graybutton">Send e-mail</button>
</p>
</div><!--end main-->
</form>
</div><!--end contact form-->
-------------------------------------
PHP (sendemail.php):
PHP Code:
<?php
$name = trim($_POST['name']);
$email = $_POST['email'];
$comments = $_POST['comments'];
$robotest = $_POST['robotest'];
$site_owners_email = 'xxx@xxx.xxx';
$site_owners_name = 'Xxx Xxx';
if (strlen($name) < 2) {
$error['name'] = "Enter your name";
}
if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
$error['email'] = "Enter a valid e-mail";
}
if (strlen($comments) < 3) {
$error['comments'] = "Leave a comment";
}
if (strlen($robotest) > 2) {
$error['robotest'] = "You are a bot";
}
if (!$error) {
require_once('class.sendemail.php');
$mail = new PHPMailer();
$mail->From = $email;
$mail->FromName = $name;
$mail->Subject = "Bericht via de website";
$mail->AddAddress($site_owners_email, $site_owners_name);
$mail->Body = $comments;
$mail->Send();
echo "<p class='success'> Message sent </p>";
} # end if no error
else {
$response = (isset($error['name'])) ? "<p id='error1'>" . $error['name'] . " \n" : null;
$response .= (isset($error['email'])) ? "<p id='error2'>" . $error['email'] . "</p> \n" : null;
$response .= (isset($error['comments'])) ? "<p id='error3'>" . $error['comments'] . "</p>" : null;
$response .= (isset($error['robotest'])) ? "<p id='error4'>" . $error['robotest'] . "</p>" : null;
echo $response;
} # end if there was an error sending
?>
Bookmarks