Ошибка parsererror в Ajax

397
17 июля 2017, 16:39

Не срабатывает success в ajax. А в error выдает такое (2) [Object, "parsererror"]. PHPскрипт создает пользователя в БД, но не срабатывает строчка echo json_encode("...");. Может это быть как-то связано с работой phpstorm? Как исправить это?

ajax:

$(document).ready(function($) { 
  // register 
  $('#reg-form').submit(function(e) { 
    var isCheck = $('#checkbox1').prop('checked'); 
    if (isCheck) { 
      e.preventDefault(); 
      var data = $("#reg-form").serialize(); 
      $.ajax({ 
        url: 'include/signup.php', 
        type: 'POST', 
        dataType: 'json', 
        data: data, 
        success: function(data) { 
          var obj = $.parseJSON(data); 
          console.log(obj); 
          if (data == "value-error") $('.place-error').html('<p>Ви ввели невірні дані.</p>'); 
          else if (data == "id-error") $('.place-error').html('<p>Такий профіль уже існує.</p>'); 
          else if (data == "success") location.reload(); 
          console.log("Nothing was happen 2"); 
        }, 
        error: function(xhr, textStatus) { 
          console.log([xhr, textStatus]); 
        } 
      }); 
    } 
  }); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

php:

<?php 
session_start(); 
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
    require_once $_SERVER['DOCUMENT_ROOT'] . '/include/db.php'; 
    header('Content-Type: application/json; charset=utf-8'); 
    $connect = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); 
 
    $_SESSION['logged'] = false; 
    $haserror = false; 
 
    if (!$connect) die(); 
 
    $name = $_POST['reg-name']; 
    $surname = $_POST['reg-surname']; 
    $email = $_POST['reg-email']; 
    $pass = $_POST['reg-pass']; 
    $date = date('Y-m-d H:i:s'); 
 
    if (preg_match("/^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$/", $email)){ 
        if (preg_match("/^[А-ЯІЇ]{1}[А-яії'-]{2,}$/u", $name)){ 
            if (preg_match("/^[А-ЯІЇ]{1}[а-яії'-]{2,}$/u", $surname)){ 
               if (preg_match("/([A-z0-9-_']{6,})/i", $pass)){ 
                    echo json_encode("success-in"); 
                    $sql = "SELECT * FROM `users` WHERE `email` = '$email'"; 
                    $res = mysqli_query($connect, $sql); 
                    $count = mysqli_num_rows($res); 
 
                    if ($count == 0){ 
 
                        $sql = "INSERT INTO `users` (`email`, `password`, `name`, `surname`, `date`) VALUES ('$email', '$pass', '$name', '$surname', '$date')"; 
                        mysqli_query($connect, $sql); 
                        $_SESSION['user-id'] = mysqli_insert_id($connect); 
                        $_SESSION['user-name'] = $name; 
                        $_SESSION['user-surname'] = $surname; 
                        $_SESSION['user-email'] = $email; 
                        $_SESSION['logged'] = true; 
                        echo json_encode("success"); 
 
                    } else echo json_encode("id-error"); 
               } else $haserror = true; 
            } else $haserror = true; 
        } else $haserror = true; 
    } else $haserror = true; 
 
    if ($haserror) echo json_encode("value-error"); 
    mysqli_close(); 
    exit; 
} 
else { 
    include_once $_SERVER['DOCUMENT_ROOT'].'/include/error/404.php'; 
} 
?>

html:

<form id="reg-form"> 
  <div class="form-group"> 
    <input type="text" class="form-control" name="reg-name" placeholder="Ім'я" pattern="^[А-ЯІЇ]{1}[А-яії'-]{2,}$" required> 
  </div> 
  <div class="form-group"> 
    <input type="text" class="form-control" name="reg-surname" placeholder="Прізвище" pattern="^[А-ЯІЇ]{1}[А-яії'-]{2,}$" required> 
  </div> 
  <div class="form-group"> 
    <div class="input-group"> 
      <span class="input-group-addon"><i class="fa fa-envelope-o fa-fw"></i></span> 
      <input name="reg-email" class="form-control" type="email" placeholder="Email" pattern="^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,})$" required> 
    </div> 
  </div> 
  <div class="form-group"> 
    <input id="register1" type="password" class="form-control" name="reg-pass" placeholder="Пароль" pattern="([A-z0-9-_']{6,})" required> 
  </div> 
  <div class="form-group"> 
    <input id="register2" type="password" class="form-control" name="reg-pass-sec" placeholder="Повторіть пароль" pattern="([A-z0-9-_']{6,})" required> 
  </div> 
  <div class="checkbox"> 
    <label> 
                        <input id="checkbox1" type="checkbox" required> 
                        Я згідний з правилами проекту 
                    </label> 
  </div> 
  <button name="reg-btn-n" id="reg-btn" type="submit" class="btn btn-success">Створити профіль</button> 
  <button type="reset" class="btn btn-danger"><i class="fa fa-trash-o"></i></button> 
</form>

READ ALSO
200 ок вместо 404, как исправить

200 ок вместо 404, как исправить

Написал скрипт сайта, адреса следующего вида васяру/1234567

257
Как разбить цикл wordpress?

Как разбить цикл wordpress?

Добрый вечер!

320
Как выводить из массива элементы с тегами без указанного class

Как выводить из массива элементы с тегами без указанного class

Есть массив, в котором хранятся элементы вместе с тегамиУ некоторых тег пустой, а у некоторых указан определенный, одинаковый class

199
Как сделать подсветку &ldquo;%&rdquo; в PHPStorm?

Как сделать подсветку “%” в PHPStorm?

Можно ли, если можно то как добавить подсветку "%" в PHPStorm, так как я использую этот символ для маркеров, также чтобы текст между этими маркерами...

296