GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Vince284 le 09 Juin 2009, 13:36:48
-
Bien les bonjours chers communauté, je vous écris suite à quelques soucis.
Alors voila le problème, je souhait créer mon serveur SAMP en relation avec un site et un forum. Pour ce qui est du forum j’utilise un PHPBB3. Par conséquent les informations des joueur seront enregistrer dans une base de donné SQL. Je suis donc obligé d’utiliser le plugins samp_mysql.
Alors voila j’ai essayé de créer un script qui comparer le Nom du joueur qui se connecte au serveur et les Nom des joueur qui sont dans la base de donné. Le but étant de voir si le joueur c’est enregistrer préalablement sur le site.
La base de données est plus ou moins comme sa:
| user_id | Name | Password |
| 0 | Jean | 058749 |
| 1 | Bidule | 964874 |
| 2 | GuyGuy | 624789 |
public MySQLconnection()
{
//--------------------------------------------------------------------------
new Name[128];
new DB_Name[128];
new DB_Name2[128];
new query[128];
new user_id = 0;
new result[256];
Name = "Heritrix [Crawler]";
DB_Name = "";
DB_Name2 = "0";
samp_mysql_connect("127.0.0.1", "root", "");
samp_mysql_select_db("gta avalon forum");
if(strcmp(Name,DB_Name, false) == 0)
{
user_id++;
format (query, sizeof(query), "SELECT username FROM phpbb_users WHERE user_id = %d", user_id);
printf (query);
samp_mysql_query(query);
samp_mysql_store_result();
samp_mysql_fetch_row(DB_Name);
printf ("*");
printf (DB_Name);
printf ("*");
if (strcmp(Name,DB_Name, true) == 0)
{
format (result, sizeof(result), "L'utilisateur %d existe.", Name);
printf (result);
}
if (strcmp(DB_Name,DB_Name2, true) == 0)
{
format (result, sizeof(result), "L'utilisateur %d n'existe pas.", Name);
printf (result);
}
DB_Name2 = DB_Name;
}
//--------------------------------------------------------------------------
samp_mysql_close();
}
Alors la variable Name c'est le nom du joueur qui essaye de se connecter, La variable DB_Name c'est la variable qui a été récupérer dans la base de donné et la variable DB_Name2 c'est le nom qui a été récupère avant avant qu'on incrément user_id.
La dans mon code j'ai mis un nom o pif qui été dans ma base de donné. Bon mon code n'est pas correcte j'espère que vous allé pouvoir m'aidé, car le but est de lire tout les nom de la base de donné, si le nom existe on fera un test du password et sinon si le joueur n'existe pas on lui envoi un message pour lui dire de s'inscrire sur le site.
Au début j'avais essayé avec "while(strcmp(Name,DB_Name, false) == 0)"
-
ta requete est completement foireuse tu recherche pas un nom mais un id
la requete correcte serait plutot SELECT user_id FROM phpbb_user WHERE username='PSEUDO', si ta un resultat c'est que le compte existe sinon il existe pas
sinon bonne merde pour comparer le mot de passe vu que phpbb a un hash special il me semble :/
-
Je me suis débrouillé pour que ma base de donné soit un claire plutôt qu'avec leur hash MD5 modifier... :D En tout cas merci pour ta réponse.
Double post
En tout cas merci car ta requête, elle simplifie beaucoup mon code, cependant je ne sais pas comment savoir si la variable "user_id" est égale a rien du tout ou a un chiffre.
J'ai utiliser ceci mais sa ne fonctionne pas...
if (strcmp(user_id,"",false) == 0)
{
format (result, sizeof(result), "L'utilisateur %s existe.", Name);
printf (result);
}
Double post
Excuser moi mais je n'ai toujours pas réussi a faire ce que je voulais. Le souci c'est que maintenant je doit comparé une variable qui est une chaine de caractère, donc si elle est égale a rien du tout l'utilisateur n'existe pas, sinon si c'est égale a un chiffre quelconque l'utilisateur existe. Mais je ne sais pas comment je doit mis prendre pour faire ceci. Je vous remercie d'avance pour votre aide.