hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.06.25. 20:18



Jelenlévő felhasználók

Jelenleg 269 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 269 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 4 hozzászólás ] 
Szerző Üzenet
HozzászólásElküldve: 2024.05.28. 20:48 
Offline
Tag
Avatar

Csatlakozott: 2021.03.16. 10:28
Hozzászólások: 39
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 3 alkalommal
Sziasztok.

A napokban elkezdtem írni egy regisztrációs rendszert, de elakadtam az sqlnél, és nem működik, annyira még nem értek hozzá, és nem értem hogyan tudnám megcsinálni.
Ebben szeretném kérni a segítségeteket.

Problémát a konzol jelzi:

L 05/28/2024 - 20:29:26: [AMXX] Plugin ("tesztreg.amxx") is setting itself as failed.
L 05/28/2024 - 20:29:26: [AMXX] Plugin says: Query Error
L 05/28/2024 - 20:29:26: [AMXX] Displaying debug trace (plugin "tesztreg.amxx", version "1.0")
L 05/28/2024 - 20:29:26: [AMXX] Run time error 1: forced exit
L 05/28/2024 - 20:29:26: [AMXX] [0] phponPCI7.sma::createTableThread (line 364)

Nem tudom mit adtam meg rosszul, mert hiába írja a sort nem tudom megérteni (egyenlőre) a probléma okát.

Előre is köszönöm a segítséget.:)

_________________
[steam]MyNameIsTesco[/steam]

Ha tudtam valamiben segíteni köszönd meg:)


A hozzászólást 5 alkalommal szerkesztették, utoljára ASDD 2024.06.06. 13:02-kor.

Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2024.05.28. 23:00 
Offline
Tud valamit

Csatlakozott: 2020.05.14. 11:32
Hozzászólások: 146
Megköszönt másnak: 13 alkalommal
Megköszönték neki: 59 alkalommal
(Edit: a \ jeleket nem én adom hozzá, a codebox bugos szerintem úgyhogy azokat majd töröld ki, ha innen másolod ki)

A hiba ez lesz:
  1. Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS \\\\`teszt_reg\\\\`");
  2.     Len += formatex(Query[Len], charsmax(Query)-Len, "(\\\\`Nev\\\\` varchar(32) NOT NULL, ");
  3.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\`Felhasznalonev\\\\` varchar(32) NOT NULL,");
  4.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\`Jelszo\\\\` varchar(32) NOT NULL,");
  5.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\`Regisztralt\\\\` int(11) NOT NULL,");
  6.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\`AutoB\\\\` int(11) NOT NULL,");

Utolsó sor, ahol mindig ')' - el kell zárni, tehát:

  1. Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS \\\\`teszt_reg\\\\` ");
  2.     Len += formatex(Query[Len], charsmax(Query)-Len, "(\\\\`Nev\\\\` varchar(32) NOT NULL, ");
  3.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\`Felhasznalonev\\\\` varchar(32) NOT NULL,");
  4.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\`Jelszo\\\\` varchar(32) NOT NULL,");
  5.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\`Regisztralt\\\\` int(11) NOT NULL,");
  6.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\`AutoB\\\\` int(11) NOT NULL)");


1-2 apróság:

Az alábbi részt mindenképp cseréld ki erre a kódra, mert ha így kezeled az SQL handle-t nem fogod tudni mi a probléma, és lehal az egész szerver.

(mivel előbb állítja le a plugint, minthogy logolná a hibát)

  1. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  2.     if(FailState == TQUERY_CONNECT_FAILED)
  3.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  4.     else if(FailState == TQUERY_QUERY_FAILED)
  5.         set_fail_state("Query Error");
  6.     if(Errcode)
  7.         log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  8. }


->

  1. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  2.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  3.         log_amx("MYSQL Hiba: %s", Error);
  4.         return;
  5.     }
  6. }


És ezt érdemes minden SQL handle elejére bemásolni, vagy létrehozni rá egy külön funkciót és lekérdezni.

Valamint ha megakarod kímélni a szervered, ne így használd: static Query[10048].

Eddig egyik modomhoz sem kellett ekkora tömb, ezeknek a méretét mindig a karakterek max lehetséges számát megbecsülve / megszámolva érdemes megadni (jobb esetben a 2 legközelebbi hatványára), illetve a static-ot ezekben a funkciókban felesleges használni, tehát:
new Query[2048] (jelen esetben amúgy elég lenne kb. new Query[256] is)

_________________
<<eb@>> szerverek hamarosan

-------------------------------------------------------

Zombie Mutation

Kép

Ők köszönték meg DexoN nek ezt a hozzászólást: ASDD (2024.05.28. 23:50)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2024.05.28. 23:50 
Offline
Tag
Avatar

Csatlakozott: 2021.03.16. 10:28
Hozzászólások: 39
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 3 alkalommal
DexoN írta:
(Edit: a \ jeleket nem én adom hozzá, a codebox bugos szerintem úgyhogy azokat majd töröld ki, ha innen másolod ki)

A hiba ez lesz:
  1. Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS \\\\\\`teszt_reg\\\\\\`");
  2.     Len += formatex(Query[Len], charsmax(Query)-Len, "(\\\\\\`Nev\\\\\\` varchar(32) NOT NULL, ");
  3.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\\\`Felhasznalonev\\\\\\` varchar(32) NOT NULL,");
  4.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\\\`Jelszo\\\\\\` varchar(32) NOT NULL,");
  5.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\\\`Regisztralt\\\\\\` int(11) NOT NULL,");
  6.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\\\`AutoB\\\\\\` int(11) NOT NULL,");

Utolsó sor, ahol mindig ')' - el kell zárni, tehát:

  1. Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS \\\\\\`teszt_reg\\\\\\` ");
  2.     Len += formatex(Query[Len], charsmax(Query)-Len, "(\\\\\\`Nev\\\\\\` varchar(32) NOT NULL, ");
  3.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\\\`Felhasznalonev\\\\\\` varchar(32) NOT NULL,");
  4.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\\\`Jelszo\\\\\\` varchar(32) NOT NULL,");
  5.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\\\`Regisztralt\\\\\\` int(11) NOT NULL,");
  6.     Len += formatex(Query[Len], charsmax(Query)-Len, "\\\\\\`AutoB\\\\\\` int(11) NOT NULL)");


1-2 apróság:

Az alábbi részt mindenképp cseréld ki erre a kódra, mert ha így kezeled az SQL handle-t nem fogod tudni mi a probléma, és lehal az egész szerver.

(mivel előbb állítja le a plugint, minthogy logolná a hibát)

  1. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  2.     if(FailState == TQUERY_CONNECT_FAILED)
  3.         set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
  4.     else if(FailState == TQUERY_QUERY_FAILED)
  5.         set_fail_state("Query Error");
  6.     if(Errcode)
  7.         log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  8. }


->

  1. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  2.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  3.         log_amx("MYSQL Hiba: %s", Error);
  4.         return;
  5.     }
  6. }


És ezt érdemes minden SQL handle elejére bemásolni, vagy létrehozni rá egy külön funkciót és lekérdezni.

Valamint ha megakarod kímélni a szervered, ne így használd: static Query[10048].

Eddig egyik modomhoz sem kellett ekkora tömb, ezeknek a méretét mindig a karakterek max lehetséges számát megbecsülve / megszámolva érdemes megadni (jobb esetben a 2 legközelebbi hatványára), illetve a static-ot ezekben a funkciókban felesleges használni, tehát:
new Query[2048] (jelen esetben amúgy elég lenne kb. new Query[256] is)



Hálásan köszönöm a segítséged!
Ma is tanultam valami, ezer pacsi, ment a gomb.:)

Ui: Illetve van egy olyan problémám, hogy hiába jelentkezek be, és jön is az üzenet róla ugyan úgy azt jelzi mintha nem is lennék bejelentkezve.
Ez lehet attól mert nem adtam hozzám prefixet, hogy (nem regisztrált) + az alapot, hogy már be van lépve?
Esetleg egy ellenőrző futtatást hagytam ki belőle?

_________________
[steam]MyNameIsTesco[/steam]

Ha tudtam valamiben segíteni köszönd meg:)


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2024.05.29. 15:27 
Offline
Tud valamit

Csatlakozott: 2020.05.14. 11:32
Hozzászólások: 146
Megköszönt másnak: 13 alkalommal
Megköszönték neki: 59 alkalommal
ASDD írta:

Hálásan köszönöm a segítséged!
Ma is tanultam valami, ezer pacsi, ment a gomb.:)

Ui: Illetve van egy olyan problémám, hogy hiába jelentkezek be, és jön is az üzenet róla ugyan úgy azt jelzi mintha nem is lennék bejelentkezve.
Ez lehet attól mert nem adtam hozzám prefixet, hogy (nem regisztrált) + az alapot, hogy már be van lépve?
Esetleg egy ellenőrző futtatást hagytam ki belőle?

Nincs mit, nem láttam benne sehol hogy megjelenítenéd hogy bevan jelentkezve, úgyhogy így természetesen nem is jelzi sehol, szóval igen ellenőrzésekkel, pl. kiírhatod hudra hogy Bejelentkezve! ID: #1

_________________
<<eb@>> szerverek hamarosan

-------------------------------------------------------

Zombie Mutation

Kép


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 4 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 98 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole