Unity+Msql PHP+C#

Научился сам? Помоги начинающему.

Unity+Msql PHP+C#

Сообщение djon801 04 дек 2014, 23:14

буду копипастить с видео))) но думаю будет полезно
есть 3 скрипта login.php , register.php , database.cs
Я использовал для тэста http://www.denwer.ru как устонавливать все там читать
файлы login.php , register.php поместить в папку C:\WebServers\home\localhost\www\myGame ну или конечная папка может быть ваша
database.cs скопировать в проэкт юнити.Создать пустой объект на сцене и повесить скрипт на него
Создать базу данных 847508_admin,в ней таблицу unityTut с 4 колонками
1:id/int/PRIMARY/A_I
2:user/VARCHAR/64
3:name/VARCHAR/64
4:pass/VARCHAR/64
по бд смотрите уроки или читайте доки))певое мне лично проще)))
ну и вот урок по бд,многое прояснилось для меня ,может и вам понадобится:
Не забивайте тапками на смерть))) мне пригодилось! думаю я не один такой


по порядку:
..................................................................................login.php.................................................................................
Синтаксис:
Используется php
<?PHP

$user = $_POST['user'];
$pass = $_POST['password'];

$con = mysql_connect("тут ваш хост где находится БД","логин к базе","пароль к базе") or ("Cannot connect!"  . mysql_error());
if (!$con)
        die('Could not connect: ' . mysql_error());
       
mysql_select_db("847508_admin" , $con) or die ("could not load the database" . mysql_error());

$check = mysql_query("SELECT * FROM unityTut WHERE `user`='".$user."'");
$numrows = mysql_num_rows($check);
if ($numrows == 0)
{
        die ("Username does not exist \n");
}
else
{
        $pass = md5($pass);
        while($row = mysql_fetch_assoc($check))
        {
                if ($pass == $row['pass'])
                        die("login-SUCCESS");
                else
                        die("Password does not match \n");
        }
}

?>

..................................................................................register.php.................................................................................
Синтаксис:
Используется php
<?PHP

$user = $_POST['user'];
$name = $_POST['name'];
$pass = $_POST['password'];

$con = mysql_connect("тут ваш хост где находится БД","логин к базе","пароль к базе") or ("Cannot connect!"  . mysql_error());
if (!$con)
        die('Could not connect: ' . mysql_error());
       
mysql_select_db("847508_admin" , $con) or die ("could not load the database" . mysql_error());

$check = mysql_query("SELECT * FROM unityTut WHERE `user`='".$user."'");
$numrows = mysql_num_rows($check);
if ($numrows == 0)
{
        $pass = md5($pass);
        $ins = mysql_query("INSERT INTO  `unityTut` (  `id` ,  `user` ,  `name` ,  `pass` ) VALUES ('' ,  '".$user."' ,  '".$name."' ,  '".$pass."') ; ");
        if ($ins)
                die ("Succesfully Created User!");
        else
                die ("Error: " . mysql_error());
}
else
{
        die("User allready exists!");
}


?>

..................................................................................database.cs.................................................................................
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class database : MonoBehaviour
{
    public static string user = "", name = "";
    private string password = "", rePass = "", message = "";

    private bool register = false;

    private void OnGUI()
    {
        if (message != "")
            GUILayout.Box(message);

        if (register)
        {
            GUILayout.Label("Username");
            user = GUILayout.TextField(user);
            GUILayout.Label("Name");
            name = GUILayout.TextField(name);
            GUILayout.Label("password");
            password = GUILayout.PasswordField(password, "*"[0]);
            GUILayout.Label("Re-password");
            rePass = GUILayout.PasswordField(rePass, "*"[0]);

            GUILayout.BeginHorizontal();

            if (GUILayout.Button("Back"))
                register = false;

            if (GUILayout.Button("Register"))
            {
                message = "";

                if (user == "" || name == "" || password == "")
                    message += "Please enter all the fields \n";
                else
                {
                    if (password == rePass)
                    {
                        WWWForm form = new WWWForm();
                        form.AddField("user", user);
                        form.AddField("name", name);
                        form.AddField("password", password);
                        WWW w = new WWW("http://localhost/Nardy/register.php", form);
                        StartCoroutine(registerFunc(w));
                    }
                    else
                        message += "Your Password does not match \n";
                }
            }

            GUILayout.EndHorizontal();
        }
        else
        {
            GUILayout.Label("User:");
            user = GUILayout.TextField(user);
            GUILayout.Label("Password:");
            password = GUILayout.PasswordField(password, "*"[0]);

            GUILayout.BeginHorizontal();

            if (GUILayout.Button("Login"))
            {
                message = "";

                if (user == "" || password == "")
                    message += "Please enter all the fields \n";
                else
                {
                    WWWForm form = new WWWForm();
                    form.AddField("user", user);
                    form.AddField("password", password);
                    WWW w = new WWW("http://ваш хост /login.php", form);// к примеру  http://localhost/myGame/login.php
                    StartCoroutine(login(w));
                }
            }

            if (GUILayout.Button("Register"))
                register = true;

            GUILayout.EndHorizontal();
        }
    }

    IEnumerator login(WWW w)
    {
        yield return w;
        if (w.error == null)
        {
            if (w.text == "login-SUCCESS")
            {
                print("WOOOOOOOOOOOOOOO!");
            }
            else
                message += w.text;
        }
        else
        {
            message += "ERROR: " + w.error + "\n";
        }
    }

    IEnumerator registerFunc(WWW w)
    {
        yield return w;
        if (w.error == null)
        {
            message += w.text;
        }
        else
        {
            message += "ERROR: " + w.error + "\n";
        }
    }
}
 


урок по бд

видео на пример:
Аватара пользователя
djon801
Старожил
 
Сообщения: 506
Зарегистрирован: 03 май 2014, 15:08

Re: Unity+Msql PHP+C#

Сообщение gerd 10 дек 2014, 13:14

Спасибо ,для новичков самое то.
Именно то,что я искал.
gerd
UNец
 
Сообщения: 5
Зарегистрирован: 07 сен 2013, 20:37


Вернуться в Уроки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4