私はおそらくかなり基本的な質問ですが、誰かが私を助けてくれることを期待して、PHPとフォームの作成にかなり新しいです。Google Invisible reCaptcha成功後のフォームデータのサードパーティサーバーへの投稿方法
ハニーポット方式を採用しているにもかかわらず、サイトに1フィールドの電子メールフォームを継続的に提出しているため、GoogleのInvisible reCaptchaを使用して対処しています。
私はこの役に立つガイドの指示に従っています:https://www.pinnacleinternet.com/installing-invisible-recaptcha/しかし、私が立ち往生しているところは、結果が成功した後、フォームを介して提出されたメールアドレスを投稿して投稿したいと思いますサードパーティ製のサーバー(この場合はマーケティング自動化ツールPardot)に送信します。ここで
は、目に見えないのreCAPTCHAコードです:フロントエンド
<script>
function captchaSubmit(data) {
document.getElementsByClassName("invisible-recaptcha").submit();
}
</script>
<form action="utils/recaptcha.php" method="post" class="pardot-email-form-handler invisible-recaptcha" novalidate>
<input class="one-field-pardot-form-handler" maxlength="80" name="email" size="20" type="email" placeholder="Enter Email Address" required="required" />
<div style="position:absolute; left:-9999px; top: -9999px;">
<label for="pardot_extra_field">Comments</label>
<input type="text" id="pardot_extra_field" name="pardot_extra_field">
</div>
<button class="g-recaptcha" data-sitekey="anonymous" data-callback="captchaSubmit" type="submit" name="captchaSubmit">Submit</button>
</form>
バックエンド:
<?php
// reCaptcha info
$secret = "anonymous";
$remoteip = $_SERVER["REMOTE_ADDR"];
$url = "https://www.google.com/recaptcha/api/siteverify";
// Form info
$email = $_POST["email"];
$response = $_POST["g-recaptcha-response"];
// Curl Request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
'secret' => $secret,
'response' => $response,
'remoteip' => $remoteip
));
$curlData = curl_exec($curl);
curl_close($curl);
// Parse data
$recaptcha = json_decode($curlData, true);
if ($recaptcha["success"])
echo "Success!";
else
echo "Failure!";
?>
私は以前に以下のコードを使用してPardotに投稿されたが、今では不明だいました最初の記事がPardotではなくGoogleにあるということをどのようにするか。 Invisible reCaptchaからの成功の確認後、私はPardotにどのように投稿しますか?
<div class="nav-email-form">
<form action="https://go.pardot.com/l/43312/2017-10-24/7dnr3n" method="post" class="pardot-email-form-handler" novalidate>
<input class="one-field-pardot-form-handler" maxlength="80" name="email" size="20" type="email" placeholder="Enter Email Address" required="required" />
<div style="position:absolute; left:-9999px; top: -9999px;">
<label for="pardot_extra_field">Comments</label>
<input type="text" id="pardot_extra_field" name="pardot_extra_field">
</div>
<button type="submit" name="submit">Submit</button>
</form>
ところ、GoogleのreCAPTCHAのコードはありますか? – RamRaider
ガイドのreCaptchaコードを質問に追加しました。基本的には、バックエンドコードの「成功」部分の後にPardotに投稿したいと思っています。 – dpayne
Pardotがメールアドレスを期待しているようです - どこから来たのですか? – RamRaider