Почему выдает ошибку syntaxerror unexpected end of json input?
Сам индекс
<!DOCTYPE html>
<html>
<head>
<title>Активировация промокода</title>
<link rel="stylesheet" type="text/css" href="css/bootstrap-theme.css">
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="css/promo.css">
<link rel="stylesheet" type="text/css" href="css/animate.css">
<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">
<script type="text/javascript" src="../js/jquery-2.1.4.min.js"></script>
</head>
<body>
<section>
<div class="parent">
<div class="block">
<form method="POST" action="" id="slick-login">
<input id="input" type="text" name="promocode" class="placeholder" placeholder="XXXX-XXXX-XXXX">
<input name="submit" type="submit" value="Активировать" ">
</form>
</div>
</div>
</section>
<script type="text/javascript">
$(document).ready(function() {
$("#slick-login").submit(function(){
var form = $(this);
var error = false;
form.find('input').each( function(){
if ($(this).val() == '') {
alert('Зaпoлнитe пoлe "'+$(this).attr('placeholder')+'"!');
error = true; // oшибкa
}
});
if (!error) {
var data = form.serialize();
$.ajax({
type: 'POST',
url: 'probform.php',
dataType: 'json',
data: data,
beforeSend: function(data) {
form.find('input[type="submit"]').attr('disabled', 'disabled');
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
},
complete: function(data) {
form.find('input[type="submit"]').prop('disabled', false);
}
});
}
return false;
});
});</script>
<!-- Scripts --><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
обработчик формы
<?php
$db = mysql_connect ("localhost","root","");
mysql_query("set names utf8");
mysql_select_db("promo",$db);
if($_POST)
$promocode = ($_POST["promocode"]);
$json = array();
{
if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['promocode']))
{
$json['error'] = 'Промокод может состоять только из букв английского алфавита и цифр';
echo json_encode($json);
die();
}
if(strlen($_POST['promocode']) < 3 or strlen($_POST['promocode']) > 12)
{
$json['error'] = 'Промокод должен быть не меньше 3-х символов и не больше 12';
echo json_encode($json);
die();
}
function mime_header_encode($str, $data_charset, $send_charset) { // функция прeoбрaзoвaния зaгoлoвкoв в вeрную кoдирoвку
if($data_charset != $send_charset)
$str=iconv($data_charset,$send_charset.'//IGNORE',$str);
return ('=?'.$send_charset.'?B?'.base64_encode($str).'?=');
}
if(count($_POST) > 1)
{
$mysqli->set_charset('utf8');
$promocode = $mysqli->real_escape_string($_POST['promocode']);
$query = $mysqli->query("SELECT `promocode` FROM `action` WHERE `promocode` = '$promocode'");
$db = mysql_connect ("localhost","root","");
mysql_query("set names utf8");
mysql_select_db("promo",$db);
$result = mysql_query("SELECT * FROM action WHERE promocode='$promocode'",$db);
while($row=mysql_fetch_array($result)){
$comment=$row['comment'];
$price=$row['price'];
}
if($query != false && $query->num_rows >= 1)
{
$json['error'] = 'Ваш приз $comment $price';
echo json_encode($json);
die();
}
}
}
?>
Простите за ужасный код.