За последние 24 часа нас посетили 70162 программиста и 3590 роботов. Сейчас ищут 2172 программиста ...

Нужна помощь

Тема в разделе "Сделайте за меня", создана пользователем АлеГ80, 26 сен 2023.

  1. АлеГ80

    АлеГ80 Новичок

    С нами с:
    26 сен 2023
    Сообщения:
    1
    Симпатии:
    0
    Друзья. Помогите правильно составить код
    Создаю форму аутентификации игрока в игре на Unity.
    При аутентификации вводятся поля Login, Password.
    С этим все нормально аутентификация работает.
    Но дополнительно нужно, чтобы при успешном входе в игру еще подгружалось имя игрока, которое соответствует введенному Login.
    Это реализуется через отправку WWW формы на сайт.
    Создал несколько скриптов
    C#
    using UnityEngine;
    using UnityEngine.UI;
    using System.Collections;
    using UnityEngine.SceneManagement;
    using UnityEngine.Networking;

    public class Web : MonoBehaviour
    {
    public Text errorMessages;

    void Start ()
    {


    }

    public IEnumerator GetUsers(string id)
    {
    WWWForm form = new WWWForm();
    form.AddField("loginUser", id);

    using (UnityWebRequest www = UnityWebRequest.Get("http://localhost/PHP/GetUsers.php"))
    {

    yield return www.Send();

    if(www.isNetworkError || www.isHttpError) {
    Debug.Log(www.error);
    }
    else {
    // Показывать результаты в виде текста
    Debug.Log(www.downloadHandler.text);

    // Или извлекать результаты в виде двоичных данных
    byte[] results = www.downloadHandler.data;
    }
    }
    }
    public IEnumerator Login(string id, string password)
    {
    WWWForm form = new WWWForm();
    form.AddField("loginUser", id);
    form.AddField("loginPass", password);

    using (UnityWebRequest www = UnityWebRequest.Post("http://localhost/PHP/Login.php", form))
    {
    yield return www.SendWebRequest();

    if(www.isNetworkError || www.isHttpError)
    {
    errorMessages.text = www.error;
    }

    else
    {
    if (www.downloadHandler.text == "Login Success")
    {

    SceneManager.LoadScene("Garage");
    }// Show results as text
    else{
    errorMessages.text = www.downloadHandler.text;
    }
    }
    }
    }
    }
    PHP
    <?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "1111";

    // variables submited by user
    $loginUser = $_POST["loginUser"];

    // Create connection
    $conn = newmysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
    die("Connection failed: ".$conn->connect_error);
    }
    echo"Connected succesfully, now we will show the users";

    $sql = "SELECTNamefrom User WHERE id = '";
    $result = $conn->query($sql);


    if ($result->num_rows > 0) {
    // выходные данные каждой строки
    while($row = $result->fetch_assoc()) {
    echo"Name: ".$row["Name"]."<br>";
    }
    } else {
    echo"0 results";
    }
    $conn->close();
    ?>
    При запуске явных ошибок нет, но результат всегда один
    Connected succesfully, now we will show the users0 results
    Ниже представлена таблица User в БД 1111
    upload_2023-9-26_23-38-35.png
     

    Вложения:

  2. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    945
    Симпатии:
    146
    форумом ошибся.
     
  3. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    Добрый день!
    У Вас здесь ошибка (потеряли закрывающую кавычку в id = ' ):
    PHP:
    1. $sql = "SELECTNamefrom User WHERE id = '";
    Попробуйте исправить так:
    Код (Text):
    1. $sql = "SELECT Name from User WHERE id = '' ";
    или, если Вы хотите выбрать записи, в которых задан id, то так:
    Код (Text):
    1. $sql = "SELECT Name from User WHERE id != '' ";
    Удачи!
     
    #3 Vladimir Kheifets, 3 окт 2023
    Последнее редактирование: 3 окт 2023