首页  >  问答  >  正文

我的 php 页面根本没有从我的 C# 脚本中获取 POST 数据

我在创建有效的 SQL 和 PHP 代码方面没有任何问题。我对创建内部运行的 C# 代码没有任何问题。

我的唯一问题是我无法让我的 C# 脚本(顺便说一句,从 Unity 内部)将字符串传递给 ascended.us/monstro/login

就是这样!这里有聪明人可以帮助我克服这一令人讨厌的障碍吗?

非常感谢!

我尝试获取以下代码以将表单发送到我的页面。是的,Unity正在发送网络请求,但它没有传输发布数据。下面是 C# 方面的内容。

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class MyBehavior : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(Upload());
    }

    IEnumerator Upload()
    {
        using (UnityWebRequest www = UnityWebRequest.Post("https://www.ascended.us/monstro/login.php", "{ \"loginUser\": 1, \"field2\": 2 }", "application/json"))
        {
            yield return www.SendWebRequest();

            if (www.result != UnityWebRequest.Result.Success)
            {
                Debug.Log(www.error);
            }
            else
            {
                Debug.Log("Form upload complete!");
            }
        }
    }
}

下面是我的 PHP 脚本,用于接受 C# UnityWebRequest

<?
        $sqllink = mysqli_connect("localhost", "REDACTED", "REDACTED", "REDACTED"); //THESE ARE VERIFIED TO BE CORRECT
    if (!$sqllink)
    {die('Could not connect: ' . mysqli_connect_errno() . ' - ' . mysqli_connect_error());}
        
        $loginUser = $_POST["loginUser"];
        
        $query = "INSERT INTO inbound_data (data) VALUES('$loginUser')";
        mysqli_query($sqllink, $query);
?>

我知道这个脚本不安全,所以将其视为 hello world 应用程序。当我运行脚本时,最终发生的情况是它向我的 SQL 表中插入了一个值,但该值是空的,这表明 post 变量没有被传输。你能帮忙吗?

也许我需要某种权限?如果有帮助的话我正在使用 BlueHost。 必须有一种简单的方法可以让此帖子数据真正从 C# 发送到我的 PHP 页面!我已经尝试过此网站(以及许多其他网站)上的其他教程和类似的回复,但它们不起作用。

P粉921165181P粉921165181234 天前430

全部回复(1)我来回复

  • P粉864872812

    P粉8648728122024-03-23 09:33:22

    C# 脚本看起来适合发送 POST 请求,但 PHP 脚本接收的数据格式似乎可能错误。在您的 UnityWebRequest 中,您正在发送 JSON 数据,但您的 PHP 脚本正在尝试访问 $_POST["loginUser"],它用于常规表单数据,而不是 JSON 数据。

    您可以修改 C# 脚本,将数据作为表单数据发送,如下所示:

    IEnumerator Upload()
    {
        WWWForm form = new WWWForm();
        form.AddField("loginUser", "1");
        form.AddField("field2", "2");
    
        using (UnityWebRequest www = UnityWebRequest.Post("https://www.ascended.us/monstro/login.php", form))
        {
            yield return www.SendWebRequest();
    
            if (www.result != UnityWebRequest.Result.Success)
            {
                Debug.Log(www.error);
            }
            else
            {
                Debug.Log("Form upload complete!");
            }
        }
    }
    

    在 PHP 脚本中,您可以使用 $_POST 访问数据:

    
    

    使用修改后的代码,您可以将 POST 数据作为表单数据从 Unity 发送,并且您的 PHP 脚本可以使用 $_POST["loginUser"] 正确访问 POST 变量。

    如果您仍然遇到问题,请告诉我。

    回复
    0
  • 取消回复