Friday, 8 April 2016

html5 - PHP file is not retrieving values from HTML website



My PHP file is not passing values from the website to my email.



Form code block in index.html:





















CSS:



#contact input[type="text"],

#contact input[type="email"],
#contact input[type="tel"],
#contact textarea {
width:75%;
box-shadow:inset 0 1px 2px #DDD, 0 1px 0 #FFF;
-webkit-box-shadow:inset 0 1px 2px #DDD, 0 1px 0 #FFF;
-moz-box-shadow:inset 0 1px 2px #DDD, 0 1px 0 #FFF;
border:1px solid #CCC;
background:#FFF;
border-radius:5px;

padding:10px 10px;
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
}
fieldset {
border:0;
}
#contact button [type="submit"],
#contact button [type="reset"]
{

width:100%;
height:AUTO;
}


PHP file:



//collect data
$name = $_POST['name'];//Your Name

$email = $_POST['email'];//Email ID
$contact = $_POST['contact'];//Contact number
$message = $_POST['message'];//Message

//declare data
$to = "vertika7march@gmail.com";//Recipient Email ID
$subject = "Message from center2enter.com";//Inbox Subject
$body = "Message from-\n Name: $name\n Email: $email\n Contact: $contact\n Message: $message";
mail($to,$subject,$body);//Mail sent


//redirect
echo "
Thank you for your message. I will be in touch with you very soon!
";//Thank you Screen
?>


Output I am getting on my mail:




'Message from-




Name:



Email:



Contact:



Message:'




[Not getting values of the variables submitted on my website 'center2enter.com']




I tried:





  • $body = "From: ($_POST['name'])\n Email: ($_POST['email'])\n Contact: ($_POST['contact'])\n $message = ($_POST['message'])";


  • $body = ("From:" .$name "\nEmail:" .$email "\nContact:" .$contact "\nMessage:" .message);






Do I have to use PHPMailer or can I send mail without that?


Answer



Simple; remove enctype="text/plain" from your form tags; it isn't a valid enctype when using POST arrays.



Plus, I didn't see a closing tag in your code, so make sure it is in fact present.



You should also use proper headers, otherwise your code may be mistaken for spam without a valid From: email address.






It's also advisable that you check for any empty inputs, should someone not be using an HTML5 compatible browser; it can happen.






Do I have to use PhpMailer or I can send mails without that?




Even if you were to use PHPMailer or any other mailer, you would still have to remove the enctype from your form.


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...