Rumah  >  Soal Jawab  >  teks badan

Halaman php saya tidak mendapat data POST daripada skrip C# saya sama sekali

Saya tiada masalah mencipta kod SQL dan PHP yang sah. Saya tidak mempunyai masalah mencipta kod C# yang berjalan secara dalaman.

Satu-satunya masalah saya ialah saya tidak boleh mendapatkan skrip C# saya (dari dalam Unity, btw) untuk menghantar rentetan ke ascended.us/monstro/login

Itu sahaja! Adakah terdapat orang yang bijak di sini yang boleh membantu saya mengatasi halangan yang menjengkelkan ini?

Terima kasih banyak-banyak!

Saya cuba mendapatkan kod berikut untuk menghantar borang ke halaman saya. Ya, Unity sedang menghantar permintaan rangkaian, tetapi ia tidak menghantar data penerbitan. Inilah bahagian C# sesuatu.

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

Di bawah ialah skrip PHP saya untuk menerima 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);
?>

Saya tahu skrip ini tidak selamat jadi anggap ia sebagai aplikasi hello world. Apabila saya menjalankan skrip, apa yang akhirnya berlaku ialah ia memasukkan nilai ke dalam jadual SQL saya, tetapi nilainya kosong, menunjukkan bahawa pembolehubah pos tidak dipindahkan. boleh awak tolong?

Mungkin saya memerlukan beberapa jenis kebenaran? Saya menggunakan BlueHost jika itu membantu. A mestiAda cara mudah untuk mendapatkan data siaran ini dihantar dari C# ke halaman PHP saya! Saya telah mencuba tutorial lain dan respons yang serupa di laman web ini (dan banyak lagi) tetapi ia tidak berfungsi.

P粉921165181P粉921165181234 hari yang lalu429

membalas semua(1)saya akan balas

  • P粉864872812

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

    Skrip C# kelihatan baik untuk menghantar permintaan POST, tetapi data yang diterima skrip PHP nampaknya berada dalam format yang salah. Dalam UnityWebRequest anda, anda menghantar data JSON, tetapi skrip PHP anda cuba mengakses $_POST["loginUser"], iaitu untuk data bentuk biasa, bukan data JSON.

    Anda boleh mengubah suai skrip C# untuk menghantar data sebagai data borang seperti ini:

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

    Dalam skrip PHP anda boleh mengakses data menggunakan $_POST:

    
    

    Dengan kod yang diubah suai, anda boleh menghantar data POST sebagai data borang daripada Unity dan skrip PHP anda boleh mengakses pembolehubah POST dengan betul menggunakan $_POST["loginUser"].

    Jika anda masih menghadapi masalah, sila beritahu saya.

    balas
    0
  • Batalbalas