PDA

View Full Version : Bug avec Mysql


yoyo3071a
23/12/2009, 09:03 AM
Salut

Tout mon script est en Mysql, les base de donnée sont correct mais ya un probleme.
Je lance le serveur sa marche niquel connection établie et tout.

Je me connecte, tout s'affiche je m'enregistre sur le serveur avec la boite de dialog. Le truc pour m'ident s'affiche et la je met le pass et crash du serveur ...

Quand je vais voir dans la base de donnée tout mes info sont crée mais impossible de me login et a partir de la dès que je relance et que je me connecte crash non-stop

Aidez svp ...

cristab
23/12/2009, 09:32 AM
dans la table tu peu voir t'on compte

en meme temps je te deconseille le msql sa lag pas mal avec samp

yoyo3071a
23/12/2009, 01:58 PM
ouais mais alors j'aimerais trouver un moyen pour créer un panel pour modifier les fichier vu que le serveur et le site sont sur le meme dédiée je pense que c'est possible

DaRkDeViiL
23/12/2009, 05:41 PM
en meme temps je te deconseille le msql sa lag pas mal avec samp


Le sql ne donne aucun lag, au contraire le serveur est plus stable.
Les bases de données charge plus vite, c'est beaucoup plus stable de charger 1000 lignes de SQL que de charger 1000 lignes dans un fichier ini.

Ton serveur plante car ton mot de pass comporte trop de caractère ou comporte des caractères spéciaux.
J'utilise le SQL et je n'ai aucun problème actuellement mais c'est vrai que PAWN et SQL ce n'est pas vraiment le plus facile si tu débute dans le script sur Sa-MP.
Le meilleur serait de commencer par des sauvegardes dans des fichiers ini.
Si tu veux utiliser le SQL et n'avoir aucun problème avec tes mot de pass, remplace le cryptage par défaut et utilise un cryptage MD5! ;)
(Sans oublier de faire grandir le nombre de caractère possible dans ta base de donnée SQL pour le champs de ton mot de pass)

cristab
23/12/2009, 05:56 PM
le plugin sql de samp a une big fuite memoire

DaRkDeViiL
25/12/2009, 05:08 AM
De quel plugin tu parle?
Il y en a deux et l'un d'entre eux a corriger ce problème il me semble...

cristab
25/12/2009, 01:24 PM
que nenis le premier oui la fuite le second une autre fuite a vu le jour

Mr_C30
25/12/2009, 04:06 PM
il suffit de les bouchés :lol:

yoyo3071a
26/12/2009, 11:59 AM
Merci a Dark sa venez du cryptage et je ne suis pas débutant en pawn merci sa marche niquel

yoyo3071a
27/12/2009, 02:09 PM
Nn ya un bug j'ai utilisé le INC MD5 j'utilise MD5_Hash(tmppass) pour le /enregistrer niquel le mot de pass en MD5 marche mais pour le login (plus de crash) mais sa me log pas sa reste sur le entrer votre login comme si la boite de dialogue ne fesait que du vide et pourtant j'ai mis le MD5_Hash(tmppass)

yoyo3071a
28/12/2009, 12:24 PM
bon j'ai enlever le md5 pour le moment aucun cryptage mot de passe mais j'arrive toujours pas avec le sql crash au moment du login et j'ai essayer avec l'autre plugins MSQL mais avec l'autre il arrive pas a ce connecter a la base de donnée

DaRkDeViiL
29/12/2009, 09:50 AM
Le cryptage n'est pas obligatoire, il n'ait utilisé que si tu pense être mal protéger contre les intrusion sur ton hébergeur.
Si tu n'utilise aucun cryptage, assure toi que tes joueurs n'entre AUCUN caractères spéciaux dans leurs MDP et tout ira bien! :)

Et oui, tu as raison Crystab, il y a encore des fuites mémoire mais rien de bien méchant.

yoyo3071a
29/12/2009, 09:57 PM
meme sans cryptage sa plante alors que c'est un LARP d'origine

cristab
29/12/2009, 10:09 PM
on peu peu etre voir ta fonction sa nous aiderais plus je pense

yoyo3071a
30/12/2009, 08:48 AM
c'est a dire c'est le LARP 100% d'origine ( La version français qui est a télécharger sur gta online ) les mot de passe sont pas crypte j'ai tout mis en mysql sans probleme mais crash

cristab
30/12/2009, 09:47 AM
lawl la partit commenter en sql est mauvaise refait la

yoyo3071a
30/12/2009, 10:15 AM
ok mais il me faut un exemple

Ou alors ta pas un gm tout pourri avec le sql

cristab
30/12/2009, 11:57 AM
nan comme j'ai dit le sql + Pawn = caca ce n'est prevut pour


par contre regarde coter du FS de r@f le Radmin

bgdu38
30/12/2009, 12:13 PM
Essaie avec SQLite.

yoyo3071a
13/01/2010, 05:15 PM
salut donc j'ai tout refais en mysql le /register marche niquel, le systeme qui verifie si le compte existe mais encore bug dans le login voila ce que j'ai fais

new tmp2[256];
new string2[256];
new playername2[MAX_PLAYER_NAME];
new query[256],str[256],line[1024];
new playernamesplit[3][MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
split(playername2, playernamesplit, '_');

format(query, sizeof(query), "SELECT * FROM `players` WHERE `Name` = \'%s\'", playername2);
samp_mysql_query(query);
samp_mysql_store_result();
samp_mysql_fetch_row(line);

samp_mysql_get_field("Password", str); strmid(PlayerInfo[playerid][pKey], str, 0, strlen(str)-1, 255);

if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
{
samp_mysql_get_field("Level", str); PlayerInfo[playerid][pLevel] = strval(str);
samp_mysql_get_field("AdminLevel", str); PlayerInfo[playerid][pAdmin] = strval(str);
samp_mysql_get_field("DonateRank", str); PlayerInfo[playerid][pDonateRank] = strval(str);
samp_mysql_get_field("UpgradePoints", str); PlayerInfo[playerid][gPupgrade] = strval(str);
samp_mysql_get_field("ConnectedTime", str); PlayerInfo[playerid][pConnectTime] = strval(str);
samp_mysql_get_field("Registered", str); PlayerInfo[playerid][pReg] = strval(str);
samp_mysql_get_field("Sex", str); PlayerInfo[playerid][pSex] = strval(str);
samp_mysql_get_field("Age", str); PlayerInfo[playerid][pAge] = strval(str);
samp_mysql_get_field("Origin", str); PlayerInfo[playerid][pOrigin] = strval(str);
samp_mysql_get_field("CK", str); PlayerInfo[playerid][pCK] = strval(str);
samp_mysql_get_field("Muted", str); PlayerInfo[playerid][pMuted] = strval(str);
samp_mysql_get_field("Respect", str); PlayerInfo[playerid][pExp] = strval(str);
samp_mysql_get_field("Money", str); PlayerInfo[playerid][pCash] = strval(str);
samp_mysql_get_field("Bank", str); PlayerInfo[playerid][pAccount] = strval(str);
samp_mysql_get_field("Crimes", str); PlayerInfo[playerid][pCrimes] = strval(str);
samp_mysql_get_field("Kills", str); PlayerInfo[playerid][pKills] = strval(str);
samp_mysql_get_field("Deaths", str); PlayerInfo[playerid][pDeaths] = strval(str);
samp_mysql_get_field("Arrested", str); PlayerInfo[playerid][pArrested] = strval(str);
samp_mysql_get_field("WantedDeaths", str); PlayerInfo[playerid][pWantedDeaths] = strval(str);
samp_mysql_get_field("Phonebook", str); PlayerInfo[playerid][pPhoneBook] = strval(str);
samp_mysql_get_field("LottoNr", str); PlayerInfo[playerid][pLottoNr] = strval(str);
samp_mysql_get_field("Fishes", str); PlayerInfo[playerid][pFishes] = strval(str);
samp_mysql_get_field("BiggestFish", str); PlayerInfo[playerid][pBiggestFish] = strval(str);
samp_mysql_get_field("Job", str); PlayerInfo[playerid][pJob] = strval(str);
samp_mysql_get_field("Paycheck", str); PlayerInfo[playerid][pPayCheck] = strval(str);
samp_mysql_get_field("HeadValue", str); PlayerInfo[playerid][pHeadValue] = strval(str);
samp_mysql_get_field("Jailed", str); PlayerInfo[playerid][pJailed] = strval(str);
samp_mysql_get_field("JailTime", str); PlayerInfo[playerid][pJailTime] = strval(str);
samp_mysql_get_field("Materials", str); PlayerInfo[playerid][pMats] = strval(str);
samp_mysql_get_field("Drugs", str); PlayerInfo[playerid][pDrugs] = strval(str);
samp_mysql_get_field("Leader", str); PlayerInfo[playerid][pLeader] = strval(str);
samp_mysql_get_field("Member", str); PlayerInfo[playerid][pMember] = strval(str);
samp_mysql_get_field("FMember", str); PlayerInfo[playerid][pFMember] = strval(str);
samp_mysql_get_field("Rank", str); PlayerInfo[playerid][pRank] = strval(str);
samp_mysql_get_field("Char", str); PlayerInfo[playerid][pChar] = strval(str);
samp_mysql_get_field("ContractTime", str); PlayerInfo[playerid][pContractTime] = strval(str);
samp_mysql_get_field("DetSkill", str); PlayerInfo[playerid][pDetSkill] = strval(str);
samp_mysql_get_field("SexSkill", str); PlayerInfo[playerid][pSexSkill] = strval(str);
samp_mysql_get_field("BoxSkill", str); PlayerInfo[playerid][pBoxSkill] = strval(str);
samp_mysql_get_field("LawSkill", str); PlayerInfo[playerid][pLawSkill] = strval(str);
samp_mysql_get_field("MechSkill", str); PlayerInfo[playerid][pMechSkill] = strval(str);
samp_mysql_get_field("JackSkill", str); PlayerInfo[playerid][pJackSkill] = strval(str);
samp_mysql_get_field("CarSkill", str); PlayerInfo[playerid][pCarSkill] = strval(str);
samp_mysql_get_field("NewsSkill", str); PlayerInfo[playerid][pNewsSkill] = strval(str);
samp_mysql_get_field("DrugsSkill", str); PlayerInfo[playerid][pDrugsSkill] = strval(str);
samp_mysql_get_field("CookSkill", str); PlayerInfo[playerid][pCookSkill] = strval(str);
samp_mysql_get_field("FishSkill", str); PlayerInfo[playerid][pFishSkill] = strval(str);
samp_mysql_get_field("pSHealth", str); PlayerInfo[playerid][pSHealth] = strval(str);
samp_mysql_get_field("pHealth", str); PlayerInfo[playerid][pHealth] = strval(str);
samp_mysql_get_field("Int", str); PlayerInfo[playerid][pInt] = strval(str);
samp_mysql_get_field("Local", str); PlayerInfo[playerid][pLocal] = strval(str);
samp_mysql_get_field("Team", str); PlayerInfo[playerid][pTeam] = strval(str);
samp_mysql_get_field("Model", str); PlayerInfo[playerid][pModel] = strval(str);
samp_mysql_get_field("PhoneNr", str); PlayerInfo[playerid][pPnumber] = strval(str);
samp_mysql_get_field("House", str); PlayerInfo[playerid][pPhousekey] = strval(str);
samp_mysql_get_field("Car", str); PlayerInfo[playerid][pPcarkey] = strval(str);
samp_mysql_get_field("Bizz", str); PlayerInfo[playerid][pPbiskey] = strval(str);
samp_mysql_get_field("Pos_x", str); PlayerInfo[playerid][pPos_x] = strval(str);
samp_mysql_get_field("Pos_y", str); PlayerInfo[playerid][pPos_y] = strval(str);
samp_mysql_get_field("Pos_z", str); PlayerInfo[playerid][pPos_z] = strval(str);
samp_mysql_get_field("CarLic", str); PlayerInfo[playerid][pCarLic] = strval(str);
samp_mysql_get_field("FlyLic", str); PlayerInfo[playerid][pFlyLic] = strval(str);
samp_mysql_get_field("BoatLic", str); PlayerInfo[playerid][pBoatLic] = strval(str);
samp_mysql_get_field("GunLic", str); PlayerInfo[playerid][pGunLic] = strval(str);
samp_mysql_get_field("Gun1", str); PlayerInfo[playerid][pGun1] = strval(str);
samp_mysql_get_field("Gun2", str); PlayerInfo[playerid][pGun2] = strval(str);
samp_mysql_get_field("Gun3", str); PlayerInfo[playerid][pGun3] = strval(str);
samp_mysql_get_field("Gun4", str); PlayerInfo[playerid][pGun4] = strval(str);
samp_mysql_get_field("Ammo1", str); PlayerInfo[playerid][pAmmo1] = strval(str);
samp_mysql_get_field("Ammo2", str); PlayerInfo[playerid][pAmmo2] = strval(str);
samp_mysql_get_field("Ammo3", str); PlayerInfo[playerid][pAmmo3] = strval(str);
samp_mysql_get_field("Ammo4", str); PlayerInfo[playerid][pAmmo4] = strval(str);
samp_mysql_get_field("CarTime", str); PlayerInfo[playerid][pCarTime] = strval(str);
samp_mysql_get_field("PayDay", str); PlayerInfo[playerid][pPayDay] = strval(str);
samp_mysql_get_field("PayDayHad", str); PlayerInfo[playerid][pPayDayHad] = strval(str);
samp_mysql_get_field("Watch", str); PlayerInfo[playerid][pWatch] = strval(str);
samp_mysql_get_field("Crashed", str); PlayerInfo[playerid][pCrashed] = strval(str);
samp_mysql_get_field("Wins", str); PlayerInfo[playerid][pWins] = strval(str);
samp_mysql_get_field("Loses", str); PlayerInfo[playerid][pLoses] = strval(str);
samp_mysql_get_field("AlcoholPerk", str); PlayerInfo[playerid][pAlcoholPerk] = strval(str);
samp_mysql_get_field("DrugPerk", str); PlayerInfo[playerid][pDrugPerk] = strval(str);
samp_mysql_get_field("MiserPerk", str); PlayerInfo[playerid][pMiserPerk] = strval(str);
samp_mysql_get_field("PainPerk", str); PlayerInfo[playerid][pPainPerk] = strval(str);
samp_mysql_get_field("TraderPerk", str); PlayerInfo[playerid][pTraderPerk] = strval(str);
samp_mysql_get_field("Tutorial", str); PlayerInfo[playerid][pTut] = strval(str);
samp_mysql_get_field("Mission", str); PlayerInfo[playerid][pMissionNr] = strval(str);
samp_mysql_get_field("Warnings", str); PlayerInfo[playerid][pWarns] = strval(str);
samp_mysql_get_field("VirWorld", str); PlayerInfo[playerid][pVirWorld] = strval(str);
samp_mysql_get_field("Fuel", str); PlayerInfo[playerid][pFuel] = strval(str);
samp_mysql_get_field("Married", str); PlayerInfo[playerid][pMarried] = strval(str);
samp_mysql_get_field("MarriedTo", str); strmid(PlayerInfo[playerid][pMarriedTo], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("FishTool", str); PlayerInfo[playerid][pFishTool] = strval(str);
samp_mysql_get_field("Note1", str); strmid(PlayerInfo[playerid][pNote1], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("Note1s", str); PlayerInfo[playerid][pNote1s] = strval(str);
samp_mysql_get_field("Note2", str); strmid(PlayerInfo[playerid][pNote2], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("Note2s", str); PlayerInfo[playerid][pNote2s] = strval(str);
samp_mysql_get_field("Note3", str); strmid(PlayerInfo[playerid][pNote3], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("Note3s", str); PlayerInfo[playerid][pNote3s] = strval(str);
samp_mysql_get_field("Note4", str); strmid(PlayerInfo[playerid][pNote4], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("Note4s", str); PlayerInfo[playerid][pNote4s] = strval(str);
samp_mysql_get_field("Note5", str); strmid(PlayerInfo[playerid][pNote5], str, 0, strlen(str)-1, 255);
samp_mysql_get_field("Note5s", str); PlayerInfo[playerid][pNote5s] = strval(str);
samp_mysql_get_field("InvWeapon", str); PlayerInfo[playerid][pInvWeapon] = strval(str);
samp_mysql_get_field("InvAmmo", str); PlayerInfo[playerid][pInvAmmo] = strval(str);
samp_mysql_get_field("Lighter", str); PlayerInfo[playerid][pLighter] = strval(str);
samp_mysql_get_field("Cigarettes", str); PlayerInfo[playerid][pCigarettes] = strval(str);
samp_mysql_get_field("Locked", str); PlayerInfo[playerid][pLocked] = strval(str);
samp_mysql_get_field("Radio", str); PlayerInfo[playerid][pRadio] = strval(str);
samp_mysql_get_field("CarLicPoint", str); PlayerInfo[playerid][pCarLicPoint] = strval(str);
samp_mysql_get_field("Taille", str); PlayerInfo[playerid][pTaille] = strval(str);
samp_mysql_get_field("Poids", str); PlayerInfo[playerid][pPoids] = strval(str);
samp_mysql_get_field("TeamKill", str); PlayerInfo[playerid][pTeamKill] = strval(str);
samp_mysql_get_field("Frequence", str); PlayerInfo[playerid][pFrequence] = strval(str);
samp_mysql_get_field("Bourse", str); PlayerInfo[playerid][pBourse] = strval(str);
samp_mysql_get_field("Mask", str); PlayerInfo[playerid][pMask] = strval(str);
}
else
{
new loginstring[256];
new loginname[256];
GetPlayerName(playerid,loginname,sizeof(loginname) );
format(loginstring,sizeof(loginstring),"Erreur de mot de passe",loginname);
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT ,"Compte",loginstring,"Connection","Quitter");
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 4) { Ban(playerid); }
return 1;
}

yoyo3071a
16/01/2010, 09:08 AM
up un deux

minimicro
17/01/2010, 09:40 AM
nan comme j'ai dit le sql + Pawn = caca ce n'est prevut pour

J'ai aussi passé mon GM en MySQL, mais alors, vraiment tout, je n'ai plus qu'un seul fichier dans les scriptfiles : le log Sql quand j'ai un soucis.

Ben, c'est vraiment super stable, il faut juste faire attention au OnPlayerUpdate, qui souvent enregistre les infos du joueurs plusieurs fois à la seconde et qui peut poser un soucis de nombre de requete (étant donné que j'ai separé la sauvegarde d'un joueur en 4 requetes). J'avais aussi fait une connerie dans un timer, qui lancais une requete par seconde et par maison, 200 requetes/secondes, et oui, en regardant mes graphes mémoire, j'ai eu une petite surprise ^^ Mais aprés quelques modifications (tant dans le script que sur le serveur sql), je ne depasse plus les 130 Mo de mémoire utilisée !! (Apache compris)

Par contre, le quel plugin est de meilleure qualité ? J'en ai testé un (le samp mysql 0.15)

falor
04/02/2010, 07:57 PM
SQL & SAMP EN RC3 ça plante graave!
Crash au /login

mister-fred
04/02/2010, 08:01 PM
Quand on sait l'utiliser non sa plante pas ;)

falor
05/02/2010, 12:08 PM
En 0.2 oui ça marchait impec, mais en 0.3 crash au /login :(

yoyo3071a
08/02/2010, 08:19 AM
Bein d'acord mais qq'un pourrait m'aider pour le login je me suis aider du raf admin mais sa marche pas

cristab
08/02/2010, 09:31 AM
http://forum.sa-mp.com/index.php?topic=91403.0

minimicro
08/02/2010, 11:32 AM
En 0.2 oui ça marchait impec, mais en 0.3 crash au /login

SQL & SAMP EN RC3 ça plante graave!

... Faut arrêter de dire que ca plante, pour attaquer le MySQL, faut mettre le Pawn de coté, et comprendre d'abord ce qu'est le langage Sql, il existe de trés bons tutos sur Internet, le Php peut aussi aider, pour faire des tests de requêtes par exemple.

J'ai (et je ne suis pas le seul), fait un serveur RP, complètement en MySQL (une 30aine de tables, aucun scriptfiles, excepté les logs SQL), et je n'ai aucun soucis, alors certes, il faut un hébergeur qui l'accepte (je suis sur un serveur dédié), ca prend du temps (j'ai décidé, de repartir de 0, le MySQL étant vraiment sensible aux erreurs qui peuvent exister dans les GF et autres EDIT), ca peut causer quelques erreurs (dépassement mémoire et/ou surconsommation de ressources) si ce n'est pas contrôlé correctement, mais franchement au final, c'est vraiment beaucoup MIEUX que des fichiers, et sous réserve que les Index soit bien construits, c'est beaucoup plus rapide que se balader dans des fichiers textes.

falor
08/02/2010, 03:01 PM
Certes, je ne voulais pas dire ça comme ça, je parlais des modes tels que les edits de moderntopia & lsrp qui buggent sous la rc3 en SQL.
Sinon, oui SQL est un outil ultra performant incontestablement! Je ne remet pas en cause son efficacité ni son utilité

yoko1
14/02/2010, 06:05 AM
C'est un bug de la 0.3.
A la base, larp était pour la sa mp 0.2x, il faut revoir le code et l'adapter pour sa mp 0.3, pour qu'il soit fonctionnel a 100 %
idem pour la party sql,une fois cela fait sql fonctionne tres bien.