mysql — PHP-скрипт Alamofire POST Request не получает значений

У меня проблема с запросом POST в Alamofire. Если я пытаюсь сделать POST-запрос, кажется, что PHP-скрипт не получает значения. Это мой POST запрос:

func userRegistration(){
let url = "http://offlineshopper.sunpowr.de/register.php"let parameters: [String:String] = ["nickname":RegisterTexts.nickname, "password":RegisterTexts.password, "email":RegisterTexts.email]
print(parameters)
Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON{ response in
if((response.result.value) != nil){
let swiftyJsonVar = JSON(response.result.value!)
print("Das kommt dabei raus: \(swiftyJsonVar)")
}
}
}

Словарь параметров распечатывает это: [«ник»: «Тест», «пароль»: «Тест», «электронная почта»: «Тест»]

Поэтому я думаю, что это правильно.

Вот мой PHP скрипт:

<?php
include("mysql_connect.php");

if(isset($_POST['nickname'])){
$nickname = $_POST['nickname'];
}

if(isset($_POST['password'])){
$password = $_POST['password'];
}

if(isset($_POST['email'])){
$email = $_POST['email'];
}

//Check if nickname is already used
$select = "SELECT `nickname` FROM `User` WHERE nickname = '$nickname'";
$result = mysqli_query($link, $select);
if (!$result){
$returnArray["message"] = "Fehler in der Datenbank!";
json_encode($returnArray);
}
if (mysqli_num_rows($result) != 0){
$returnArray["message"] = "Nickname bereits vorhanden!";
json_encode($returnArray);
}

//Add new User to the database
$sql = "INSERT INTO User (nickname, password, email) VALUES ('$nickname', '$password', '$email')";
if(mysqli_query($link, $sql)){
$returnArray["message"] = "Erfolgreich registriert!";
echo json_encode($returnArray);
}
else{
mysqli_error($link);
$returnArray["message"] = "Fehler!";
echo json_encode($returnArray);
}

mysqli_close($link)
?>

Я получаю ответ «Erfolgreich registriert» в моем приложении, поэтому все должно работать нормально. Я также получаю новые наборы данных в моей базе данных. Проблема в том, что в базе данных установлен только идентификатор, который является автоматическим приращением. Остальные поля пусты, поэтому переменные POST никогда не сохраняются в базе данных. Есть идеи, что я здесь делаю неправильно?

РЕДАКТИРОВАТЬ: это работает сейчас, просто переключение

Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON

с

Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.httpBody).responseJSON

3

Решение

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

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector