0
试图实施与谷歌reCaptcha自定义编码的联系表格,但似乎没有采取。这是使用WordPress的(不希望使用插件'验证回来了“谢谢张贴评论”。不要从表格中的电子邮件/消息,检查我的垃圾邮件等。任何帮助将不胜感激。如下:与谷歌reCaptcha自定义联系表格
<div class="contact_form">
<h1>Contact Form</h1>
<form id="comment_form" action="" method="post">
<p>Your Name (required) <br />
<input type="text" name="cf-name" placeholder="type your name" pattern="[a-zA-Z0-9 ]+" size="40" />
</p>
<p>Your Email (required) <br />
<input type ="email" name="cf-email" placeholder="type your email" size ="40"><br>
</p>
<p>Subject (required)<br />
<input type ="text" name="cf-subject" placeholder="type your subject" size ="40"><br>
</p>
<p>Your Message<br />
<textarea rows="10" cols="35" name="cf-message"></textarea>
</p>
<div class="g-recaptcha" data-sitekey="SITEKEYHERE"></div>
<input type="submit" name="submit" value="Post Comment">
</form>
</div>
而且我的PHP来发送电子邮件,并检查验证码:
<?php
// if the submit button is clicked, send the email
if (isset($_POST['cf-submitted'])) {
// sanitize form values
$name = sanitize_text_field($_POST["cf-name"]);
$email = sanitize_email($_POST["cf-email"]);
$subject = sanitize_text_field($_POST["cf-subject"]);
$message = esc_textarea($_POST["cf-message"]);
// get the blog administrator's email address
$to = "[email protected]";
$headers = "From: $name <$email>" . "\r\n";
// If email has been process for sending, display a success message
if (wp_mail($to, $subject, $message, $headers)) {
echo '<div>';
echo '<p>Thanks for contacting me, expect a response soon.</p>';
echo "$to";
echo '</div>';
} else {
echo 'An unexpected error occurred';
}
}?>
<?php
$name;$email;$subject;$message;$captcha;
if(isset($_POST['cf-name'])){
$email=$_POST['cf-name'];
}if(isset($_POST['cf-email'])){
$email=$_POST['cf-email'];
}if(isset($_POST['cf-subject'])){
$email=$_POST['cf-subject'];
}if(isset($_POST['cf-message'])){
$email=$_POST['cf-message'];
}if(isset($_POST['g-recaptcha-response'])){
$captcha=$_POST['g-recaptcha-response'];
}
if(!$captcha){
echo '<h2>Please check the the captcha form.</h2>';
exit;
}
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=SECRETKEYHERE".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
if($response.success==false)
{
echo '<h2>spam</h2>';
}else
{
echo '<h2>Thanks for posting comment.</h2>';
}
?>