Ожидать ответ от сервера MySQL легко - PullRequest
0 голосов
/ 25 августа 2018

Я новичок в программировании и написал базовый сценарий входа в систему (или, скорее, смотрел учебник) , но мой вывод в Unity сначала "User nicht gefunden" и примерно через секунду "User gefunden"».

Мой вопрос: могу ли я как-нибудь дождаться ответа от сервера mysql простым способом и все еще распознать отсутствующее соединение?

Unityscript:

public string inputusername;
public string inputpassword;

public string URL = "http://localhost/login.php";


void Start () {

}


void Update () {
    if (Input.GetKeyDown(KeyCode.L))
    {
       StartCoroutine(LoginToDB(inputusername, inputpassword));
    }
}

IEnumerator LoginToDB(string username, string password)
{
    WWWForm form = new WWWForm();
    form.AddField("usernamePost", username);
    form.AddField("passwordPost", password);

    WWW www = new WWW(URL, form);
    yield return www;


    if(www.text == "wrong")
    {
        Debug.Log("User nicht gefunden");
    }
    if(www.text == "correct")
    {
        Debug.Log("User gefunden");
    }


}

Phpscript:

$servername = "localhost";
$username = "root";
$password = "********";
$dbName = "test";

$user_username = $_POST["usernamePost"];
$user_password = $_POST["passwordPost"];

 $conn = new mysqli($servername, $username, $password, $dbName);

if(!$conn){
    die("Verbindung Fehlgeschlagen!". mysqli_connect_error());
}

$sql = "SELECT password FROM users WHERE username = '".$user_username."' ";
$result = mysqli_query($conn, $sql);



if(mysqli_num_rows($result) > 0){

    while($row = mysqli_fetch_assoc($result)){

         if($row['password'] == $user_password){
             echo "correct";
         } 

         else{

                echo "wrong";
         }

    }

}else {
    echo"not here";

}

Заранее извините за возможно простой вопрос.

1 Ответ

0 голосов
/ 26 августа 2018

Здесь я вижу три вопроса:

while($row = mysqli_fetch_assoc($result)){

     if($row['password'] == $user_password){
         echo "correct";
     } 

     else{

            echo "wrong";
     }

}
  1. Вы не проверяете, совпадает ли переданный пользователь с пользователем в базе данных. Несколько пользователей с одним и тем же паролем могут войти, добавить друг друга!
  2. Вы возвращаете несколько ответов, поэтому изначально вы видите «неправильный пароль»
  3. Вы не солите и не хэшируете свои пароли. Это по сути небезопасно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...