gpt4 book ai didi

带有 recaptcha 的 PHP 表单

转载 作者:搜寻专家 更新时间:2023-10-31 21:31:18 26 4
gpt4 key购买 nike

我正在使用带有重新验证码的 php 联系表单,但不知道应该使用什么值:

$client_captcha_response = $_POST['g-recaptcha-response'];

将在 g-recaptcha-response 中有,因为我试图通过另一个验证代码页面收集它,但每次我提交时都为 g-recaptcha-response 提供了不同的值

我的提交 ID 表单显示空白页。

HTML 端代码:

    <form method="post" action="contactform.php">
<label>Your Name (required):</label>
<input name="name" type="text" placeholder="Enter your name here">
<label>Email Address (required):</label>
<input name="email" type="email" placeholder="Enter your email address here">
<label>Your Message (required):</label>
<textarea name="message" placeholder="Write your message here"></textarea>
<div class="g-recaptcha" data-sitekey="6LfTVfgSAAAAADvdpWzYkifBXTmJ8ohokl_lIKgH"></div>
<input id="submit" name="submit" type="submit" value="Submit Form">
</form>

PHP 端代码:

<?php
$your_secret = "<Secret key>";
$client_captcha_response = $_POST['g-recaptcha-response'];
$user_ip = $_SERVER['REMOTE_ADDR'];

$captcha_verify = open_https_url("https://www.google.com/recaptcha/api/siteverify?secret=$your_secret&response=$client_captcha_response&remoteip=$user_ip");
$captcha_verify_decoded = json_decode($captcha_verify);
if(!$captcha_verify_decoded->success)
die('DIRTY ROBOT');

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$human = $_POST['human'];
$from = 'From: My Website';
$to = 'myemail@gmail.com';
$subject = 'Request Form';

$body = "Name: $name \n E-Mail: $email \nMessage:\n$message";

if ($_POST['submit']) {
if ($email != '') {
if ($human == '4') {
if (mail ($to, $subject, $body, $from)) {
echo '<p>You have successfully submitted your information to PS4RS. Subscribers to our mailing list will begin to periodically receive updates.</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p><p><input type="button" value="Go Back" onclick="history.back(-1)" class="goback" /></p>';
}
} else if ($_POST['submit'] && $human != '4') {
echo '<p>You answered the anti-spam question incorrectly!</p><p><input type="button" value="Go Back" onclick="history.back(-1)" class="goback" /></p>';
}
} else {
echo '<p>You need to fill in all required fields!!</p><p><input type="button" value="Go Back" onclick="history.back(-1)" class="goback" /></p>';
}
}
?>

最佳答案

这是我的代码运行没有问题:

客户端:

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

服务器端:

if (isset($_POST['g-recaptcha-response'])) {
$captcha = $_POST['g-recaptcha-response'];
$privatekey = "SECRET_KEY";
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = array(
'secret' => $privatekey,
'response' => $captcha,
'remoteip' => $_SERVER['REMOTE_ADDR']
);

$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $data
);

$ch = curl_init();
curl_setopt_array($ch, $curlConfig);
$response = curl_exec($ch);
curl_close($ch);
}

$jsonResponse = json_decode($response);

if ($jsonResponse->success == "true")
doSomething();
else
doSomeOtherThing();

工作 here ! :)

关于带有 recaptcha 的 PHP 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29770124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com