Ea7gign

Synchroniser Comptes avec PHP

Recommended Posts

Bonjour, je suis actuellement en train de développer un UCP avec comme gm de base FairPlay Gaming. Une fois un compte créer sur l'ucp, impossible d'y accéder depuis MTA, pourtant ils sont connecter à la même base de donnée. Comment cela ce fait-il ?

Share this post


Link to post

Quelle version du gm utilises-tu (si t'as un lien on sera sûr d'être en phase) ? 

et comment enregistres-tu le mot de passe via ton ucp ?

Edited by Citizen

Share this post


Link to post

J'utilise celui là https://github.com/Citizen01/lua-mta-fairplay 

J'enregistre le mot de passe de cette façon: 

<?php 
	
	
	if(isset($_GET['pages']))
	{
		if($_GET['pages'] == 'register')
		{
			include('pages/ucp/register.php');
		}
		else if($_GET['pages'] == 'register_add')
		{
			$password = hash('md5',$_POST['password']);
			$insert = $bdd->prepare('INSERT INTO accounts(username,password,email) VALUES(:username, :password, :email)');
			$insert->execute(array(
			'username' => $_POST['pseudo'],
			'password' => $password,
			'email' => $_POST['email']
			));
			echo '<div class="alert alert-success">
				  <strong>Félicitation!</strong> Ton compte est bien crées <a href="pages/ucp/">clique ici </a> pour te connecter.
				</div>';
		}
	}
	?>

 

Share this post


Link to post

Salut, passe en MP je t'aiderai sans problème, j'ai moi même développé mon UCP de 0 pour mon serveur MTA:SA

J'ajoute que ton "script php" n'est pas adapté au bon gm :) 

Edited by John MTASA
Edit ()

Share this post


Link to post

Le login du gm fait un hash en sha256 (et non un md5) du mdp qui est d'abord mit tout en majuscule (d'ailleurs j'aurais pas fait ça à la place de l'auteur)

Donc ton ucp doit plutôt faire:

$password = hash('sha256', strtoupper($_POST['password']));

Et je pense que ça devrait fonctionner.

@John MTASA

Je ne vois pas pourquoi ce n'est pas adapter au bon gm ??

Edited by Citizen

Share this post


Link to post

Merci, sa fonctionne maintenant, j'avais pas penser à vérifier la méthode de hash.

Share this post


Link to post
3 hours ago, Ea7gign said:

Merci, sa fonctionne maintenant, j'avais pas penser à vérifier la méthode de hash.

Tant mieux.

3 hours ago, Citizen said:

du mdp qui est d'abord mit tout en majuscule (d'ailleurs j'aurais pas fait ça à la place de l'auteur)

J'étais sur le tel et j'ai pas pris le temps de détailler pourquoi je n'aurais pas fait ça. C'est même un problème niveau sécurité car en forçant les mots de passe à être en majuscules avant d'en générer le hash le système de login devient insensible à la casse sur le mdp.

Si un utilisateur s'enregistre avec le mdp "SeCuRe" le hash enregistré sera:
ab968dba0c8f21c3d3c8ffe44b4a4576119edc7fd98d84aaf0f520c326bba394
(au lieu de b3583948940a2542db33217f789f2ed8dc2a5292d7cc5508d19873ad6dae5c30 car forcé en majuscule avant le hash)
Et au moment du login s'il tape "secure" dans le champ du mot de passe le script va vérifier la correspondance avec:
ab968dba0c8f21c3d3c8ffe44b4a4576119edc7fd98d84aaf0f520c326bba394
(au lieu de 6a934b45144e3758911efa29ed68fb2d420fa7bd568739cdcda9251fa9609b1e car forcé en majuscule)

A la limite il aurait fallu inverser et mettre en majuscule le résultat du hash:
https://github.com/Citizen01/lua-mta-fairplay/blob/master/resources/roleplay-accounts/s_accounts.lua#L278

string.upper(sha256(password))

et dans ton ucp:

$password = strtoupper(hash('sha256', $_POST['password']));

Avec ça si le mot de passe est "SeCuRe" et que l'on met "secure" le login ne passera pas car pas le même hash.

En espérant avoir été compréhensif.

Cordialement,
Citizen

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.