Ошибка разбора: данные не могут быть прочитаны, потому что они не в правильном формате. — PHPMailer в Swift 3.0

У меня есть этот код Swift 3.0 для публикации данных JSON в базе данных php mysql.

test.swift

let url             = URL(string: "http://localhost:test.php")
let session         = URLSession.shared
let request         = NSMutableURLRequest(url: url! as URL)
request.httpMethod  = "POST"let valueToSend     = "data1=&data2"request.httpBody    = valueToSend.data(using: String.Encoding.utf8)
let myAlert         = UIAlertController(title: "Confirm", message: "are you sure ?", preferredStyle: UIAlertControllerStyle.alert)
let cancel          = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default, handler: nil)
let okaction        = UIAlertAction(title: "Yes", style: UIAlertActionStyle.default, handler:
{
action in

let task = session.dataTask(with: request as URLRequest, completionHandler: {
(data, response, error) in
if error != nil {
return
}
else {
do {
if let json = try JSONSerialization.jsonObject(with: data!) as? [String: String]
{
DispatchQueue.main.async {
let message = Int(json["message"]!)
if(message == 1)
{
let myViewController:ViewController = self.storyboard!.instantiateViewController(withIdentifier: "ViewController") as! ViewController
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let navigationController = UINavigationController.init(rootViewController: myViewController)
appDelegate.window?.rootViewController = navigationController
appDelegate.window?.makeKeyAndVisible()

let myAlert = UIAlertController(title: "Success !", message: "sent !", preferredStyle: UIAlertControllerStyle.alert)
myAlert.addAction(UIAlertAction(title: "Noted", style: UIAlertActionStyle.default, handler: nil))
navigationController.present(myAlert, animated: true, completion: nil)
return
}
else { return }
}
}
}
catch let parseError { print("Parse error: \(parseError.localizedDescription)") }
}
})
task.resume()

}
)
myAlert.addAction(okaction)
myAlert.addAction(cancel)
self.present(myAlert, animated: true, completion: nil)

Пока мне удалось отправить данные в базу данных, и электронная почта работает нормально. Я могу получить письмо с помощью PHPMailer. Но проблема возникает с кодом X не может прочитать код PHPMailer.

Ошибка отображения в моей консоли, как это из-за PHPMailer. Когда я удалил код PHPMailer, он работает нормально.

«Ошибка разбора: данные не могут быть прочитаны, потому что они не находятся в
правильный формат. «

Моя цель, я не хочу, чтобы эта ошибка появлялась, потому что UIAlertAction застрянет на той же странице. Он не войдет в rootController из-за этой ошибки.

Есть ли способ решить эту проблему? Кстати, вот мой PHP-код

test.php

<?php
require 'database/connect.php';
global $connect;
require_once 'PHPMailer-master/PHPMailerAutoload.php';

if (isset($_POST['data1'])) {
$data1      = $_POST['data1'];
$sql        = "SELECT * FROM table WHERE data1 = '$data1'";
$result     = mysqli_query($connect, $sql);
if ($result && mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result))
{}

$output = array('message' => '1');
echo json_encode($output);

$add = "INSERT INTO table (data1) VALUES ('$data1')";
$run = mysqli_query($connect,$add);

$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = '*****';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('test@email','Receiver');
$mail->isHTML(true);
$mail->Subject = 'Test';
$mail->Body    = 'Test';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->send())
{
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
}
else
{
echo 'Message has been sent';
}
exit();

mysqli_free_result($result);
}
else
{}
}
?>

Благодарю.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]