我在创建有效的 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粉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 变量。
如果您仍然遇到问题,请告诉我。