php - 如何使 php 中需要 google ReCAPTCHA

标签 php html css

我有一个 PHP 表单,其中包含一些字段和 google ReCAPTCHA 字段以及存储在数据库表中的值,但我想让 google ReCAPTCHA 字段成为必需字段。 代码在这里:

<?PHP

if(isset($_POST['submit']))
    {
{
        $name=$_REQUEST['name'];
        $email=$_REQUEST['email'];
        $message=$_REQUEST['message'];
        $user_id=$_SESSION['id'];   
        $sql="insert into contact (name,email,message,user_id,status)
        values('$name','$email','$message','$user_id','1')";
        $qex=mysql_query($sql); 
        if(!$qex)
        {
            die("Contact information  is not Added".mysql_error());     
        }   
        $msgsec="Contact information is Added";
?>

表单代码:

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


<form id='contactus' method='post' >
        <input type='hidden' name='submit' id='submit' value='1'/>
        <label><h2>Your Name <strong style="color:red">*</strong></h2></label>
            <input type="text" class="form-control" required name="name" id="name" placeholder="Please enter you'r name"/>
        <label><h2>Your Email <strong style="color:red">*</strong></h2></label>
            <input type="email" class="form-control" required name="email" id="email" placeholder="Please enter you'r email address"/>
        <label><h2>Your Message <strong style="color:red">*</strong></h2></label>
            <textarea class="form-control" required name="message" id="message" placeholder="Please type you'r message here"></textarea>
        <br  />
    <div class='container'>
        <div class="g-recaptcha" data-sitekey="6LevWB0UAAAAAEPIUh40HptW3PxfYFqjvz2Wa05D"></div>
    </div>
    <div class='container'>
        <input type="submit" name="submit" class="btn btn-primary" value="SEND MESSAGE">
    </div>  
  </form>

截至目前,不需要 Google ReCAPTCHA 选项。无论我是否点击验证码,表单详细信息始终与提交按钮一起存储。我想让 Google ReCAPTCHA 成为必需的。请检查我的代码并告诉我。我缺少什么。

感谢和问候。 安 git

最佳答案

这是经过验证的谷歌验证码

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

/*Site Key and secret key is different thing so change it with ur keys */
$errMsg ="";
if(isset($_POST['submit']))
{
        if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])):
        //your site secret key

        $secret = '*********************';
        //get verify response data
        $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
        $responseData = json_decode($verifyResponse);
        print_r($responseData);

        $name = !empty($_POST['name'])?$_POST['name']:'';
        $email = !empty($_POST['email'])?$_POST['email']:'';
        $message = !empty($_POST['message'])?$_POST['message']:'';
        $user_id=$_SESSION['id'];   
        if($responseData->success):
            //contact form submission code
            $sql="insert into contact (name,email,message,user_id,status)
            values('$name','$email','$message','$user_id','1')";
            $qex=mysql_query($sql); 
            if(!$qex)
            {
                die("Contact information  is not Added".mysql_error());     
            }   
            $errMsg="Contact information is Added";

        else:
            $errMsg = 'Robot verification failed, please try again.';
        endif;
    else:
        $errMsg = 'Please click on the reCAPTCHA box.';
    endif;

}
echo $errMsg ;
?>
<body>
<form id='contactus' method='post' >
        <input type='hidden' name='submit' id='submit' value='1'/>
        <label><h2>Your Name <strong style="color:red">*</strong></h2></label>
            <input type="text" class="form-control" required name="name" id="name" placeholder="Please enter you'r name"/>
        <label><h2>Your Email <strong style="color:red">*</strong></h2></label>
            <input type="email" class="form-control" required name="email" id="email" placeholder="Please enter you'r email address"/>
        <label><h2>Your Message <strong style="color:red">*</strong></h2></label>
            <textarea class="form-control" required name="message" id="message" placeholder="Please type you'r message here"></textarea>
        <br  />
    <div class='container'>
        <div class="g-recaptcha" data-sitekey="*********************"></div>
    </div>
    <div class='container'>
        <input type="submit" name="submit" class="btn btn-primary" value="SEND MESSAGE">
    </div>  
  </form>
</body>  
</html>

关于php - 如何使 php 中需要 google ReCAPTCHA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43464638/

相关文章:

apache - HTML5 缓存 list 和内容类型

html - z-index 和汉堡菜单

javascript - 如何删除 html 5 表单元素的默认样式?

html - 使用文本屏蔽视频

php - 如何使 cakePHP 的表单助手 'create' 操作使用自定义 ID?

php - 在 HTML/Javascript 中单击时显示图像

php - 如何使用 php mysql LOAD DATA INFILE 将每个记录的变量值增加 1

php - Dockerfile Image 命令 '/bin/sh -c apt-get install -y mysqld-server' 返回非零代码 : 100

javascript - 是否可以为 javascript/HTML 幻灯片/旋转木马创建后退按钮?

javascript - 使用可滚动的固定列创建嵌套布局