PHP:如果验证码正确完成,尝试获取html表单以发送电子邮件

PHP:如果验证码正确完成,尝试获取html表单以发送电子邮件,php,email,recaptcha,Php,Email,Recaptcha,以下是邮件表单的HTML: 在头部: <script src="https://www.google.com/recaptcha/api.js" async defer></script> 在正文中: <form action="mail.php" method="POST"> <p>Name</p> <input type="text" name="name"> <p>Email&

以下是邮件表单的HTML:

在头部:

<script src="https://www.google.com/recaptcha/api.js" async defer></script>

在正文中:

    <form action="mail.php" method="POST">
    <p>Name</p> <input type="text" name="name">
    <p>Email</p> <input type="text" name="email">
    <p>Phone Number</p> <input type="text" name="number"<br/><br/>
    <div class="g-recaptcha" data-sitekey="my site key"></div><br/>
    <input type="submit" value="Send"><input type="reset" value="Clear">
</form>

姓名

电子邮件


电话号码

那么这可能是PHP邮件问题,而不是验证码问题。因为邮件根本没有到。您是否检查过邮件日志中的任何错误等?为什么会出现颠倒的逻辑?,
如果(!$resp->有效){
将为true,但值为false…继续获取“没有正确输入reCAPTCHA。请返回并重试。(reCAPTCHA说:不正确的captcha sol)”所以我将它切换到测试电子邮件是否会发送。还没有检查日志,现在正在尝试查找它。打印$\u提交表单时,打印($\u POST);检查您的帖子值并与您期望的内容进行比较。检查recaptcha_Check_response函数,以便了解您应该期望的内容。因此,当我打印帖子时,我会从html中的文本字段以及[g-recaptcha-response]中获得响应接着是一大堆随机数字和字母,不知道该怎么做。我想谷歌的文档说返回的是一个JSON对象,只是不知道如何检查该信息的布尔值是真还是假。
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$formcontent="From: $name \n Phone Number: $number";
$recipient = "me@gmail.com";
$subject = "Contact Form";
$mailheader  = 'MIME-Version: 1.0' . "\r\n";
$mailheader .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$mailheader .= 'To: $recipient';
$mailheader .= 'From: $email \r\n';
  if (empty($_POST["email"])) {
    die("Please fill in all forms.");
  } else {
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      die('Invalid email.');
    } else {
      if (strlen($number) == 10) {
        require_once('recaptchalib.php');
        $privatekey = "priv key";
        $resp = recaptcha_check_answer ($privatekey,
                                        $_SERVER["REMOTE_ADDR"],
                                        $_POST["recaptcha_challenge_field"],
                                        $_POST["recaptcha_response_field"]);
         if (!$resp->is_valid) {
                die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
                "(reCAPTCHA said: " . $resp->error . ")");
        } else {
                mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
            die("Thank You!");
        }
    } else {
        die ("Please enter a 10 digit phone number with no hyphens.");
        }
  }
}
?>