• 04 Juin 2026, 15:07:08


Auteur Sujet: [RESOLU] connection avec mot de passe  (Lu 2686 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Franky™

  • Franky™ est bien la
  • *
  • Gangster
  • Messages: 1058
    • Voir le profil
[RESOLU] connection avec mot de passe
« le: 26 Avril 2009, 12:00:07 »
Salut à mes futurs sauveur ^^

bref.

J'ai un problème au niveau de mon système de connection.
J'ai le système de Seif.

bref.

Enfaite quand un joueur s'enregistre sa va parfaitement bien, il gagne de l'argent, et quand il quitte sa "sauvegarde".

Mais ça depant de son mot de passe.
car en fesant des test sur mon local, j'ai pu m'appercevoirs que la connection en mot de passe bug.
J'ai tester avec un mdp a 4 lettre, et tout fonctionne parfaitement...
Mais avec un mdp a 18 lettres, rien de fonctionne... ^^

je sais pas ou règler ça.

je vous met quelque fonction avec les mot de passe:

aPassword[128],
strmid(InfoJoueur[playerid][aPassword], password, 0, strlen(password), 255);
new var[128];
format(var, 128, "Password=%s\n", InfoJoueur[playerid][aPassword]);fwrite(hFile, var);

new PassData[256];
    new keytmp[256], valtmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Password" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(InfoJoueur[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(InfoJoueur[playerid][aPassword],password, true ) == 0 )
{
for(new p = 0; p < strlen(InfoJoueur[playerid][aPassword]); p++)
{
    password[p] = '?';
}

Je sais pas si c'est ici qu'il faut règler la longeur du mdp.
si c'est ici, j'ai pas trouvé.

Si vous pourriez m'aider sa serai cool ^^
Merci d'avance.

++ Franky
« Modifié: 28 Avril 2009, 01:28:20 par Franky™ »


°°((Franky's WebSite
Désolé pour mes fautes d'orthographes

Hors ligne Azz45

  • Good Player
  • *
  • Mafioso
  • RolePlay Player
  • Messages: 2809
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #1 le: 26 Avril 2009, 12:47:28 »
Il me semble que c'est cette ligne là :

if( strcmp( keytmp , "Password" , true ) == 0 )

Je suis pas sur du tout ! , mais je crois que la longeur c'est après un if

~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~


~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~~•~  ~•~  ~•~  ~•~
Avancement du GM : 3%
~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~  ~•~
~•Merci Kloken, pour la vidéo lors de mon anniversaire•~

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #2 le: 26 Avril 2009, 13:46:02 »
ca n' as rien du tout avoir avec le  if



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Franky™

  • Franky™ est bien la
  • *
  • Gangster
  • Messages: 1058
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #3 le: 26 Avril 2009, 13:52:02 »
Si c'est cette ligne, comment je la défini la longueur ?

++ Franky


°°((Franky's WebSite
Désolé pour mes fautes d'orthographes

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #4 le: 26 Avril 2009, 13:54:15 »
essaye d augmenter la taille des tes variable de 128 a 256 et celle de 256 a 512



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Franky™

  • Franky™ est bien la
  • *
  • Gangster
  • Messages: 1058
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #5 le: 26 Avril 2009, 14:03:59 »
Non ça ne fonctionne toujours pas.


++ Franky


°°((Franky's WebSite
Désolé pour mes fautes d'orthographes

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #6 le: 26 Avril 2009, 14:29:37 »
peut etre que le bug ne vient pas de la commande



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #7 le: 26 Avril 2009, 17:00:04 »
Salut,

personnellement, je n'.aime pas trop cette façon de procéder.. ça me semble un peu pèle mêle et compliqué pour rien.

déjà, si en partant tu ne vérifie qu'à la première ligne si la « key » est « password », il ne te sert à rien de la vérifier....

mes questions:

new PassData[256];
    new keytmp[256], valtmp[256];//beaucoup de variables....
    fread( UserFile , PassData , sizeof( PassData ) );//ici tu récupère de ton fichier, ca va
    keytmp = ini_GetKey( PassData );//ici tu récupère la key, ca va, parcontre ces deux ligne (fread et ini_getkey devraient être dans une loop jusqu'à trouver la bonne ligne
    if( strcmp( keytmp , "Password" , true ) == 0 )//vérification si c'est le bon key, ca va
{
valtmp = ini_GetValue( PassData );//récupération du string
strmid(InfoJoueur[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);//pourquoi strmid? un format aurait fait un bon boulot (tu récupère le string entier.....)
}
if(strcmp(InfoJoueur[playerid][aPassword],password, true ) == 0 )//pourquoi ne pas avoir testé directement le valtmp?
{
for(new p = 0; p < strlen(InfoJoueur[playerid][aPassword]); p++)
{
    password[p] = '?';//pourquoi placer des ? PARTOUT
}

bref, je te recommande un code du genre:

new PassData[256];
do
{
fread( UserFile , PassData , sizeof( PassData ) );//ici tu récupère de ton fichier, ca va
}
while(strcmp( keytmp , "Password" , true,  8));//vérification si c'est le bon key, ca va
PassData = ini_GetValue( PassData );//pourquoi utiliser une autre variable alors que l'on a plus besoin de cette "vieille" variable?
if(strcmp(PassData,password, true ) == 0 )//pourquoi ne pas avoir testé directement le valtmp?
{
format(InfoJoueur[playerid][aPassword], 128 /*je crois*/, "%s",valtmp);
.....
}
else//s'il ne s'agit pas du bon mot de passe
{
.....
}

voilà

en espérant que tu arrive à quelque chose avec ce code...
PS. Il est fort probable que je me soit complètement gouré, le code que tu as posté est plutôt incomplet...

++Sim++





Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : [BUG] connection avec mot de passe
« Réponse #8 le: 26 Avril 2009, 17:39:01 »
Ton true mais le a 20 :

       if( strcmp( keytmp , "Password" , true ) == 20 )//Fait le aux autres aussi

Et si sa marche pas j'ai découvert y a pas longtemp :

         strmid(InfoJoueur[playerid][aPassword], valtmp, 0, strlen(valtmp)-1, 255);


Que ceci peut modifier la grandeur de la variable eisseille en supprimant le -1 ou en mettant 20 a la place


car enfaite moi j'avai enregistré un pseudo et quand je l'affichait j'avais le nom de la variable sa me fesait :

pseudo=Coco76

et le 0 que je t'est mis correspond au charatere de devant donc il y a  7 charactere donc je remplace 0 par 7 mais c'est un exemple sa n'a rien avoir avec ton problème sa toi c'est le -1 qui t'intéresse .

Hors ligne Franky™

  • Franky™ est bien la
  • *
  • Gangster
  • Messages: 1058
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #9 le: 26 Avril 2009, 18:33:25 »
Sim, je préfère de rien touché a se qu'il y a déjà.
Tout les systeme est comme ça.

Coco je vais tester ça, je te tien au courant

++ Franky


°°((Franky's WebSite
Désolé pour mes fautes d'orthographes

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #10 le: 26 Avril 2009, 21:58:46 »
Pourquoi utiliser la fonction strmid alors que tu veux simplement copier le mot de passe lu dans la variable InfoJoueur[playerid][aPassword].
Une simple égalité aurai suffit.

D'ailleurs ton erreur vient certainement de là, la fonction strmid copie les caractères que tu lui demandes de copier mais ne rajoute pas de caractère de fin de chaîne dans la variable de destination.

Prenons un exemple :
valtmp = "PASS\0" (il y a 5 caractères dans cette chaîne, P, A, S, S et le zéro de fin de chaîne=\0).
InfoJoueur[playerid][aPassword]="OLDPASS\0" (mot de passe du joueur connecté précédemment avec le même ID)

strmid va copier du caractère 0 au caractère 3 (c'est à dire le deuxième S) dans InfoJoueur[playerid][aPassword].
Donc InfoJoueur[playerid][aPassword] ="PASSASS\0"
Ce qui n'est pas vraiment ce qu'on a lu dans le fichier.

La solution de coco76 est peut-être la bonne mais il faudra vérifier que la fonction strmid copie bien le 0 de fin de chaîne.

Une autre solution, plus jolie et qui rejoint ce que Sim a dit, c'est de faire :
InfoJoueur[playerid][aPassword] = ini_GetValue( PassData );au lieu de
valtmp = ini_GetValue( PassData );
++
Syg
Courtesy of GtaManiac

Hors ligne Franky™

  • Franky™ est bien la
  • *
  • Gangster
  • Messages: 1058
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #11 le: 26 Avril 2009, 22:15:25 »
Rien ne fonctionne, sa me fait toujours, mauvais mot de passe et la tune ne se charge pas.

Enfaite j'avais pris se FS que j'ai intergrer a mon GM.

http://forum.sa-mp.com/index.php?topic=71000.0
Fait par Seif.

J'ai tout laisser par defaut et c'est que hier que j'ai decouvert se bug.

++ Franky



°°((Franky's WebSite
Désolé pour mes fautes d'orthographes

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #12 le: 27 Avril 2009, 14:12:25 »
j'ai deja tester ce fs mais pas moyen qu'il fonctionne normalement
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Franky™

  • Franky™ est bien la
  • *
  • Gangster
  • Messages: 1058
    • Voir le profil
Re : [BUG] connection avec mot de passe
« Réponse #13 le: 28 Avril 2009, 01:27:38 »
Salut,

J'ai résolu mon problème lol, tout seul comme un grand hihi

Enfaite c'etais une autre fonctionne qui fesait buguer la connection.

Mais merci de votre aide quand même.

++ Franky


°°((Franky's WebSite
Désolé pour mes fautes d'orthographes

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [RESOLU] connection avec mot de passe
« Réponse #14 le: 28 Avril 2009, 01:38:20 »
Salut,

par simple curiosité, s'agissait-il d'une fonction de ce fs?

il serait pratique d'en savoir plus...

++Sim++