Здравствуйте.
Обычная форма, где нужно выполнить действие при успешном прохождении ReCaptcha и вывести сообщение о успешной отправке или ошибке. Но видимо, происходит конфликт JSON,
Ошибка:
syntax error unexpected token in json at position 0
Думаю, ошибка заключается в том, что происходит два разных JSON запроса, потому что без добавлении кода от ReCaptcha, все отлично работает с текущим JSON без ReCaptcha.
Подскажите, как решить это?!
<script>
$(document).ready(function() {
$("#feedback").submit(function(){
var form = $(this);
var error = false;
form.find('input, textarea').each( function(){
if ($(this).val() == '') {
alert('Зaпoлнитe пoлe "'+$(this).attr('placeholder')+'"!');
error = true;
}
});
if (!error) {
var data = form.serialize();
$.ajax({
type: 'POST',
url: 'send.php',
dataType: 'json',
data: data,
beforeSend: function(data) {
form.find('input[type="submit"]').attr('disabled', 'disabled');
},
success: function(data){
if (data['error']) {
alert(data['error']);
} else {
alert('Письмo было отправлено, проверьте почту.');
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
},
complete: function(data) {
form.find('input[type="submit"]').prop('disabled', false);
}
});
}
return false; // вырубaeм стaндaртную oтпрaвку фoрмы
});
});
</script>
<?php
if ($_POST) {
// ReCaptcha Start
$secret = 'здесь мой секретный ключ от reCapctha';
$ip = $_SERVER['REMOTE_ADDR'];
$response = $_POST['g-recaptcha-response'];
$rsp = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$ip");
$arr = json_decode($rsp, TRUE);
if($arr['success']){ // ReCaptcha проверка на успех ...
$author = $_POST['author'];
$author = addslashes($author);
$author = htmlspecialchars($author);
$author = stripslashes($author);
$author = mysql_real_escape_string($author);
$message = $_POST['message'];
$message = addslashes($message);
$message = htmlspecialchars($message);
$message = stripslashes($message);
$message = mysql_real_escape_string($message);
$date = date("d-m-Y в H:i:s");
$result = mysql_query("INSERT INTO messages (author, message, date) VALUES ('$author', '$message', '$date')");
}
// Обработка ошибок и вывод
$json = array();
if (!$name or !$author or !$message) {
$json['error'] = 'Вы зaпoлнили нe всe пoля.';
echo json_encode($json);
die();
}
$json['error'] = 0;
echo json_encode($json);
} else {
echo 'У вас нет прав для входа на эту страницу!';
}
?>