Jump to content

Adding an anti-spam question to PHP form


loulou28

Recommended Posts

Hi there,

 

I only know a little php at this stage, and usually just find scripts and modify them as appropriate, however this is proving a little too difficult.

 

Basically I want to add an antispam question to a form which I've done in the HTML:

 

<form id="form" action="contact.php" method="post">
                 <table>
                    <tr>
                        <td align="right"><label for="name">Name:</label></td><td><input type="text" name="name" id="name" /></td>
                    </tr>
                    <tr>
                        <td align="right"><label for="email">Email:</label></td><td><input type="text" name="email" id="email"  /></td>
                    </tr>
                    <tr>
                        <td align="right"><label for="telephone">Telephone:</label></td><td><input name="telephone" type="text" id="telephone" /></td>
                    </tr>
                    <tr>
                        <td align="right"><label for="field">Anti-spam question:</label></td><td><input name="field" type="text" id="field" value="Complete the Beatles lyric: 'all you need is...'?"  onfocus="if(this.value==this.defaultValue) this.value='';"/></td>
                    </tr>
                    <tr>
                        <td align="right"><label for="message">Message:</label></td><td><textarea name="message"></textarea></td>
                    </tr>
                    <tr>
                        <td colspan="2" align="right"><img src="images/contactdots.gif" width="338" height="10" alt="" /></td>
                    </tr>
                    <tr>
                        <td colspan="2" align="right"><input id="button" type="Submit" value="SUBMIT" alt="submit" /></td>
                    </tr>
                </table>
               </form>

 

As you can see, the form is processed via contact.php, however I'm not sure how to validate the form anti-spam question.

I have originally just been using javascript for validation, however I realise this might need to change to PHP.

 

If anyone could advise of the correct code to validate this and then get it sent via contact.php which has the following code so far, that would be really appreciated...

 

<?php

if($_SERVER['REQUEST_METHOD'] == "POST"){

// Pick up the form data and assign it to variables
$name = stripslashes($_POST['name']);
$email = stripslashes($_POST['email']);
$tel = $_POST['telephone'];
$comments = stripslashes($_POST['message']);

// Build the email (replace the address in the $to section with your own)
$to = 'myemail@email.com';
$subject = "The Vintage Affair Web Quote enquiry";
$comments = "Name: $name \nEmail: $email \nTelephone: $tel \n\nDetails: $comments";
$headers = "From: myemail@email.com" . PHP_EOL . "Reply-To: myemail@email.com";

// Send the mail using PHPs mail() function
mail($to, $subject, $comments, $headers);

// Redirect
header("Location: thankyou.html");

}
?>
 

Link to comment
Share on other sites

Yes you would want to validate this on php side, java side would be pointless and could easily get by.  Are you processing the form on the same page as the form?  Here is a example of how to work this.

if($_SERVER['REQUEST_METHOD'] == "POST"){

// Pick up the form data and assign it to variables
$name = stripslashes($_POST['name']);
$email = stripslashes($_POST['email']);
$tel = $_POST['telephone'];
$comments = stripslashes($_POST['message']);
$field = strtolower($_POST['field']);
$spam_check = 'love';
if($field == $spam_check){
// Build the email (replace the address in the $to section with your own)
$to = 'myemail@email.com';
$subject = "The Vintage Affair Web Quote enquiry";
$comments = "Name: $name \nEmail: $email \nTelephone: $tel \n\nDetails: $comments";
$headers = "From: myemail@email.com" . PHP_EOL . "Reply-To: myemail@email.com";

// Send the mail using PHPs mail() function
mail($to, $subject, $comments, $headers);

// Redirect
header("Location: thankyou.html");
}
else{ echo 'Spam check failed!'; }
}

Also I do have a premade fully validated contact form that I distribute at http://amecms.com/article/Easy-to-use-contact-form-with-validation

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.