我目前正在为在线 Unity 游戏开发登录系统。我的目标是在我的服务器上建立一个数据库并检查用户是否已注册。如果您需要比提供的更多背景信息,我会遵循本教程。
我的服务器上有一个 PHP 脚本和一个数据库。PHP 脚本位于我的网络服务器 (purplepandagames.com/httpdocs/auth.php) 的默认文件夹下。
$hostname = "<localhost:3306>";
$username = "<username>";
$dbname = "<dbName>";
$password = "<password>";
mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database! Please try again later.");
mysql_select_db($dbname);
为了连接到服务器,我在 PHP 脚本中使用了这些值。本地主机是否正确?或者主机名是 Purplepandagames.com?该数据库附属于 Purplepandagams.com。
在 Unity 中,我有一个名为 AuthManager 的脚本,用于处理连接。以下是 C# 脚本的一些可能错误的部分:
string authphpurl = "https://purplepandagames.com/auth.php"; //enter the complete URL for auth.php
IEnumerator PostDataForLogin()
{
WWWForm form = new WWWForm();
form.AddField("email", emailText.text);
form.AddField("pwd", passwordText.text);
var url = authphpurl + "?action=login";
UnityWebRequest www = UnityWebRequest.Post(url, form);
yield return www.SendWebRequest();
Debug.Log("Response:" + www.downloadHandler.text);
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
responseText.text = www.error;
}
else
{
Debug.Log("Form upload complete!");
JSONNode jsonNode = SimpleJSON.JSON.Parse(www.downloadHandler.text);
Debug.Log("success : " + jsonNode["success"]);
Debug.Log("message : " + jsonNode["msg"]);
responseText.text = jsonNode["msg"];
}
}
对于 simpleJSON,我正在使用这个。
如果我像这样运行代码,HTTP/1.1 500 Internal Server Error则会出现错误消息。如果我将 authphpurl 更改为仅https://purplepandagames.com,则没有反馈并且该 Debug.Log("Response:" + www.downloadHandler.text);语句仅输出 index.html 文件。
该网站具有 SSL 认证,这可能是一个问题。
总的来说,像这样解决这个问题是个好主意吗?我会在上传到数据库之前加密密码。但目前我不明白是什么阻止了其他人也能够操纵这个数据库。
qq_花开花谢_0