Heim  >  Fragen und Antworten  >  Hauptteil

Meine PHP-Seite erhält überhaupt keine POST-Daten von meinem C#-Skript

Ich habe kein Problem damit, gültigen SQL- und PHP-Code zu erstellen. Ich habe kein Problem damit, C#-Code zu erstellen, der intern ausgeführt wird.

Mein einziges Problem ist, dass ich mein C#-Skript (übrigens aus Unity heraus) nicht dazu bringen kann, einen String an medieval.us/monstro/login zu übergeben

Das ist es! Gibt es hier eine kluge Person, die mir helfen kann, dieses lästige Hindernis zu überwinden?

Vielen Dank!

Ich habe versucht, den folgenden Code zu erhalten, um das Formular an meine Seite zu senden. Ja, Unity sendet Netzwerkanfragen, überträgt jedoch keine Veröffentlichungsdaten. Hier ist die C#-Seite der Dinge.

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!");
            }
        }
    }
}

Unten ist mein PHP-Skript zum Akzeptieren von 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);
?>

Ich weiß, dass dieses Skript nicht sicher ist, also behandle es wie eine Hallo-Welt-Anwendung. Wenn ich das Skript ausführe, fügt es am Ende einen Wert in meine SQL-Tabelle ein, aber der Wert ist leer, was darauf hinweist, dass die Post-Variable nicht übertragen wurde. kannst du helfen?

Vielleicht brauche ich eine Erlaubnis? Ich verwende BlueHost, wenn das hilft.

Ein MussEs gibt eine einfache Möglichkeit, diese Beitragsdaten tatsächlich von C# an meine PHP-Seite zu senden! Ich habe andere Tutorials und ähnliche Antworten auf dieser Website (und vielen anderen) ausprobiert, aber sie funktionieren nicht.

P粉921165181P粉921165181234 Tage vor431

Antworte allen(1)Ich werde antworten

  • 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 变量。

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

    Antwort
    0
  • StornierenAntwort