Сбой десериализации пользовательской аутентификации: при анализе значения обнаружен неожиданный символ - PullRequest
0 голосов
/ 03 февраля 2019

У меня проблемы с созданием пользовательской аутентификации!Я использую бесплатный хост от 000WebHost для тестирования мультиплеера Фотона на Unity, но я получаю следующую ошибку в отладке Unity:

OperationResponse 230: ReturnCode: 32755 (Десериализация пользовательской аутентификации не удалась:Обнаружен неожиданный символ при анализе значения: U. Путь '', строка 0, позиция 0.).

Параметры: {} Сервер: NameServer Адрес: ns.exitgames.com:5058

UnityEngine.Debug: LogError (Object)

Photon.Realtime.LoadBalancingClient: DebugReturn (DebugLevel, String) (в активах / Photon / PhotonRealtime/Code/LoadBalancingClient.cs:1835)

Photon.Realtime.LoadBalancingClient: OnOperationResponse (OperationResponse) (в активах / Photon / PhotonRealtime / Code / LoadBalancingClient.cs: 10 * 1909)

ExitGames.Client.Photon.PeerBase: DeserializeMessageAndCallback (StreamBuffer) (в C: /Dev/photon-sdk-dotnet/PhotonDotnet/PeerBase.cs: 616)

1027*
ExitGames.Client.Photon.EnetPeer: DispatchIncomingCommands () (в C: /Dev/photon-sdk-dotnet/PhotonDotnet/EnetPeer.cs: 545)

ExitGames.Client.Photon.PhotonPeer: DispatchIncomingC) (в C: /Dev/photon-sdk-dotnet/PhotonDotnet/PhotonPeer.cs: 1473)

Photon.Pun.PhotonHandler: FixedUpdate () (в ресурсах / Фотон / PhotonUnityNetworking/Code/PhotonHandler.cs:130)

Код аутентификации My Unity:

using Photon.Pun;
using Photon;

public class Login : MonoBehaviour {

public InputField User_Input;
public InputField Pass_Input;
public Text Error_Text;

public string username;
public string password;

public void UserName(){
    username = User_Input.text.ToString ();
}
public void UserPass(){
    password = Pass_Input.text.ToString ();
}
public void SubmitLogin(){
    PhotonNetwork.AuthValues = new AuthenticationValues ();
    PhotonNetwork.AuthValues.AuthType = CustomAuthenticationType.Custom;
    PhotonNetwork.AuthValues.AddAuthParameter ("username", username);
    PhotonNetwork.AuthValues.AddAuthParameter ("password", password);
    PhotonNetwork.ConnectUsingSettings();
}
void OnJoinedLooby(){
    Debug.Log ("We did it");
}
void OnGUI(){
    GUILayout.Label (PhotonNetwork.connectionStateDetailed.ToString ());
}
}

Мой код на стороне сервера:

<?php
include "db.php";

$username = $_GET['username'];
$password = $_GET['password'];

$check = mysqli_query($conn , "SELECT * FROM accounts WHERE `username`='".$username."'");
$numrows = mysqli_num_rows($check);
if ($numrows == 0){
    die ("Username does not exist.");
}else{
    $password = md5($password);
        while($row = mysqli_fetch_assoc($check)){
            if ($password == $row['password']){
                $login_info = array(
                    "ResultCode" => 1,
                    "Message" => "You are connected!");

                    }else{
                    $login_info = array(
                        "ResultCode" => 2,
                        "Message" => "Wrong username or password");
                    }
            }
        }
    $json = json_encode($login_info);
echo $json;
?>

В фотонную панель я поместил Url mydomain / auth.php и не добавил никаких дополнительных пар ключ / значение

Я не знаю, в чем проблема, если кто-то знает

1 Ответ

0 голосов
/ 04 февраля 2019

Я ответил на нашем форуме .Публикуя то же самое здесь:

Буква "U" является подсказкой, что она может быть из "Имя пользователя не существует".Замените

die ("Username does not exist.");

на

$login_info = array(
                        "ResultCode" => 3,
                        "Message" => "Username does not exist."
                   );

Если проблема не устранена, используйте почтальон и отправьте HTTP-запрос с правильными значениями строки запроса на ваш сервер и посмотрите, что этовозвращается.Исправьте это.

...