Email Form not Working
Posted: Wed Dec 08, 2010 3:47 pm
Hello,
I'm new to PHP, still I'm trying a code that I got from a website, I tested in a page I own and it redirects to the sucess web page, the thing is that I never receive the email, not even in the junk folder or anything. I tried different email adressess including one with my domain extension.
In this example I put a fake email address but I'm using an address that it exists.
What can be wrong if it seems that is working.
Here is the code
thanks in advance.
I'm new to PHP, still I'm trying a code that I got from a website, I tested in a page I own and it redirects to the sucess web page, the thing is that I never receive the email, not even in the junk folder or anything. I tried different email adressess including one with my domain extension.
In this example I put a fake email address but I'm using an address that it exists.
What can be wrong if it seems that is working.
Here is the code
Code: Select all
<?php
if(!isset($_POST['submit']))
{
//This page should not be accessed directly. Need to submit the form.
echo "error; you need to submit the form!";
}
$name = $_POST['nombre'];
$visitor_email = $_POST['correo'];
$message = $_POST['comentarios'];
//Validate first
if(empty($name)||empty($visitor_email))
{
echo "Name and email are mandatory!";
exit;
}
if(IsInjected($visitor_email))
{
echo "Bad email value!";
exit;
}
$email_from = '$visitor_email';//<== update the email address
$email_subject = "New Form submission";
$email_body = "You have received a new message from the user $name.\n".
"Here is the message:\n $message".
$to = "myemailadress@domain.com";//<== update the email address
$headers = "From: $email_from \r\n";
$headers .= "Reply-To: $visitor_email \r\n";
//Send the email!
mail($to,$email_subject,$email_body,$headers);
//done. redirect to thank-you page.
header('Location: http://address.html');
// Function to validate against any email injection attempts
function IsInjected($str)
{
$injections = array('(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str))
{
return true;
}
else
{
return false;
}
}
?>