以下を使用して、フォームをメールアドレスに送信しています。レキャプチャを取り入れたいけど少し調整したい。
1) キャプチャが入力されていない場合、アラート ボックスとしてエラーがポップアップ表示されるようにします。
2) キャプチャが正しく入力されていれば、お礼のメッセージを表示するページが再読み込みされます (以下のスクリプトの下部にあります)。
3) verify.php ファイルをチェックするのではなく、このページでチェックしてほしい。(アクションのパーマリンクをverify.phpファイルへのリンクに置き換えました-これはやりたくありません!)
<form class="form" method="POST" action="<?php the_permalink(); ?>">
<table border="0" style="float:left;" width="490">
<tbody>
<tr>
<td>
<p>Company Name:</p>
</td>
<td> </td>
<td><input type="text" name="companyname" id="companyname" /></td>
</tr>
<tr>
<td>
<p>Your Name:</p>
</td>
<td> </td>
<td><input type="text" name="fullname" id="fullname" /></td>
</tr>
<tr>
<td>
<p>E-mail:</p>
</td>
<td> </td>
<td><input type="text" name="email" id="email" /></td>
<td colspan="2"> </td>
</tr>
<tr>
<td>
<p>Telephone:</p>
</td>
<td> </td>
<td><input type="text" name="tel" id="tel" /></td>
<td colspan="2"> </td>
</tr>
</tbody>
</table>
<table border="0" style="float:left;" width="490">
<tbody>
<tr>
<td valign="top"><p style="margin-right:47px;margin-top:7px;">Enquiry:</p></td>
<td><textarea name="enquiry"></textarea></td>
</tr>
<tr>
<td> </td>
<td>
<script type="text/javascript">
function validateCaptcha()
{
if ($('input[name="valid"]')) return true;
if ($('input[name="recaptcha_response_field"]').val() == "")
{
alert("Please complete the CAPTCHA field.");
return false
}
$.ajax({
url: "http://www.medilogicuk.com/wp-content/themes/default/verify.php",
type: "POST",
async:"false",
data: {
recaptcha_response_field: $('input[name="recaptcha_response_field"]').val(),
recaptcha_challenge_field: $('input[name="recaptcha_challenge_field"]').val()
},
success: function(data){
if (data == "OK")
{
$('input[name="valid"]').val(1);
$('.form').submit();
}
else
{
alert(data);
}
},
error: function(){
alert("An error occured, please try again later");
}
});
return false;
};
</script>
<?php require_once('recaptchalib.php');
$publickey = "(my key)"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
</td>
</tr>
<tr>
<td colspan="2"><button type="submit" name="submit" value="Send message">Send message</button></td>
</tr>
</tbody>
</table>
<? if(isset($_POST['submit'])) {
$to = "(my email)";
$header = 'From: (company email)';
$subject = "Website enquiry";
$companyname_field = $_POST['companyname'];
$fullname_field = $_POST['fullname'];
$email_field = $_POST['email'];
$tel_field = $_POST['tel'];
$enquiry_field = $_POST['enquiry'];
$body = "Hello,\n\n You have an enquiry from the website, please see the details below:\n\n Name: $fullname_field\n Company Name: $companyname_field\n E-Mail: $email_field\n Tel: $tel_field\n Message:\n $enquiry_field\n\n Please reply to the enquiry asap.\n\n Kind Regards \n";
mail($to, $subject, $body, $header);
echo "</br><p style=\"color:#e41770!IMPORTANT;\">Thank you for getting in touch, we will contact you shortly.</p>";
} ?>
</form>
これは私のverify.phpファイルにあります:
<?php
require_once('recaptchalib.php');
$privatekey = "(my key)";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid)
{
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again. (reCAPTCHA said: " . $resp->error . ")");
}
else
{
echo "OK";
}
?>