Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关于我的Google Recaptcha代码_Php_Html_Recaptcha - Fatal编程技术网

Php 关于我的Google Recaptcha代码

Php 关于我的Google Recaptcha代码,php,html,recaptcha,Php,Html,Recaptcha,我对google Recaptcha这件事还不熟悉 我想弄清楚哪个不起作用。我尝试过其他几种代码,但它们都不起作用,我不知道为什么 这是我的表格代码 <form name="contact_form" method="post" action="functions.php"> <input type="text" id="fname" name="full_name" placeholder="Full Name" required /> <input type

我对google Recaptcha这件事还不熟悉

我想弄清楚哪个不起作用。我尝试过其他几种代码,但它们都不起作用,我不知道为什么

这是我的表格代码

<form name="contact_form" method="post" action="functions.php">
 <input type="text" id="fname" name="full_name" placeholder="Full Name" required />
 <input type="number" id="pnumber" name="phone_number" placeholder="Phone Number" required />
 <input type="email" id="emailid" name="email_address" placeholder="Email Address" required />
 <textarea placeholder="Message" name="message" required></textarea>
 <span><input type="checkbox" id="disclaimerid" class="disclaimerclass" name="agreement" value="Agree" required>I have read and agreed with the <a class="dataPrivacyLink" href="#">(Data Protection and Privacy Policy)</a> of Hello World</span>
 <div class="g-recaptcha" data-sitekey="--PUBLIC KEY--"></div>
 <input type="submit" name="sendmessage" class="send-message" value="SUBMIT NOW" />
</form>

我已经阅读并同意《Hello World》的观点
这是我的PHP代码

<?php
  function post_captcha($user_response) {
       $fields_string = '';
       $fields = array(
        'secret' => '_______________PRIVATE_KEY_______________',
        'response' => $user_response
    );
    foreach($fields as $key=>$value)
    $fields_string .= $key . '=' . $value . '&';
    $fields_string = rtrim($fields_string, '&');
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
    curl_setopt($ch, CURLOPT_POST, count($fields));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, True);

    $result = curl_exec($ch);
    curl_close($ch);

    return json_decode($result, true);
}
// Call the function post_captcha
$res = post_captcha($_POST['g-recaptcha-response']);
if (!$res['success']) {
    // What happens when the CAPTCHA wasn't checked
    echo '<p>Please go back and make sure you check the security CAPTCHA box.</p><br>';
} else {
    // If CAPTCHA is successfully completed...

    // Paste mail function or whatever else you want to happen here!
    $send;
if( isset( $_POST['email_address'] ) )
{
    $send="Your inquiry submitted successfully. we will contact you very soon. ";
    send_message_to_agent( $_POST['full_name'], $_POST['phone_number'], $_POST['email_address'], $_POST['message'] );
}
else
{
    $send="fail";   
}
function send_message_to_agent( $full_name, $phone_number, $email_address, $visiter_message ){

    $to      = 'hello@world.com';
    $subject = 'Hello World';

    $message = '<p>Name : '.$full_name.'</p>';
    $message .= '<p>Phone Number : '.$phone_number.'</p>';
    $message .= '<p>Email Address : '.$email_address.'</p>';
    $message .= '<p>Message : '.$visiter_message.'</p>';

    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

    mail($to, $subject, $message, $headers);
}
echo $send;
//die;
}
// Your code here to handle a successful verification
/>

您还必须传递您的IP地址

$fields=array('secret'=>'\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
“响应”=>$user\u响应,
“remoteip”=>xxx.xxx.xxx.xxx//您的ip

);

首先,您需要包括reCAPTCHA API JavaScript库

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

这很奇怪,因为在添加我的服务器ip后,它工作了一段时间,现在它不想再发送了。

您是否用自己的私钥替换了这一行?“'secret'=>'”\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。我也不知道为什么。你必须动态获取你的ipaddress。我该怎么做?在我添加发送操作后,遵循此链接将有助于获取ipaddress。它仍然不起作用。
<div class="g-recaptcha" data-sitekey="--PUBLIC KEY--"></div>
       $secret = 'SCREAT_KEY';
                //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);
                if($responseData->success){
//perform action on success
}
else{
//redirect to login
}