I'm having a little trouble with my contact form. It's sending emails to my server but somehow it's not taking the information from the "email"
field. Instead, what I get in the "From:"
field is my address on the server like this: "muzedima@box693.bluehost.com"
.It's not taking the info from the "name" field either. What did I do wrong? Also, I'm trying to get the subject line to say the name of the sender, but I failed miserably, is it possible?
Here's the HTML:
<div class="large-7 medium-10 small-12 medium-centered large-centered column">
<div class="row">
<form method="post" action="email2.php">
<input type="text" name="name" class="defaultText" title="your name">
<input type="text" name="email" class="defaultText" title="your email address">
<textarea name="comments1" class="defaultText" title="Tell us about your business"></textarea>
<textarea name="comments2" class="defaultText" title="How can we help?"></textarea>
<div class="large-7 medium-10 small-12 medium-centered large-centered column">
<input type="submit" name="send message" value="Send Message">
</div>
</form>
</div>
</div>
And here's the PHP script:
<?php
if (isset($_POST['email']))
//if "email" is filled out, send email
{
//send email
$to = 'info@muzedimage.com';
$name = $_POST['name'] ;
$email = $_POST['email'] ;
$subject = 'Inquiry from $name';
$comments1 = $_POST['comments1'] ;
$comments2 = $_POST['comments2'] ;
$message = $comments1 . "\n\n" . $comments2;
$headers = "From: $name, $email";
mail($to, $subject, $message, $headers);
echo "<script>window.location = 'http://www.muzedimage.com'</script>";
}
else
//if "email" is not filled out,
{
echo "Oops!, you forgot your email!";
}
?>
Thanks guys!
PHP variables are not evaluated inside of single quotes, only double quotes, therefore change the following:
$subject = 'Inquiry from $name';
//to
$subject = "Inquiry from $name";
Also for the email portion, you're not doing anything with it... so do something with it.
$message = $comments1 . "\n\n" . $comments2 . "\n\n" . $email;
Now it sends the email as well.
Ohgodwhy
already pointed out one of the issues with your code, so I won't bother repeating it.
In regards as to why you're receiving the From:
as "muzedima@box693.bluehost.com"
is because of this line:
$headers = "From: $name, $email";
It needs to be like this:
$headers = "From: $name <$email>\r\n";
The $email
variable must be encapsulated by <
and >
and it's best to end it with \\r\\n
Tested and working with both Ohgodwhy's
answer and mine.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.