我已经阅读了许多此处的帖子,并遵循了所有建议,但是我无法获得此表单以通过Google Recaptcha v2提交。按提交后,表格会刷新。
html表单和php在同一页面上。我基本上只是采用一种已经存在的表格,然后添加到Google Recaptcha中。
任何帮助将不胜感激!
PHP:
<?php
if(isset($_POST['submit']) && !empty($_POST['submit'])){
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])){
//your site secret key
$secret = 'SECRET KEY';
$gRecaptcha = $_POST['g-recaptcha-response'];
$gRecaptcha = "https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response=".$_POST['g-recaptcha-response'];
$response = file_get_contents($gRecaptcha);
$responseData = json_decode($response);
if($responseData->success){
switch ($_POST['location']) {
case 'Inverness':
$Send = "email address";
break;
case 'Southlake':
$Send = "email address";
break;
}
$Subject = "A Message From your Website!";
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$location = $_POST['location'];
$message = $_POST['message'];
$mailbody="Name: $name\n\nEmail: $email\n\nPhone: $phone\n\nLocation: $location\n\nMessage: $message\n\n";
mail($Send, $Subject, $mailbody);
$succMsg = 'Your contact request have submitted successfully.';
exit($succMsg);
} else {
// if not show the error
$errMsg = 'Robot verification failed, please try again.';
echo $errMsg;
}
}else{
// if recaptcha is not checked
$errMsg = 'Please click on the reCAPTCHA box.';
}
}
?>
HTML:
<div id="contact-form" style="float:left;">
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" enctype="text/plain">
<table width="325" cellpadding="0" cellspacing="6">
<tr>
<td><label for="name">Name:</label></td>
<td><input type="text" name="name" value=""/></td>
</tr>
<tr>
<td><label for="email">Email:</label></td>
<td><input type="text" name="email" id="email" value="" /></td>
</tr>
<tr>
<td><label for="phone">Phone:</label></td>
<td><input type="text" name="phone" id="phone" value="" /></td>
</tr>
<tr>
<td><label for="loc">Location:</label></td>
<td><select name="location"><option value="Inverness">Inverness</option><option value="Southlake">Southlake</option></select></td>
</tr>
<tr>
<td><label for="msg">Questions/Comments:</label></td>
<td><textarea name="message" id="msg" value="" cols="20" rows="5" /></textarea></td>
</tr>
<tr>
<td>For spam prevention purposes, please answer the question below</td>
</tr>
<tr>
<td><div style="width:200px" class="g-recaptcha" data-sitekey="SITE KEY"></div></td>
</tr>
<tr>
<td colspan="2" align="left"><input type="submit" name='submit' value="Send" style="color:white;background-color:#bc2729;width:95px;height:29px;border:none" src="images/btn_submit.jpg"></td>
</tr>
</table>
</form>
</div>
答案 0 :(得分:0)
从表单中删除enctype="text/plain"
属性,表单应提交。您可以让它使用默认编码application/x-www-form-urlencoded
提交。