Я использую Codeigniter и Ajax для проверки и отправки формы электронной почты.Я перепробовал много методов, он продолжает давать мне результат {"sent": false}, он прекрасно работал до того, как я добавил строки recaptcha.
вот мой код:
custom.script.js
$("#ajax-contact-form").submit(function() {
var href = 'http://localhost:8888/en/send';
var name = $("#form-name").val();
var email = $("#email").val();
var phone = $("#phone").val();
var title = $("#form-title").val();
var message = $("#form-message").val();
$.ajax({
type: "POST",
url: href ,
dataType: "json",
data: {
name: name,
email: email,
phone: phone,
title: title,
message: message,
//UPDATE from recaptcha without quotes to 'g-recaptcha-response'
'g-recaptcha-response': grecaptcha.getResponse()
},
success: function(msg) {
if(msg.sent) {
console.log("Successssssssssss");
$('#result').addClass('success');
$('#result').html('Email was sent successfully!');
} else {
$('#result').addClass('error');
$('#result').html('Email was NOT sent!');
}
}
});
return false;
});
En.php
function send()
{
$this->load->helper('form');
$this->load->library('form_validation');
$google_url="https://www.google.com/recaptcha/api/siteverify";
//UPDATE from recaptcha to 'g-recaptcha-response'
$str = $this->input->post('g-recaptcha-response');
$secret = 'GOOGLE_SECRET_KEY';
$url=$google_url."?secret=".$secret."&response=".$str;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$status= json_decode($output, true);
if ($status['success']) {
$this->load->library('email');
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
$body = 'ANY TEXT';
$emailto = "email@domain.com";
$this->email->from($this->input->post("email"), $this->input->post("name"));
$this->email->to($emailto);
$this->email->subject('New Request');
$this->email->message($body);
if($this->email->send()){
echo json_encode(array("sent"=>TRUE));
}
}
else{
echo json_encode(array("sent"=>FALSE));
}}
Ключи Google верны, я не знаю, почему не получаетсяк истинному утверждению if.