Question

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!

Was it helpful?

Solution

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top