我的 php 頁面根本沒有從我的 C# 腳本中取得 POST 數據
P粉921165181
P粉921165181 2024-03-22 10:55:36
0
1
473

我在建立有效的 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粉921165181
P粉921165181

全部回覆(1)
P粉864872812

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 變數。

如果您仍然遇到問題,請告訴我。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板