Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何让reCaptcha使用ajax.load_Php_Jquery_Ajax_Recaptcha - Fatal编程技术网

Php 如何让reCaptcha使用ajax.load

Php 如何让reCaptcha使用ajax.load,php,jquery,ajax,recaptcha,Php,Jquery,Ajax,Recaptcha,我希望在jquery'.load'ajax函数中使用reCaptcha,以便将信息传递到我的PHP联系人表单。我已经确定了如何使用此方法发送诸如名称值、主题值等内容,但是,我不确定如何传递reCaptcha信息 目前,当我提交表单时,我收到一个PHP错误,提示“未定义索引:g-recaptcha-response”。我相信这与Ajax方面有关 在这方面的任何帮助都将是惊人的,因为我完全不知所措 jQuery: $("#contactForm").submit(function(event) {

我希望在jquery'.load'ajax函数中使用reCaptcha,以便将信息传递到我的PHP联系人表单。我已经确定了如何使用此方法发送诸如名称值、主题值等内容,但是,我不确定如何传递reCaptcha信息

目前,当我提交表单时,我收到一个PHP错误,提示“未定义索引:g-recaptcha-response”。我相信这与Ajax方面有关

在这方面的任何帮助都将是惊人的,因为我完全不知所措

jQuery:

$("#contactForm").submit(function(event) {
  event.preventDefault();
  var name = $("#name").val();
  var email = $("#email").val();
  var subject = $("#subject").val();
  var phone = $("#phone").val();
  var company = $("#company").val();
  var message = $("#message").val();
  var submit = $("#submit").val();

$(".form-message").load("contactForm.php", {
   name: name,
   email: email,
   subject: subject,
   phone: phone,
   company: company,
   message: message,
   submit: submit
}); 
PHP:

if(isset($\u POST['submit'])){
需要'dist/PHPMailer/phpmailerautoad.php';
$mail=新的PHPMailer;
$name=$_POST['name'];
$email=$_POST['email'];
$subject=$_POST['subject'];
$phone=$_POST['phone'];
$company=$_POST['company'];
$message=$_POST['message'];
$secretKey=“--KEY--”;
$responseKey=$_POST['g-recaptcha-response'];
$userIP=$\u服务器['REMOTE\u ADDR'];
$url=”https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$responseKey&remoteip=$userIP”;
$response=file\u get\u contents($url);
$mail->HOST='smtp.gmail.com';
$mail->Port=587;
$mail->SMTPAuth=true;
$mail->SMTPSecure='tls';
$mail->Username='--Username--';
$mail->Password='--Password--';
$mail->setFrom('--email--','Contact Form Submission');
$mail->addAddress('--email--');
$mail->addReplyTo($email,$name);
$mail->isHTML(true);
$mail->Subject=$Subject;
$mail->Body='Name:'.$Name.
Email:'.$Email.
Subject:'.$Subject.
Phone:'.$Phone.
Company:'.$Company.
Message:'.$Message.

';
HTML:


您可以使用该方法从客户端获取验证码的值,然后使用ajax/jquery发送该值

<script type="text/javascript">


    ("#contactForm").submit(function(event) {
  event.preventDefault();
  var name = $("#name").val();
  var email = $("#email").val();
  var subject = $("#subject").val();
  var phone = $("#phone").val();
  var company = $("#company").val();
  var message = $("#message").val();
  var submit = $("#submit").val();
  var captcha = grecaptcha.getResponse(); //get captcha

$(".form-message").load("contactForm.php", {
   name: name,
   email: email,
   subject: subject,
   phone: phone,
   company: company,
   message: message,
   submit: submit,
   captcha : captcha
}); 


</script>

(“#联系方式”)。提交(功能(事件){
event.preventDefault();
var name=$(“#name”).val();
var email=$(“#email”).val();
var subject=$(“#subject”).val();
var phone=$(“#phone”).val();
var company=$(“#company”).val();
var message=$(“#message”).val();
var submit=$(“#submit”).val();
var captcha=grecaptcha.getResponse();//获取验证码
$(“.form message”).load(“contactForm.php”{
姓名:姓名,,
电邮:电邮,,
主题:主题,,
电话:电话,,
公司:公司,,
讯息:讯息,,
提交:提交,
验证码:验证码
}); 
然后是你的php

<?php


if(isset($_POST['submit'])) {

 require 'dist/PHPMailer/PHPMailerAutoload.php';
 $mail = new PHPMailer;

 $name = $_POST['name'];
 $email = $_POST['email'];
 $subject = $_POST['subject'];
 $phone = $_POST['phone'];
 $company = $_POST['company'];
 $message = $_POST['message'];
 $secretKey = "--KEY--";
 $responseKey = $_POST['captcha']; //captcha
 $userIP = $_SERVER['REMOTE_ADDR'];

 $url = "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$responseKey&remoteip=$userIP";
$response = file_get_contents($url);

 $mail->HOST = 'smtp.gmail.com';
 $mail->Port = 587;
 $mail->SMTPAuth = true;
 $mail->SMTPSecure = 'tls';
 $mail->Username = '--username--';
 $mail->Password = '--password--';

 $mail->setFrom('--email--', 'Contact Form Submission');
 $mail->addAddress('--email--');
 $mail->addReplyTo($email, $name);

 $mail->isHTML(true);
 $mail->Subject= $subject;
 $mail->Body='<p>Name: '.$name. '<br>Email: '.$email.'<br>Subject: '.$subject.'<br>Phone: '.$phone.'<br>Company: '.$company.'<br>Message: '.$message.'</p>';

在jquery上:
var g-recaptcha-response=grecaptcha.getResponse();
然后像其他字段一样发送
g-recaptcha-response
<script type="text/javascript">


    ("#contactForm").submit(function(event) {
  event.preventDefault();
  var name = $("#name").val();
  var email = $("#email").val();
  var subject = $("#subject").val();
  var phone = $("#phone").val();
  var company = $("#company").val();
  var message = $("#message").val();
  var submit = $("#submit").val();
  var captcha = grecaptcha.getResponse(); //get captcha

$(".form-message").load("contactForm.php", {
   name: name,
   email: email,
   subject: subject,
   phone: phone,
   company: company,
   message: message,
   submit: submit,
   captcha : captcha
}); 


</script>
<?php


if(isset($_POST['submit'])) {

 require 'dist/PHPMailer/PHPMailerAutoload.php';
 $mail = new PHPMailer;

 $name = $_POST['name'];
 $email = $_POST['email'];
 $subject = $_POST['subject'];
 $phone = $_POST['phone'];
 $company = $_POST['company'];
 $message = $_POST['message'];
 $secretKey = "--KEY--";
 $responseKey = $_POST['captcha']; //captcha
 $userIP = $_SERVER['REMOTE_ADDR'];

 $url = "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$responseKey&remoteip=$userIP";
$response = file_get_contents($url);

 $mail->HOST = 'smtp.gmail.com';
 $mail->Port = 587;
 $mail->SMTPAuth = true;
 $mail->SMTPSecure = 'tls';
 $mail->Username = '--username--';
 $mail->Password = '--password--';

 $mail->setFrom('--email--', 'Contact Form Submission');
 $mail->addAddress('--email--');
 $mail->addReplyTo($email, $name);

 $mail->isHTML(true);
 $mail->Subject= $subject;
 $mail->Body='<p>Name: '.$name. '<br>Email: '.$email.'<br>Subject: '.$subject.'<br>Phone: '.$phone.'<br>Company: '.$company.'<br>Message: '.$message.'</p>';