Я написал простой код PHP для регистрации пользовательских данных из моего приложения для iphone. и он работает нормально и возвращает вывод JSON. я добавил этот код ниже
header('Content-type: application/json');
include 'connection.php';
$response = array();
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
if($username == NULL || $password == NULL || $email == NULL ){
$response["success"] = 0;
$response["message"] = "Something Empty";
}else{
$sql = "INSERT INTO User (username, password, email)
VALUES ('".$username."', '".$password."', '".$email."')";
if ($conn->query($sql) === TRUE) {
$response["success"] = 1;
$response["message"] = "Done";
} else {
$response["success"] = 0;
$response["message"] = "Error";
}
}
echo json_encode($response);
$conn->close();
но когда я пытаюсь проверить, что имя пользователя уже существует, прежде чем добавлять в таблицы. Я получаю сообщение об ошибке из моего журнала XCode.
JSON text did not start with array or object and option to allow fragments not set.
if($username == NULL || $password == NULL || $email == NULL ){
$response["success"] = 0;
$response["message"] = "Something Empty";
}else{
$query = mysql_query("SELECT * FROM User WHERE username='".$username."'");
if (mysql_num_rows($query) != 0)
{
$response["success"] = 0;
$response["message"] = "Username Already Exists";
}else{
$response["success"] = 1;
$response["message"] = "That Name Fine";
}
}
Скорее всего, это ошибка php (потенциально только уведомление или предупреждение в зависимости от вашего error_reporting
настройки), который загрязняет вывод JSON.
Вам нужно будет отладить проблему, и вы можете рассмотреть error_reporting
уровень для производства.
Других решений пока нет …