Страница 1 из 2

Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 26 дек 2012, 06:20
eligma
Это форма входа в игру по логину и паролю (не регистрация) Если у вас уже на сайте в такой то базе данных есть зарегестрированные пользователи. Проверка логина и пароля. Это исходник решил написать потому что нигде в инете не нашел готового работающего исходника. И кто не рубит в mysqlях всяких начинают стрематься.
Берем все скрипты php отсюда http://www.phpeasystep.com/phptu/6.html и делаем базу mySQL как там сказано. (Делаем базу с помощью запросов и вводим в нее данные про johna) В данном случае мои скрипты - они тестились на локалхост - а вам надо будет указать свои имена хостов и пароли.
php.rar

После создания базы и заливки скриптов на сайт мы можем увидеть такую картину(база - test!!!, таблица - members!!!)
http://gleeko-multiplayer.social-networ ... _login.php
Тут мы можем вводить логин и пароль. Естественно подтвердит только одну нашу запись с логином и паролем
john
1234
Ну вот и все теперь только сделаем проверку логина и пароля с юнити. Даю сразу исходник паком и сам скрипт
Синтаксис:
Используется javascript
var pass: String = "Password";
var user : String = "Username";

var url = "http://test/checklogin.php";   //здесь путь на ваш сайт куда положили checklogin.php

function Update () {
}

function OnGUI () {

    user = GUI.TextField (Rect (Screen.width/2-155, Screen.height/2-50, 310, 30), user, 25);
    pass = GUI.PasswordField (Rect (Screen.width/2-155, Screen.height/2, 310, 30), pass, "*" [0], 25);
 
  if (GUI.Button(Rect(Screen.width/2-155, Screen.height/2+50, 100, 30),"Submit")) {
        HandleLogin(user, pass);
    }

   // Debug.Log("Logged In");
}

 
function HandleLogin(username: String, password: String) {

    var form = new WWWForm();
    form.AddField("myusername", username);
    form.AddField("mypassword", password);
    var login = new WWW(url, form);
    yield login;

    // React to login, check for errors, etc.
       
        a = login.text;       //get echo from php
    print(a);

if (a=="Ok")
     Application.LoadLevel(1);
               
}
 

Здесь ничего необычного кроме того что мы получаем echo "Ok" из php, в случае положительной проверки и делаем переход на следующий уровень. Но в скрипт checklogin.php добавляем небольшую правку, смотрите скрипты в архиве или тут
checklogin.php:
Синтаксис:
Используется javascript
<?php

$host="open-server:3306"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
       echo "Ok";
// Register $myusername, $mypassword and redirect to file "login_success.php"
//session_register("myusername");
//session_register("mypassword");
//header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>


login : john I pass: 1234
HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=http://gleeko-multiplayer.social-networking.me/login/WebPlayer.unity3d&w=600&h=400&t=true&preview=1' height='"+(400+30)+"' width='600' frameborder='0' scrolling='no'></iframe>"); </script>

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 26 дек 2012, 21:00
toga94
Хорошие турториал! :-bd

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 10 сен 2013, 18:28
CoMMoN
Спасибо то что нужно и работает 100% (3A4OT)

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 15 сен 2013, 04:08
sim3d.ru
Привет
в дебаге пишет:
cannot connect
UnityEngine.MonoBehaviour:print(Object)
$:MoveNext() (at Assets/Login.js:35)

Я что-то пропустил?

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 15 сен 2013, 04:35
BornFoRdeatH
пропустил сервер бд его логин и пароль

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 15 сен 2013, 05:32
sim3d.ru
BornFoRdeatH писал(а):пропустил сервер бд его логин и пароль

Действительно, забыл в инспекторе исправить путь к моему сайту((, а затем вылезла еще одна ошибка "SecurityException: No valid crossdomain policy available to allow access
UnityEngine." Но эту победил путем установки своего сайта в настройках Edit>Project settings>Editor>Host URL
Классный урок, то что нужно :-bd

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 15 сен 2013, 07:53
newArray
Да на серваках часто нету политики доступа к пхп. Я всегда кидаю еще для реги на хосты файл crossdomen.xml. Даже мало того - бесплатные хосты типа хостингера по моему даже не будут и с кросдоменом работать - только будут работать если веб билд игры загрузить на хост в ту же папку что и пхп скрипт.
Затем еше одна проблема в юнити может быть "ok" != "ok" Вы увидите что юнити принимает эхо - но ни с чем сравить его не сможете. Это потому что разная кодировка - скрипта пхп и вашего скрипта в юнити. Иногда случайно получается нужная кодировка скрипта иногда нет - если за этим не следить.

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 17 сен 2013, 17:09
CoMMoN
newArray писал(а):Да на серваках часто нету политики доступа к пхп. Я всегда кидаю еще для реги на хосты файл crossdomen.xml. Даже мало того - бесплатные хосты типа хостингера по моему даже не будут и с кросдоменом работать - только будут работать если веб билд игры загрузить на хост в ту же папку что и пхп скрипт.
Затем еше одна проблема в юнити может быть "ok" != "ok" Вы увидите что юнити принимает эхо - но ни с чем сравить его не сможете. Это потому что разная кодировка - скрипта пхп и вашего скрипта в юнити. Иногда случайно получается нужная кодировка скрипта иногда нет - если за этим не следить.

У меня там работает пока что хорошо,

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 27 сен 2013, 15:08
Vyacheslaw
Уважаю! (3A4OT)
Хороший тутор

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 05 фев 2014, 23:09
Hapukapa
вот тут искать нужно было )))

http://answers.unity3d.com/questions/54 ... field.html

(popcorn)

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 18 мар 2014, 23:24
LiGuB
newArray писал(а):Затем еше одна проблема в юнити может быть "ok" != "ok" Вы увидите что юнити принимает эхо - но ни с чем сравить его не сможете. Это потому что разная кодировка - скрипта пхп и вашего скрипта в юнити. Иногда случайно получается нужная кодировка скрипта иногда нет - если за этим не следить.


подскажите как это исправить, большую часть дня не мог понять почему "ok" != "ok" ...

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 18 мар 2014, 23:32
newArray
Нужно перекодировать скрипт php. Самое простое предложение такое. Скачать скрипт который тут дан - очевидно что он в правильной кодировке - удалить все его содержимое и вставить в него свой код. Таким образом ты будешь использовать скрипт с правильным форматом.
Ну а потом разбираться какими средствами можно поменять кодировку скрипта.

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 19 мар 2014, 10:55
LiGuB
newArray писал(а):Нужно перекодировать скрипт php. Самое простое предложение такое. Скачать скрипт который тут дан - очевидно что он в правильной кодировке - удалить все его содержимое и вставить в него свой код. Таким образом ты будешь использовать скрипт с правильным форматом.
Ну а потом разбираться какими средствами можно поменять кодировку скрипта.



брал эти скрипты, результат тот же :(

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 19 мар 2014, 11:07
newArray
А в юнити доходит echo - "ok"? Если нельзя в юнити его даже дебагнуть то это еще может быть
Да на серваках часто нету политики доступа к пхп. Я всегда кидаю еще для реги на хосты файл crossdomen.xml.

Еще варик прими с ехо не слово, а цифру. Затем конвертни цифру в нумерик. И в сравнивай уже нумерик - нумерик то 100 проц сравниться.
Это для джава скрипт - для C# там по другому
Синтаксис:
Используется javascript
import System.IO;
var  str : string;
 var num : int = System.Int32.Parse(str);

Только обязательно первой строчкой в скрипте указать эту библу import System.IO; также и в си надо указать

Re: Простой логин и пароль, проверка через mySQL

СообщениеДобавлено: 19 мар 2014, 15:07
LiGuB
увы не сработало

в эхо передаю 1
она ловится юнькой ( дебагом проверяю)

но

Синтаксис:
Используется javascript
   var login = new WWW(url, form);
     yield login;
     Debug.Log(login.text);
 var str : String = login.text;
 var num : int = System.Int32.Parse(str);


и вот последняя строчка ругается
FormatException: Input string was not in the correct format
System.Int32.Parse (System.String s)

как я понмиаю, что str не является стрингом Оо?