1

我是 PHP 新手,我正在尝试在 PHP 邮件表单中添加 reCaptcha。
代码类似于:

PHP:

<?php if (isset($_POST['send'])) {
    $to = "mymail@gmail.com";
    $subject = "subject";
    $message = 'Name: ' . $_POST['name'] . "\n";
    $message .= 'Email: ' . $_POST['email'] . "\n";
    $message .= 'IP: ' . $_SERVER['REMOTE_ADDR'] . "\n";
    $message .= 'Message: ' . $_POST['message'];
    $success = mail($to, $subject, $message); }?>`

HTML:

<form method="post">
<p>name</p>
<input type="text" name="name" class="contactformimput"/>
<p>email*</p>
<input type="text" name="email" class="contactformimput"/>
<p>number</p>
<input type="text" name="number" class="contactformimput"/>
<p>Messaggio*</p>
<input type="text" name="message" onkeyup="adjust_textarea(this)" class="contactformimput" id="contactformtext">
<div class="g-recaptcha" data-sitekey="__MYPUBBLICKEY__"></div>
<div id="divcontactbutton">
<input type="reset" name="send" value="Resetta" class="button" id="resetmessage"/>
<input type="submit" name="send" value="Invia Messaggio" class="button" id="sendmessage"/>
</div>
</form>
4

1 回答 1

0

使用 Google 的 recaptcha 易于使用,您需要做的第一件事是在 Google recaptcha 上注册您的网站以执行此操作 GoogleRECAPTCHA

提交后,Google 会为您提供以下两个信息。

  • 站点密钥
  • 密钥

使用此代码将其集成到您的站点中的 head 标签内

<script src='https://www.google.com/recaptcha/api.js'></script>

要在表单中显示小部件,请在表单中使用此代码

<div class="g-recaptcha" data-sitekey="SITE-KEY"></div>

当表单提交到服务器时,此脚本将g-recaptcha-response作为 POST 数据发送。您需要验证它以查看用户是否检查了验证码

用于检查的php代码

 if(isset($_POST['g-recaptcha-response'])){
      $captcha=$_POST['g-recaptcha-response'];
    }
    if(!$captcha){
      echo '<h2>Check captcha .</h2>';
      exit;
    }
    $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=YOUR SECRET KEY&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
    if($response.success==false)
    {
        //redirect back
    }else
    {
       //your mail code 
    }
于 2015-05-19T11:54:05.503 回答