PHP联系表单不通过电子邮件发送所有字段

时间:2015-06-01 13:53:33

标签: php variables recaptcha contact-form

我对PHP有很少的经验。

我正在测试该网站的联系表格。我只收到电子邮件中的“主题,消息和标题”字段。

我还需要在我的电子邮件中显示电话和姓名字段。

我做错了什么?

感谢任何帮助 - 谢谢!

<?php

    $name;$email;$message;$captcha;$telephone;
    if(isset($_POST['name'])){
      $name=$_POST['name'];
    }if(isset($_POST['email'])){
      $email=$_POST['email'];
      }if(isset($_POST['telephone'])){
      $telephone=$_POST['telephone'];
    }if(isset($_POST['message'])){
      $message=$_POST['message'];
    }if(isset($_POST['g-recaptcha-response'])){
      $captcha=$_POST['g-recaptcha-response'];
    }
    if(!$captcha){
      echo '<h2>Please check the the captcha form. <a href=http://www.website.com#contact/>Back to Form</a></h2>';
      exit;
    }
    $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6LcYjgcT****q9vhur7iH_O4dZPl4xUAVwW8=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
    if($response.success==false)
    {
      echo '<h2>You are spammer ! Get the @$%K out</h2>';
    }else
    {
    // Checking For Blank Fields..
if ($_POST["name"] == "" || $_POST["email"] == "" || $_POST["telephone"] == "" || $_POST["message"] == "") {
    echo "Fill All Fields..";
} else {
    // Check if the "Sender's Email" input field is filled out
    $email = $_POST['email'];
    // Sanitize E-mail Address
    $email = filter_var($email, FILTER_SANITIZE_EMAIL);
    // Validate E-mail Address
    $email = filter_var($email, FILTER_VALIDATE_EMAIL);
    if (!$email) {
        echo "Invalid Sender's Email";
    } else {
        $to = 'email@gmail.com';
        $subject = 'Contact Form';
        $message = $_POST['message']; 
        $name = $_POST['name'];
        $headers = 'From:' . $email . "\r\n";
        // Sender's Email
        // Message lines should not exceed 70 characters (PHP rule), so wrap it
        $message .= "\r\n Name: " . $name;
        $message .= "\r\n Email: " . $email;
        $message .= "\r\n Telephone: " . $telephone;
        $message .= "\r\n Message: " . $message;
        // Send Mail By PHP Mail Function
        if (mail($to, $subject, $message, $headers)) {
            echo "Your mail has been sent successfully!<a href=http://wwwwebsite.com>Back</a>";
        } else {
            echo "Failed to send email, try again.";
            exit ;
        }
    }
}

} ?&GT;

1 个答案:

答案 0 :(得分:0)

$message变量是将发送到您的地址的邮件内容,将您希望通过邮件获取的值添加到该变量中。

像这样:(因为我认为你不使用HTML邮件)

$message .= "\r\n Name : " . $name;
$message .= "\r\n Email : " . $email;

等。

在致电mail功能之前。

另外:

您在$email变量中添加了电话号码,电子邮件和消息。你应该给他们自己的变量。