Ma page php ne reçoit pas du tout les données POST de mon script C#
P粉921165181
P粉921165181 2024-03-22 10:55:36
0
1
474

Je n'ai aucun problème à créer du code SQL et PHP valide. Je n'ai aucun problème à créer du code C# qui s'exécute en interne.

Mon seul problème est que je n'arrive pas à faire en sorte que mon script C# (depuis Unity, d'ailleurs) transmette une chaîne à ascended.us/monstro/login

C'est tout ! Y a-t-il ici une personne intelligente qui pourrait m’aider à surmonter cet obstacle ennuyeux ?

Merci beaucoup !

J'ai essayé d'obtenir le code suivant pour envoyer le formulaire sur ma page. Oui, Unity envoie des requêtes réseau, mais il ne transmet pas de données de publication. Voici le côté C# des choses.

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

Vous trouverez ci-dessous mon script PHP pour accepter 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);
?>

Je sais que ce script n'est pas sécurisé, alors traitez-le comme une application Hello World. Lorsque j'exécute le script, ce qui finit par se produire, c'est qu'il insère une valeur dans ma table SQL, mais la valeur est vide, indiquant que la variable de publication n'a pas été transférée. peux-tu aider ?

Peut-être ai-je besoin d’une sorte d’autorisation ? J'utilise BlueHost si cela peut aider. Un incontournableIl existe un moyen simple d'envoyer ces données de publication depuis C# vers ma page PHP ! J'ai essayé d'autres tutoriels et réponses similaires sur ce site (et bien d'autres) mais ils ne fonctionnent pas.

P粉921165181
P粉921165181

répondre à tous(1)
P粉864872812

Le script C# semble convenir pour envoyer la requête POST, mais les données que le script PHP reçoit semblent être au mauvais format. Dans votre UnityWebRequest, vous envoyez des données JSON, mais votre script PHP essaie d'accéder à $_POST["loginUser"], qui concerne les données de formulaire normales, pas les données JSON.

Vous pouvez modifier le script C# pour envoyer les données sous forme de données de formulaire comme ceci :

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

Dans un script PHP, vous pouvez accéder aux données en utilisant $_POST :


Avec le code modifié, vous pouvez envoyer des données POST sous forme de données de formulaire depuis Unity et vos scripts PHP peuvent accéder correctement aux variables POST en utilisant $_POST["loginUser"].

Si vous rencontrez toujours des problèmes, n'hésitez pas à me le faire savoir.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal