c # войти, используя xampp и php в UNITY - PullRequest
0 голосов
/ 03 января 2019

Привет всем, поэтому я разрабатывал игру с логином в Unity 5, мне успешно удается создать регистрационную форму, но логин всегда говорит «сбой логина», даже если имя пользователя и пароль верны. Я чувствую, что мой код распознает только оператор "else", потому что я уже пытался переключить свои условия

вот код C #

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class DataLogin : MonoBehaviour {
public InputField inputUsername1;
public InputField inputPassword1;
public static string Username;
public static string Password;


string UserURL1 = "http://localhost/login.php";

void Start(){

}
void Update(){

}
//  void OnMouseDown(Button insertButton){
//      InsertData(inputUsername, inputPassword);
//  }
public void Button_Click1(){
    StartCoroutine(LoginData (inputUsername1, inputPassword1));

}
IEnumerator LoginData(InputField inputUsername1, InputField inputPassword1){
    WWWForm form = new WWWForm ();
    form.AddField ("username", inputUsername1.text);
    form.AddField ("password", inputPassword1.text);

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

    if (www.text [0] == '0') {
        Debug.Log ("User Login Success.");
    } else {
        Debug.Log ("User Login Failed.");
   }
  }
}

вот код php

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "table_test";

    $user = $_POST["username"];
    $pass = $_POST["password"];

     // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
      die("Connection failed: " . mysqli_connect_error());
    }

    $sql = " SELECT * FROM test WHERE username = '$user' AND password = '$pass'";
    $result = mysqli_query($conn, $sql);
    if ($result->num_rows > 0) {
      while ($row = $result->fetch_assoc()) {
        if ($row['username'] = $user && $row['password'] = $pass) {
          echo ("Login Successfully");
        } else {
          echo ("Login Failed");
        }
     }
   }
?>

1 Ответ

0 голосов
/ 03 января 2019

Вы проверяете, является ли результат из первого символа php-скрипта '0'.

Однако в вашем PhP-скрипте вы никогда не вернете '0'.Вы либо возвращаете "Login Successfully" или "Login Failed".

Так что я предлагаю вам либо проверить это в своем операторе if, либо записать фактический ответ с сервера:

Debug.Log (www.text);

ХотяЯ не уверен, что это правильный синтаксис, так как вы используете более старую версию Unity.

Кроме того, ваш скрипт Php уязвим для SQL-инъекций. Проверьте этот пост для получения дополнительной информации по этой теме

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...