为什么来自 Unity 的 POST 请求在 php 中返回空?

我想在我的游戏中创建注册和登录,我创建了一个简单的数据库,并从 Unity 的文档中发布请求。但在 php $_POST['any'] 中总是返回空。


我尝试使用 $_GET['any'],它可以工作,但需要使用 POST。


这是 C# 代码:


 private IEnumerator IESignUp()

{

    List<IMultipartFormSection> formData = new List<IMultipartFormSection>();

    formData.Add(new MultipartFormDataSection("username=username&password=12345678"));

    //string.Format("username={0}&password={1}", usernameInput.text, passwordInput.text)

    UnityWebRequest www = UnityWebRequest.Post("http://multiplayer_game:8080/sing_up.php", formData);

    yield return www.SendWebRequest();


    if (www.isNetworkError || www.isHttpError)

    {

        popupWindow.Show("Network not respond!", www.error, PopupWindow.Type.Error);

    }

    else

    {

        Debug.Log("Form upload complete!");

    }

}

这是 php 代码:


  if(isset($_POST['username']) && isset($_POST['password'])) {

$sql = "INSERT INTO players (username, password, mail, points, serrviums, skin_id, weapon_id, inventory) VALUES ('".$_POST['username']."', '".$_POST['password']."', 'test@mail.ru', 0, 0, 0, 0, '0|0')";


if(mysqli_query($connection, $sql))

    echo 'Successful';

else

    echo 'Error';

}


蝴蝶不菲
浏览 296回答 2
2回答

繁星点点滴滴

按照文档中的建议使用 WWWForm :WWWForm formData = new WWWForm();formData.AddField("username", "username");formData.AddField("password", "12345678");另外不要忘记使用 HTTPS 来发送/接收用户数据,尤其是登录凭据。

www说

您的 php 文件是 sing_up.php -- 不是 sign_up.php?我被更糟的事情挫败了。
打开App,查看更多内容
随时随地看视频慕课网APP