【发布时间】:2019-09-04 09:40:59
【问题描述】:
我正在尝试在 Unity 中制作游戏原型。我有一个 MySQL 数据库,我可以在其中注册一个用户。
所以我遇到的问题是每当我填写错误的字段时都会收到错误消息。比如发送SQL请求之前需要匹配密码的两个字段,然后加载新场景。
我已尝试使用 if(www.downloadHandler.text == ""),但如果我不填写信息字段,我的测试通过,因为它返回 ""
这是我的 c# 文件:
IEnumerator Insertion()
{
WWWForm form = new WWWForm();
form.AddField("Identifiant", IdField.text);
form.AddField("MotPasse", MdpField.text);
form.AddField("MotPasseConfi", MdpConfirField.text);
form.AddField("Email", EmailField.text);
form.AddField("NoTel", NoTelField.text);
UnityWebRequest www = UnityWebRequest.Post("http://localhost/AppAndroid/inscription.php", form);
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
// It doesn't works, show error message
Debug.Log(www.error);
Debug.Log(www.downloadHandler.text);
}
else
{
// It works, load new scene
Debug.Log("c'est passé !");
Debug.Log(www.downloadHandler.text);
}
}
这是我的 php 文件:
<?php
$SRVusername="root";
$SRVpassword="";
$SRVadress="localhost";
$SRVdatabase="envapp";
$connexion=mysqli_connect($SRVadress,$SRVusername,$SRVpassword,$SRVdatabase);
if(mysqli_connect_errno())
{
echo "1: Erreur de connexion";
exit();
}
if(isset($_POST["Identifiant"]) && isset($_POST["MotPasse"]) && isset($_POST["Email"]) && isset($_POST["NoTel"]) && isset($_POST["MotPasseConfi"]))
{
$Identifiant = $_POST["Identifiant"];
$MotPasse = $_POST["MotPasse"];
$Email = $_POST["Email"];
$NoTel = $_POST["NoTel"];
$MotPasseConfi = $_POST["MotPasseConfi"];
if($MotPasse == $MotPasseConfi)
{
$checkquery = "INSERT INTO `joueurs` (`ID_JOUEUR`, `PSEUDO`, `PASSWORD`, `EMAIL`, `NUMTEL`) VALUES (NULL, '".$Identifiant."', '".$MotPasse."', '".$Email."', '".$NoTel."');";
$checkstate = mysqli_query($connexion,$checkquery) or die("4: Erreur lors de la requête " .$checkquery);
}
else
{
echo "3: Erreur Les mots de passe ne correspondent pas !";
exit();
}
}
else
{
echo "2: Erreur Les POST ne sont pas passés !";
exit();
}
mysqli_close($connexion);
?>
【问题讨论】:
-
能否请您添加失败时使用的代码......包括检查以及您如何测试它?
标签: c# php unity3d httprequest