将Google NoCaptcha ReCaptcha实施到现有形式中


Implementing Google NoCaptcha ReCaptcha into existing form

我正在尝试将Google的nocaptcha实现到我的联系表单中。 我可以很好地将小部件放在我的代码中。 但是我不知道如何设置PHP端(我对PHP一无所知)。

我想知道是否有人可以帮助我理解在哪里放什么......我尝试了一些教程,但同样 - 我几乎不理解我的 PHP 形式的语法。

截至目前,我在表单中拥有小部件。 有人愿意帮我添加PHP验证吗?

谢谢。

法典:

<?php 
$errors = '';
$myemail = 'myemail';//<-----Put Your email address here.
if(empty($_POST['first-name'])  || 
   empty($_POST['last-name'])  ||   
   empty($_POST['email']) ||
   empty($_POST['phone']) ||
   empty($_POST['location']) ||
   empty($_POST['kw']) ||
   empty($_POST['pv-type']) ||
   empty($_POST['message'])) 
{
    $errors .= "'n Error: all fields are required";
}
$first_name = $_POST['first-name']; 
$last_name = $_POST['last-name']; 
$email_address = $_POST['email'];
$phone = $_POST['phone'];
$location = $_POST['location'];
$kw = $_POST['kw'];
$pv_type = $_POST['pv-type'];
$message = $_POST['message'];

if (!preg_match(
"/^[_a-z0-9-]+('.[_a-z0-9-]+)*@[a-z0-9-]+('.[a-z0-9-]+)*('.[a-z]{2,3})$/i", 
$email_address))
{
    $errors .= "'n Error: Invalid email address";
}
if( empty($errors))
{
    $to = $myemail; 
    $email_subject = "Inquiry from: $first_name $last_name";
    $email_body = "You have received a new inquiry from:".
    "'n Name: $first_name $last_name 'n Email: $email_address 'n Phone Number: $phone  
     'n I have a project in: $location 'n The project type is: $pv_type  'n The estimated project size is: $kw
     'n Message: $message"; 
    $headers = "From: $myemail'n"; 
    $headers .= "Reply-To: $email_address";
    mail($to,$email_subject,$email_body,$headers);
    //redirect to the 'thank you' page
    header('Location: thankyou.html');
} 
?>

Daniel,它的工作方式是你必须在你的HTML中放置一个div标签,带有GOogle用来生成noCaptcha测试的特定类。但是,通过在那里查看您的 PHP 代码,您可能希望做一些其他事情来保护您的表单不被滥用。

您需要从 Google 获取两个 API 密钥,您的代码将使用这些密钥与 Google 进行通信。On 用于 HTML 表单,另一个用于服务器上的 PHP 代码。

以下是其工作原理的基本流程:1) 您的表单上有一个字段,其中包含您的一个 Google 密钥(网站密钥),Google 会在加载时将测试添加到您的页面中。2)当用户点击该复选框时,Google会获取网站密钥,以确保它是您的网站3) 用户完成测试4)谷歌在你的表单中添加了另一个元素,其中包含一个响应令牌5) 当您的用户将表单提交到您的网站时,您的 PHP 代码会获取响应令牌并将其发送给 Google 进行验证。6) 然后,Google 会以 JSON 格式向您的服务器发送另一个响应,让您知道响应令牌是否已通过验证。如果是,则继续下一步,如果不是,则向用户显示错误,因为某些内容不正确。

这是对该过程的粗略概述,但我希望它能为您澄清事情。