Alamofire POST请求PHP脚本没有值

时间:2017-05-18 00:08:52

标签: php mysql swift alamofire

我在Alamofire中遇到POST请求有问题。如果我尝试发出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)
?>

我得到了回应&#34; Erfolgreich registriert&#34;在我的应用程序中所以一切都应该正常。我还在我的数据库中获取了新的数据集。问题是只在数据库中设置了id,这是自动增量。其他字段为空,因此POST变量永远不会保存在数据库中..任何想法我在这里做错了什么?

编辑:它现在正在工作,只是转换

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

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

0 个答案:

没有答案