Member 14024497 Ответов: 0

Получение данных из PHP с помощью JSON


Я получаю эту ошибку:

Опционально ("в<мета кодировку=\"кодировке UTF-8\"&ГТ;{\"электронная почта\":\"ошибка\",\"пароль\":\"ошибка\"}\р\н\р\н\р\н")
Ошибка домен=NSCocoaErrorDomain код=3840 "в формате JSON текст не начать с массивом или объектом, и вариант, чтобы осколки не установлено." UserInfo={NSDebugDescription=JSON text не начинался с массива или объекта и опции разрешить не устанавливать фрагменты.}

мой сервер отправляет ответ типа <meta charset="UTF-8">{"Email":"Error","Password":"Error"}.
Это определенно не является допустимым JSON, так как он начинается с `&низкотемпературный;`


я не знаю, почему это не работает, потому что я правильно вошел в систему с HTML-кодом с нуля

мой php код
<?php  
  
// Create connection  
$con=mysqli_connect("cantshowthis","hehe","sorry",":c");  
  
// Check connection  
if (mysqli_connect_errno())  
{  
  echo "Failed to connect to MySQL: " . mysqli_connect_error();  
}  
  
// This SQL statement selects ALL from the table 'Registro'  
$sql = "SELECT * FROM Registro";  
  
// Check if there are results  
if ($result = mysqli_query($con, $sql))  
{  
  // If so, then create a results array and a temporary one  
  // to hold the data  
  $resultArray = array();  
  $tempArray = array();  
  
  // Loop through each row in the result set  
  while($row = $result->fetch_object())  
  {  
  // Add each row into our results array  
  $tempArray = $row;  
  array_push($resultArray, $tempArray);  
  }  
  
  // Finally, encode the array to JSON and output the results  
  echo json_encode($resultArray);  
}  
  
// Close connections  
mysqli_close($con);  
?>  





это мой XCODE код

@IBAction func iniciarSesion(_ sender: UIButton) {

       guard
           let emailText = Email.text, !emailText.isEmpty,
           let contrasenaText = Contrasena.text, !contrasenaText.isEmpty else
       {
           displayAlert(title: "Información Faltante", message: "Debes porporcionar un correo y contraseña")
           return
       }

       let myURL = URL(string: "hehe")
       var request = URLRequest(url: myURL!) rather than `NSMutableURLRequest`
       request.httpMethod = "POST"
       let posString = "Email=\(emailText)&Password=\(contrasenaText)"
       request.httpBody = posString.data(using: .utf8)
       let task = URLSession.shared.dataTask(with: request) {
           data, response, error in

           if let error = error {
               print("error=\(error)")
               return
           }

           guard let data = data else {
               print("Something wrong")
               return
           }

           print(String(data: data, encoding: .utf8) as Any)
           do {

               let json = try JSONSerialization.jsonObject(with: data)


               if let parseJSON = json  as? [String: Any]{
                   guard let resultValue = parseJSON["status"] as? String else {
                       print("No `status` in result")
                       return
                   }
                   print("message: \(resultValue) ")

                   if (resultValue == "success") {

                       UserDefaults.standard.set(true, forKey: "isUserLoggedIn")
                       UserDefaults.standard.synchronize()
                   } else {
                      cases
                   }
               } else {

                   print("Result JSON is ill-formatted:", json)
               }
           } catch let err {
               print(err)

           }
       }
       task.resume()
   }


Что я уже пробовал:

синтаксический анализ JSON допустим но моя я думаю моя ошибка PHP я не знаю что делать

Richard MacCutchan

Проблема явно кроется в сервере. Вам нужно выяснить, откуда отправляются эти данные.

Member 14024497

не могли бы вы уточнить?

данные отправляются на URL-адрес, который связан с моим PHP - кодом
я консультируюсь с данными из xcode с помощью json
пусть myURL = URL(строка: "хе-хе")

Richard MacCutchan

Где создается строка данных? Должно быть, это то самое место, где надо искать.

Member 14024497

да php код уже исправлен

но все равно получаю ту же ошибку это так расстраивает не могу найти ответ нигде

<?php
session_start();
error_reporting(0);
echo '<meta charset="UTF-8">';
$host_db = "хе-хе";
$user_db = ":Д";
$pass_db = "Д:";
$db_name = "=DDD";
$подключение = новый в mysqli($host_db, $user_db, $pass_db, $имя_базы_данных);
если ($подключение-&ГТ;connect_error) {
die("La conexion falló:" . $conexion->connect_error);
}

$среда SQL = "выбрать * из Usuarios где Коррео = '".$_POST, где['электронной почты']".' и password = '".$_POST, где['пароль']".'";
$result = $conexion->query($sql);
if ($result->num_rows > 0) {
$row = mysqli_fetch_array($result);

$response['Email'] = $row['Correo'];
$response['Password'] = $row['Password'];
}
еще
{
$response['Email'] = 'ошибка';
$response['Password'] = 'ошибка';
}
Эхо json_encode($ответ);
mysqli_close($подключение);
?>

Richard Deeming

echo '<meta charset="UTF-8">';

Неужели? Вы не можете видеть, где в этом коде <meta charset="UTF-8"> это откуда идет? :)

Member 14024497

да, я думаю, что это было проблемой для всего этого

я удалил эту строку и теперь это видно

Опционально("{\"электронная почта\":\"\jose.luar.1111@hotmail.com",\"\пароль":\"hi123\"}\р\н\р\н\р\н")
Никакого `статуса` в результате

0 Ответов