PHP form sending blank emails
I'm an absolute beginner with PHP and searched the web for a contact form. I followed the steps and the form works fine, emailing me when someone fills it in and then going to a success page once it's sent. I set this up yesterday.
Today however I have received a blank mail, as though the form has sent without being filled in.
Below is the PHP and HTML I'm using. Any advice on how to stop it sending blank emails would be really appreciated. I really don't know what I'd need to do to stop this.
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name \n Message: $message";
$recipient = "firstname.lastname@example.org, email@example.com";
$subject = "Message From mywebsite.com Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
print "<meta http-equiv=\"refresh\" content=\"0;URL=../pages/contact_success.html\">";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="description" content="Send your questions or feedback to Home Of Katkin.">
<link rel="stylesheet" type="text/css" href="../css/homeofkatkin_stylesheet.css">
<link rel="stylesheet" href="../css/contact.css" type="text/css" media="screen" />
<title>Home of Katkin - Contact: Send your questions or feedback to Home Of Katkin.</title>
var _gaq = _gaq || ;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script'); s.parentNode.insertBefore(ga, s);
<!-- Header -->
<!-- Store temporarily down
<span><a href="http://homeofkatkin.com/store/account.php?osCsid=194d30bf0273518b08d97099cd4f1a69">My Account</a></span>
<span><a href="http://homeofkatkin.com/store/contact_us.php">Contact</a></span> -->
<!-- Content -->
<form id="form" action="../php/contact.php" method="post">
<input type="text" name="name" size="40"><br><br>
<input type="text" name="email" size="40"><br><br>
Your comments or questions:<br>
<textarea name="message" rows="10" cols="40"></textarea><br><br>
<input type="submit" value="Send"> <input type="reset" value="Clear">
<img src="../images/contact/studio.jpg" alt="Katy's studio" title="Katy's studio" />
© Home of Katkin 2010 - 2011
I don't see anything for form validation (ie, making sure a field is filled out, making sure it's only letters for name, etc.) So anyone could bring up the form and hit SUBMIT without filling anything out. This _could_ explain what happened, but it's just a guess.
I never thought of that, as I say, I'm new to PHP.
I've searched for a tutorial on doing this. Do you think the method here would be suitable.
Sorry for asking what is probably a naive question but I don't know php so don't know how to tell between good processes and bad processes.
Originally Posted by satkin2
If you get stuck just post a message.
Everybody has to start somewhere, right? :) We all did.
Originally Posted by satkin2
Client-side validation GOOD: it saves bandwidth and server CPU.
Server-side validation GOOD: it can't be bypassed.
Server-side validation BAD: you have to actually submit the form in order to validate the entries, which takes up network bandwidth and server CPU time/resources.
These are over-simplified, of course, but you get the basic principle.
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Tags for this Thread