Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2017-01-04, 20:24


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Co? takiego?





W dalszym przypadku brak pobierania danych, spawnuje mnie pod texturami. Oraz has?o mog? wpisa? jakie chce.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-04, 20:32


Wafelowski







Wiek: 29
Na forum: 5347 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Wyprintuj mstring

Kod:

printf("%s", mstring);


i zobacz co tam w logach siedzi.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-04, 20:39


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Wszystko jasne:
Kod:

[20] sscanf warning: String buffer overflow.


Mam taki kod:





Pyt 1: za du?o rzeczy w sscanfie, st?d ten error. Jak to rozbi? na np dwie cz??cie?
Pyt 2: Da?em s[254] - taki mo?e by? najd?u?szy adres email - mo?e tak zosta??

Co do tego Unknown: SetGameModeText jest podane. Komendy dzia?aj?, ale np textdrawy nie wy?wietlaj? si? poprawnie. main{} posiadam, pluginy wszystkie dzia?aj?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-04, 20:58


Wafelowski







Wiek: 29
Na forum: 5347 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Spr?buj zwi?kszy? mstring do 1000 np. i zobacz co si? stanie a co do Unknown spr?buj wgra? nativechecker lub crashdetect i zobacz czy co? logi wypluj?.

Pobaw si? w zwi?kszanie warto?ci w sscanfie stringu z s[32] na np. s[35]. Je?eli chodzi o tego maila to my?l? ?? mo?esz jaki? limit ustawi? na np. 20-25 znak?w bo i tak w?tpi? ?eby kto? mia? taki d?ugi mail, chyba ?e jaki? troll. :D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-04, 21:10


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Ca?y error jaki pokazuje si? to:
Kod:

[21] sscanf warning: String buffer overflow.
[21] 827ccb0eea8a706c4c34a16891f84e7b|tuemail|tuIP|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|155|-92|2|230


ten ci?g znak?w wywo?any jest przed hash md5. Mo?e to przez to?

Gdzie zapisuj? si? logi od crashdetect? Wgra?em tylko plugin, wystarczy?


//Edit: no tak, przecie? skoro u?ywam hasha to musz? zwi?kszy? s[26] xD
Error znikn??, ale nadal nie pobiera moich danych. Mog? wpisa? oboj?tnie jakie has?o, zepawnuje mnie pod texturami.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-04, 21:40


Wafelowski







Wiek: 29
Na forum: 5347 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

A zapisujesz pozycje do bazy danych? Jak to wygl?da od strony phpmyadmin? xD

Logi z crashdetect normalnie w konsoli powinny by? pokazane je?li co? nie gra.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-04, 21:54


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Tak zapisuj? wszystkie dane:





(P??niej porozbijam na cz??ci, ?eby nie zapisywa? wszystkiego, bo mog? by? lagi) xD


//Og?lnie mam problem z d?ugim formatem, bo doda?em now? zmienn? Poszukiwany. Zrobi?em co? takiego:




Ale rozdzielaj?c na dwa formaty tworz? mi si? dwa rekordy. Jak zrobi?, ?eby ten drugi format by? w pierwszym rekordzie?


3) Wgra?em nativechecker i wywali?o sporo b??d?w.. Ale sk?d si? wzi??y?





streamer i sscanf dzia?a?y wcze?niej poprawnie. Czy co? si? mo?e gry???

//Edit: na forum sampa napisali ?eby ten nativechecker dawa? na ko?cu listy plugins. Zrobi?em tak i nie pokazuje tych b??d?w

//Edit2: Najprawdopodobniej przyczyn? jest stary plugin mysql, dlatego pokazuje si? Unknown. Ale na BlueG za choler? si? nie przenios?, bo go nie rozumiem.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-05, 02:55


Wafelowski







Wiek: 29
Na forum: 5347 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Te dane co zapisujesz zr?b sobie w 1 formacie, najlepiej te potrzebne po wyj?ciu gracza czyli np. ?ycie, pancerz, pozycja itp. za? has?a nie musisz zapisywa? bo si? nie zmieni no chyba ?e si? zmieni to wtedy UPDATE z t? warto?ci?.

Z tym drugim tak samo walnij to do jednego formata.

Co do ostatniego no to musisz co? pokombinowa?, ja korzystam z pluginu od BlueG i nie mam z nim problem?w. Jednak?e nie wydaje mi si? ?eby co? by?o nie tak og?lnie z tym pluginem, kiedy? z niego korzysta?em i chyba nie mia?em problem?w, mo?e masz co? pomieszane?

Spr?buj tej wersji: http://gtao.pl.com/showpo...&postcount=1005

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-05, 12:40


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Sprawa z Unknown mode rozwi?zana. Przenios?em setgamemodetext na sam? g?r?, a ??czenie z mysql na sam d?? ongamemodeinit.


Teraz problem z formatem, gdy? linijka jest za d?uga i wywala mi b??d.
Kod:

(1193) : error 075: input line too long (after substitutions)








//EDIT
Rozbi?em na dwie cz??ci i jest prawie OK, z tym, ?e przy pozycjach X_Pos, Y_Pos, Z_Pos, A_Pos pokazuj? si? w phpmyadmin Null i jest error o sk?adni. Oto kod:





Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-05, 15:08


WWilk1







Wiek: 30
Na forum: 4700 dni
Posty: 116
Nick w MP: eep.Wilk

Piwa: 147

Respekt: 130
Respekt: 130

Poustawiaj w phpmyadmin warto?ci domy?lne na te pola. Na Float ustaw domy?lnie 0.0. W zapytaniu INSERT INTO nie sprawdza si? rekordu " WHERE `Nick` = '%s' LIMIT 1" bo w ko?cu dodajesz nowy rekord, a nie szukasz rekordu i w nim co? zmieniasz.

Jak poustawiasz te pola, kt?re chcesz aby mia?y warto?? domy?ln? wtedy dajesz np. takie zapytanie

Pawn
mysql_query("INSERT INTO `Gracze` (`Pieniadze`) VALUES('0');");


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-05, 15:39


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Ustawi?em te warto?ci domy?lne. Ale jak teraz przerobi? ten kod:




?eby wszystko by?o w jednej linijce (jak jest jedna to wywala b??d ?e d?uga linijka), bo teraz tworz? mi si? dwa rekordy w bazie. Jest to zapewne spowodowane tym, ?e dwa razy u?ywam mysql_query, ale jak to zast?pi??

Ostatnio zmieniony przez MG303 2017-01-05, 15:46, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-05, 15:42


WWilk1







Wiek: 30
Na forum: 4700 dni
Posty: 116
Nick w MP: eep.Wilk

Piwa: 147

Respekt: 130
Respekt: 130

No to skoro ustawi?e? te warto?ci domy?lne, to wystarczy ?e dasz:

Pawn
format(Querysizeof(Query), "INSERT INTO `Gracze` (`Nick`, `Haslo`, `Email`, `IP`) VALUES('%s', MD5('%s'), '%s', '%s');"PlayerName(playerid), pGracz[playerid][Haslo], pGracz[playerid][Email], pGracz[playerid][IP]);
mysql_query(Query);


?rednik na ko?cu zapytania tylko trzeba by?o doda?.

Ps. chyba zrobie skrypt na prost? rejestracje w MySQL, bo widz? ?e coraz wi?cej jest pyta? o to, a na forum nie znalaz?em dobrego takiego skryptu i do?? optymalnego.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-05, 15:51


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Oj przyda?by si? ten skrypt/poradnik xD

Kolejny problem napotkany to sprawdzanie poprawno?ci has?a.
Jak wpisz? z?e has?o to wywala info, ?e z?e = niby ok.
Ale jak wpisz? poprawne to dzieje si? to samo. U?ywam hasha Md5 (jak powy?ej wida?).
Sprawdzam has?o w taki spos?b:
Kod:

if(strcmp(inputtext, pGracz[playerid][Haslo], false))
{//reszta je?li has?o z?e


A tak pobieram dane z bazy:





Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-05, 16:01


WWilk1







Wiek: 30
Na forum: 4700 dni
Posty: 116
Nick w MP: eep.Wilk

Piwa: 147

Respekt: 130
Respekt: 130

Nie musisz pobiera? has?a skoro szyfrujesz tylko MD5, wystarczy za pomoc? zapytania sprawdzi?. Przyk?ad:

Pawn
new AntiSQLInjection[18];
mysql_real_escape_string(inputtextAntiSQLInjection);
format(String128"SELECT `ID`, `Email`, `Money`, `xPos` FROM `players` WHERE `Nick` = '%s' AND `Pass` = MD5('%s') LIMIT 1"PlayerName(playerid), AntiSQLInjection);
mysql_query(String);
mysql_store_result();
if(!mysql_num_rows())
{
    //Nie znaleziono konta lub b??dne has?o wpisa?
    mysql_free_result();
    return 1;
}
mysql_fetch_row(String"|");
sscanf(String"p<|>is[18]if"pPlayer[playerid][UID], pPlayer[playerid][Email], pPlayer[playerid][Money], pPlayer[playerid][X_Pos]);
mysql_free_result();


Nie polecam tylko MD5 szyfrowa? gdyby by? to wi?kszy serwer, to lepiej u?y? https://wiki.sa-mp.com/wiki/SHA256_PassHash oraz s?l.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-05, 16:25


MG303







Wiek: 30
Na forum: 6418 dni
Posty: 654

Piwa: 2990

Respekt: 231,6
Respekt: 231,6Respekt: 231,6

Nie za bardzo ogarniam, bo ten kod:





Jest po?o?ony w OnPlayerConnect.
A wydaje mi si?, ?e lepiej by?oby rozbi? go na dwie cz??ci, czyli w OnPlayerConnect pobiera? tylko Nick i sprawdzi? czy jest zarejestrowany.

A reszt? danych tj. Email itd itd pobra? dopiero w OnDialogResponse przy logowaniu.

Postaw piwo autorowi tego posta
 

 
Tagi: rejestracja :: mysql
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Rejestracja w MYSQL Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku