2014-07-20 90 views
0

我有一個網站,我想用它作爲我可以存儲我的多人遊戲的數據(如用戶名,密碼等)的地方Unity3D。無法在我的網站(PHP,Unity3D)上註冊用戶

現在我想使用C#和Unity3D註冊某人(將用戶名和密碼添加到MySQL數據庫中)。我使用WWW類來與網站溝通。在我看來,我在Unity3D中製作的代碼工作正常,但是當我訪問phpMyAdmin並搜索新的註冊用戶時,我無法找到它。所以我想,問題必須在PHP腳本中,但我找不到它。

再一次問題是用戶名和密碼沒有添加到MySQL表中。

我會發布這兩個腳本,但我認爲Unity3D中的腳本工作正常。請注意,我是PHP絕對初學者。

<?php 

$mysql_host = "example.host.com"; 
$mysql_database = "example_database"; 
$mysql_user = "exampleuser"; 
$mysql_password = "toomanysecrets"; 

try 
{ 

$toQuery = 'SELECT name, 
       password 
      FROM basicUserInfo 
      ORDER BY name'; 

if ($_POST["name"] || $_POST["password"]) 
{ 
    $conn = new PDO("mysql:host=$mysql_host;dbname=$mysql_database", $mysql_user,  $mysql_password); 
    echo "Connected to $mysql_database at $mysql_host successfully!"; 
    $forQuery = 'INSERT INTO `a1936371_userinf`.`basicUserInfo` (
       `name` ,`password` 
       ) 
       VALUES (
        \'$_POST[\'name\']\', \'$_POST[\'password\']\' 
        )'; 

     if (!$conn->query($forQuery)) 
     { 
      echo "Failed to add data!"; 
     } 
     else 
     { 
      echo "Added data sucessfully"; 
     } 
    //Close the connection 
    $conn = null; 
} 

} catch (PDOException $pe) 
{ 
    die("Could not connect to the database $mysql_database:" . $pe->getMessage()); 
} 

Unity3D:

void Update() 
{ 
    if (Input.GetKeyDown(KeyCode.S)) 
    { 
     Register("testt", "test1"); 
    } 
} 

public void Register(string playername, string password) 
{ 
    StartCoroutine(RegisterOnServer(playername, password)); 
} 

IEnumerator RegisterOnServer(string playerName, string password) 
{ 
    string url = "http://deathrunserv.net16.net/index.php"; 

    WWWForm form = new WWWForm(); 
    form.AddField("name", playerName); 
    form.AddField("password", password); 

    WWW www = new WWW(url); 
    yield return www; 
    Debug.Log("Done!"); 

} 
+2

請從這篇文章中刪除您的數據庫憑據,並立即改變它們! – tillz

+0

烏普斯,我完全忘了那個。非常感謝vaxquis和@tillz – user3071028

回答

0

在你的C#代碼,你不使用WWWForm任何地方。試試:

WWWForm form = new WWWForm(); 
form.AddField("name", playerName); 
form.AddField("password", password); 

WWW www = new WWW(url, form); 
yield return www; 
Debug.Log("Done!"); 
+0

哦,這就是問題所在!非常感謝你! – user3071028

+0

如果我的答案解決了您的問題,請將其標記爲已接受。 –

相關問題