Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么UnityWebRequest发送空字段?_Php_Unity3d_Xampp - Fatal编程技术网

Php 为什么UnityWebRequest发送空字段?

Php 为什么UnityWebRequest发送空字段?,php,unity3d,xampp,Php,Unity3d,Xampp,我现在面临着一个令人沮丧的问题,我看不出这有什么理由不起作用,因为这是纯粹的Unity developer复制粘贴代码 我无法将数据从Unity发送到网站。每个Unity sent参数都被视为空 这就是我的[Web.cs]的样子: using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.Networking; publi

我现在面临着一个令人沮丧的问题,我看不出这有什么理由不起作用,因为这是纯粹的Unity developer复制粘贴代码

我无法将数据从Unity发送到网站。每个Unity sent参数都被视为空

这就是我的
[Web.cs]
的样子:

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.Networking;

public class Web : MonoBehaviour
{
    public IEnumerator Login(string Username, string Password)
    {
        Debug.Log(Username);
        Debug.Log(Password);

        WWWForm Form = new WWWForm();
        Form.AddField("loginUser", Username);
        Form.AddField("loginPass", Password);

        UnityWebRequest www = UnityWebRequest.Post("http://localhost/Login.php", Form);
        yield return www.SendWebRequest();

        if (www.isNetworkError || www.isHttpError)
            Debug.Log(www.error);
        else
        {
            Debug.Log("Form upload complete!");
            Debug.Log(www.downloadHandler.text);
        }
    }
}
<?php
    $UserName = $_GET["loginUser"];
    $Password = $_GET["loginPass"];
    
    $myfile = fopen("testfile.txt", "a");
    fwrite($myfile, "Username: $UserName\nPassowrd: $Password\n\n");
?>
我通过
Login.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Login : MonoBehaviour
{
    public InputField UserName;
    public InputField Password;
    public Button myButton;

    private void Start()
    {
        myButton.onClick.AddListener(() =>
        {
            StartCoroutine(Main.Instance.Web.Login(UserName.text, Password.text));
        });
    }

}
php
代码如下所示:

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.Networking;

public class Web : MonoBehaviour
{
    public IEnumerator Login(string Username, string Password)
    {
        Debug.Log(Username);
        Debug.Log(Password);

        WWWForm Form = new WWWForm();
        Form.AddField("loginUser", Username);
        Form.AddField("loginPass", Password);

        UnityWebRequest www = UnityWebRequest.Post("http://localhost/Login.php", Form);
        yield return www.SendWebRequest();

        if (www.isNetworkError || www.isHttpError)
            Debug.Log(www.error);
        else
        {
            Debug.Log("Form upload complete!");
            Debug.Log(www.downloadHandler.text);
        }
    }
}
<?php
    $UserName = $_GET["loginUser"];
    $Password = $_GET["loginPass"];
    
    $myfile = fopen("testfile.txt", "a");
    fwrite($myfile, "Username: $UserName\nPassowrd: $Password\n\n");
?>

看起来您正在向GET请求发送POST请求


Try:UnityWebRequest.Get(…)

您似乎正在向Get请求发送POST请求


试试:UnityWebRequest.Get(…)

@Kale,谢谢,我还是不明白post和Get方法的区别:-

对于未来的搜索者,我就是这样设法解决这个问题的:

public class Web : MonoBehaviour
{
    public IEnumerator Login(string Username, string Password)
    {
        WWWForm Form = new WWWForm();
        string Link = "http://localhost/Login.php?loginUser=" + Username + "&loginPass=" + Password;

        UnityWebRequest www = UnityWebRequest.Get(Link);
        yield return www.SendWebRequest();

        if (www.isNetworkError || www.isHttpError)
            Debug.Log(www.error);
        else
        {
            Debug.Log("Form upload complete!");
            Debug.Log(www.downloadHandler.text);
        }
    }
}

@Kale,谢谢,我还是有点不明白post和get方法的区别:-

对于未来的搜索者,我就是这样设法解决这个问题的:

public class Web : MonoBehaviour
{
    public IEnumerator Login(string Username, string Password)
    {
        WWWForm Form = new WWWForm();
        string Link = "http://localhost/Login.php?loginUser=" + Username + "&loginPass=" + Password;

        UnityWebRequest www = UnityWebRequest.Get(Link);
        yield return www.SendWebRequest();

        if (www.isNetworkError || www.isHttpError)
            Debug.Log(www.error);
        else
        {
            Debug.Log("Form upload complete!");
            Debug.Log(www.downloadHandler.text);
        }
    }
}

基本上,GET请求通过URL发送信息——更好地用于导航,post或多或少地在“幕后”发送信息——更好地用于登录信息。更多信息:基本上,GET请求通过URL发送信息-更好地用于导航,post或多或少地在“幕后”发送信息-更好地用于登录信息。更多信息: