🚧
reCAPTCHA v3を使ったフォーム作成
あっているか分かりませんが、、、これで実装できたので同じく困っている人の参考になれば嬉しいです。
修正箇所があればコメントで教えてほしいです。
- php
- reCAPTCHA v3
入力画面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- idはdocument.getElementById("submit").submit();と揃えてください -->
<form action="form-output.php" method="POST" id="submit">
<script src="https://www.google.com/recaptcha/api.js"></script>
<button class="g-recaptcha"
data-sitekey="サイトキー"
data-callback='onSubmit'
data-action='submit'
type="submit">Submit</button>
<script>
// この関数はreCAPTCHAのトークンが生成されたときに呼び出されます
function onSubmit(token) {
document.getElementById("submit").submit();
}
</script>
</form>
</body>
</html>
結果
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$recaptcha = $_POST['g-recaptcha-response'];
$secretKey = "シークレットキー";
$url = "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$recaptcha";
$response = file_get_contents($url);
$result = json_decode($response, true);
if($result['success'] !== true) {
echo "reCAPTCHAの検証に失敗しました。";
} else {
echo "reCAPTCHAの検証に成功しました。";
}
}
Discussion