@barakuda1

Конфликт двух JSON или почему эта ошибка?

Здравствуйте.
Обычная форма, где нужно выполнить действие при успешном прохождении 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 'У вас нет прав для входа на эту страницу!'; 
}
?>
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы