ControlledChaos
8/12/2019 - 3:42 AM

Simple honeypot for an HTML form using PHP

Simple honeypot for an HTML form using PHP

<?php

//check if form was sent
if($_POST){

	$to      = 'some@email.com';
	$subject = 'Testing HoneyPot';
	$header  = "From: $name <$name>";
	$name    = $_POST['name'];
	$email   = $_POST['email'];
	$message = $_POST['message'];

	// Honey pot field.
	$honeypot = $_POST['firstname'];

	// Check if the honeypot field is filled out. If not, send a mail.
	if ( $honeypot > 1 ) {
	// or if ( ! empty( $honeypot) )
		return; //you may add code here to echo an error etc.
	} else {
		mail( $to, $subject, $message, $header );
	}
}

?>

<html>
	<head>
		<title>HoneyPot for HTML Form Example</title>
		<style>
		.hide-robot{
			display:none;
		}
		</style>
	</head>

	<body>

		<form method="post" action="#my-form" id="my-form">
			<!-- Create fields for the honeypot -->
			<input name="firstname" type="text" id="firstname" class="hide-robot">
			<!-- honeypot fields end -->
			
			<input name="name" type="text" id="name" placeholder="Name" required><br>
			<input name="email" type="email" id="email" placeholder="Email" required><br>
			<textarea name="message" id="message" placeholder="Enter your message here" required></textarea><br>
			<input type="submit">
		</form>

	</body>
</html>