[RESOLU] Récupérer et stocker le SteamID d'un joueur dans une BDD
Re: Récuperer le SteamID d'un joueur et le sauvegarder dans la base de donnée
Là après (BDD, php, etc...), à titre personnel, cela sort de mon champ de compétences, sorry.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: Récuperer le SteamID d'un joueur et le sauvegarder dans la base de donnée
Tu connais uqelqu'un qui s'y connais + que moi ? (sa devrais être simple mdr)
Re: Récuperer le SteamID d'un joueur et le sauvegarder dans la base de donnée
là c'est le WE, donc peu de passage. Il faut être un petit peu patient
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: Récuperer le SteamID d'un joueur et le sauvegarder dans la base de donnée
Pas de problème max
Je suis passer aux requêtes paramétrées pour optimiser un maximum et proteger les requetes.
L'inscription fonctionne bien, mais le steamid n'est toujours pas enregistrer.
J'ai écris dans un fichier (car la fonction Echo ne s'affiche pas dans Unity) pour savoir si le steamID s'enregistre.. et bah non, le fichier texte est vide.
Donc le problème viens du côté C# j'en suis pratiquement sur.
Je suis passer aux requêtes paramétrées pour optimiser un maximum et proteger les requetes.
Code : Tout sélectionner
$ins = $link2->prepare("INSERT INTO MyGameDB (name, nick, password, uIP, email, verify, active, steamid) VALUES (?,?,?,?,?,?,?,?)");
$ins->bind_param("ssisssss", $name, $nick, $password, $mIP, $email, $random_hash, $emailVerification, $steamId);
$ins->execute();
J'ai écris dans un fichier (car la fonction Echo ne s'affiche pas dans Unity) pour savoir si le steamID s'enregistre.. et bah non, le fichier texte est vide.
Donc le problème viens du côté C# j'en suis pratiquement sur.
Re: Récuperer le SteamID d'un joueur et le sauvegarder dans la base de donnée
Hello,
pour valider en C# ton streamID en string, c'est simple, tu écris
tu va voir ce que cela te sort dans la console...
pour valider en C# ton streamID en string, c'est simple, tu écris
Code : Tout sélectionner
Debug.Log("streamID: "+steamId.ToString());
// ou directement
Debug.Log("streamID: "+steamId);
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: Récuperer le SteamID d'un joueur et le sauvegarder dans la base de donnée
D'accord, le steamid est bien afficher dans les logs avec une erreur:
Ligne 166:
streamID: 76561198430623995 UnityEngine.Debug:Log(Object) <RegisterProcess>c__Iterator1:MoveNext() (at Assets/Addons/ULoginSystemPro/Content/Scripts/Core/bl_LoginPro.cs:196) UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) bl_LoginPro:SinUp(String, String, String, String, CSteamID) (at Assets/Addons/ULoginSystemPro/Content/Scripts/Core/bl_LoginPro.cs:166) bl_SignUp:SignUp() (at Assets/Addons/ULoginSystemPro/Content/Scripts/Core/bl_SignUp.cs:68) UnityEngine.EventSystems.EventSystem:Update()Ligne 196:
Code : Tout sélectionner
Debug.Log("streamID: "+steamId.ToString());
Code : Tout sélectionner
StartCoroutine(RegisterProcess(user,nick, pass, email));
Re: Récuperer le SteamID d'un joueur et le sauvegarder dans la base de donnée
J'ai modifier mon code, je te l'envoie pour voir si tout est correct:
bl_LoginPro.cs
bl_SignUp.cs
Je tiens à te signaler le le debug me renvoie bien mon SteamID mais, il ne se sauvegarde toujours pas dans la base de donnée.
Donc la, je comprend pas trop xD
bl_LoginPro.cs
Code : Tout sélectionner
private string steamId;
public void SinUp(string user, string nick, string pass,string email, string steamId)
{
steamId = Steamworks.SteamUser.GetSteamID().ToString ();
if (isRequesting)
return;
if (bl_LoginProDataBase.Instance == null)
return;
StartCoroutine(RegisterProcess(user,nick, pass, email, steamId));
}
IEnumerator RegisterProcess(string user, string nick, string pass,string email, string steamId)
{
steamId = Steamworks.SteamUser.GetSteamID().ToString ();
isRequesting = true;
SetLogText("");
//Used for security check for authorization to modify database
string hash = Md5Sum(user + pass + bl_LoginProDataBase.Instance.SecretKey).ToLower();
LoadingUI.SetActive(true);
//Assigns the data we want to save
//Where -> Form.AddField("name" = matching name of value in SQL database
WWWForm mForm = new WWWForm();
mForm.AddField("steamid", steamId.ToString());
Debug.Log("steamID: "+steamId.ToString());
Code : Tout sélectionner
private string steamId;
public void SignUp()
{
string user = SteamFriends.GetPersonaName();
string nick = SteamFriends.GetPersonaName();
string pass = PasswordInput.text;
string repass = RePasswordInput.text;
string email = EmailInput.text;
steamId = Steamworks.SteamUser.GetSteamID().ToString ();
if (!AllFill(user,nick, pass, repass, email))
return;
if(pass.Length < bl_LoginProDataBase.Instance.MinPasswordLenght)
{
Login.SetLogText(string.Format("your password must be at least <b>{0}</b> characters", bl_LoginProDataBase.Instance.MinPasswordLenght));
return;
}
if(repass != pass)
{
Login.SetLogText("Passwords doesn't match.");
return;
}
Login.SinUp(user,nick, pass, email, steamId);
}
Je tiens à te signaler le le debug me renvoie bien mon SteamID mais, il ne se sauvegarde toujours pas dans la base de donnée.
Donc la, je comprend pas trop xD
Re: Récuperer le SteamID d'un joueur et le sauvegarder dans la base de donnée
je ne comprend pas trop non plus ta façon de faire.
Tu envoies vers ta fonction "RegisterProcess" les différents éléments requis, avec ton StartCoroutine(RegisterProcess(user,nick, pass, email, steamId));.
Ne devrais tu pas plutôt écrire StartCoroutine(RegisterProcess(user,nick, pass, email, steamId.ToString()));
(se qui lèverait certainement une des erreurs citée au dessus).
et en suite, dans ta fonction "RegisterProcess", pourquoi tu repars sur steamId = Steamworks.SteamUser.GetSteamID().ToString (); ?
Tu envoies vers ta fonction "RegisterProcess" les différents éléments requis, avec ton StartCoroutine(RegisterProcess(user,nick, pass, email, steamId));.
Ne devrais tu pas plutôt écrire StartCoroutine(RegisterProcess(user,nick, pass, email, steamId.ToString()));
(se qui lèverait certainement une des erreurs citée au dessus).
et en suite, dans ta fonction "RegisterProcess", pourquoi tu repars sur steamId = Steamworks.SteamUser.GetSteamID().ToString (); ?
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: Récuperer le SteamID d'un joueur et le sauvegarder dans la base de donnée
Je suis débutant c'est pour sa, je m'aide par rapport aux autres fonctions c'est pour sa ^^Max a écrit : ↑11 Mars 2018 18:33je ne comprend pas trop non plus ta façon de faire.
Tu envoies vers ta fonction "RegisterProcess" les différents éléments requis, avec ton StartCoroutine(RegisterProcess(user,nick, pass, email, steamId));.
Ne devrais tu pas plutôt écrire StartCoroutine(RegisterProcess(user,nick, pass, email, steamId.ToString()));
(se qui lèverait certainement une des erreurs citée au dessus).
et en suite, dans ta fonction "RegisterProcess", pourquoi tu repars sur steamId = Steamworks.SteamUser.GetSteamID().ToString (); ?
J'ai fait les modifications que tu m'a dites, c'est vrai que c'est logique et que je n'y avais pas penser..
Concernant la fonction, je repart car Steamworks.SteamUser.GetSteamID() n'est pas un string au départ, du coup je suis obliger de le redéclarer (si j'ai bien tout suivie, sinon dit moi si je me trompe)
Je v iens de tester, et le steamID n'est toujours pas dans la base de donnée..
Re: Récuperer le SteamID d'un joueur et le sauvegarder dans la base de donnée
pour moi ta ligne steamId = Steamworks.SteamUser.GetSteamID().ToString (); dans RegisterProcess n'a pas lieu d'être.
EDIT: En regardant vite fait, idem, tu écris mForm.AddField("steamid", steamId.ToString());, alors qu'en théorie, dans ta fonction streamID est déjà un string. Pareil, tu as variable globale "private string steamId;", bref tu as des steamId un peu partout, et je crois que tu te mélange pas mal les pinceaux.
Rapidement, le bout de code que tu fournis pourrait être déjà corrigé comme ça:
Tu débutes, je comprends, mais là tu attaques déjà très trucs bien avancés. Ça va pas être simple.
EDIT: En regardant vite fait, idem, tu écris mForm.AddField("steamid", steamId.ToString());, alors qu'en théorie, dans ta fonction streamID est déjà un string. Pareil, tu as variable globale "private string steamId;", bref tu as des steamId un peu partout, et je crois que tu te mélange pas mal les pinceaux.
Rapidement, le bout de code que tu fournis pourrait être déjà corrigé comme ça:
Code : Tout sélectionner
public void SinUp(string user, string nick, string pass, string email, string steamId)
{
if (isRequesting)
return;
if (bl_LoginProDataBase.Instance == null)
return;
StartCoroutine(RegisterProcess(user, nick, pass, email, steamId));
}
IEnumerator RegisterProcess(string user, string nick, string pass, string email, string steamId)
{
isRequesting = true;
SetLogText("");
//Used for security check for authorization to modify database
string hash = Md5Sum(user + pass + bl_LoginProDataBase.Instance.SecretKey).ToLower();
LoadingUI.SetActive(true);
//Assigns the data we want to save
//Where -> Form.AddField("name" = matching name of value in SQL database
WWWForm mForm = new WWWForm();
mForm.AddField("steamid", steamId);
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ