Hali!
Próbálgatom a bejelentkezés rendszert megcsinálni, mivel a regisztráció már működik, viszont ez nem akar menni.
Ez szerver oldalon van, ez maga a bejelentkezés:
function onLogin ( player, user, pass )
local login = mysql_query(handler,\"SELECT * FROM accounts WHERE pName = \'\"..mysql_escape_string( handler, user )..\"\' AND pPassword = \'\"..mysql_escape_string( handler, sha256(pass) )..\"\';\")
if login then
local rows = mysql_num_rows(login)
if rows == 1 then
outputChatBox(\"* You successfully logged in your account!\", player, 255, 255, 255)
else
outputChatBox(\"* Login failed!\", player, 255, 255, 255)
end
mysql_free_result(login)
end
end
addEvent( \"onLogin\", true )
addEventHandler( \"onLogin\", getRootElement(), onLogin )
Majd ezzel meghívom kliens oldali szkriptben:
triggerServerEvent ( \"onLogin\", getRootElement(), getLocalPlayer())
Viszont mikor beírom pl. hogy /login admin
akkor ilyen errort ír ki a konzol ablakba:
bad argument 1# to \'mysql_escape_string\' (mysql handler expected, got userdata)
Ez mitől lehet ? :( Előre is köszönöm!
Szia!
2 argumentumot nem triggerelsz át (user, pass)
A getLocalPlayert triggereled csak át, a többit nem.
Így lenne helyes:
valamiuser = \"jozsi\"
valamipass = \"szupertitkosjelszo\"
triggerServerEvent(\"onLogin\", getRootElement(), getLocalPlayer(), valamiuser, valamipass)
Persze a valamiuser és a valamipass helyére nem ez kerül, hanem értelemszerűen...
Robika1
Szia!
2 argumentumot nem triggerelsz át (user, pass)
A getLocalPlayert triggereled csak át, a többit nem.
Így lenne helyes:
valamiuser = \"jozsi\"
valamipass = \"szupertitkosjelszo\"
triggerServerEvent(\"onLogin\", getRootElement(), getLocalPlayer(), valamiuser, valamipass)
Persze a valamiuser és a valamipass helyére nem ez kerül, hanem értelemszerűen...
Robika1
Köszi a válaszod, próbáltam de nem megy, ugyanazt az errort írja. :(
Átírtam csak egy \"/bejelentkez [jelszó]\" parancsra, ami szerver oldalon fut, de ugyanazt az errort írja mikor loginolni akarok.
Így néz ki jelenleg:
function LoginPlayer(playerSource,commandName,password)
local user = getPlayerName(playerSource)
local login = mysql_query(handler,\"SELECT * FROM accounts WHERE pName = \'\"..mysql_escape_string( handler, user )..\"\' AND pPassword = \'\"..mysql_escape_string( handler, sha256(password) )..\"\';\")
if login then
local rows = mysql_num_rows(login)
if rows == 1 then
outputChatBox(\"* You successfully logged in your account!\", playerSource, 255, 255, 255)
else
outputChatBox(\"* Login failed!\", playerSource, 255, 255, 255)
end
mysql_free_result(login)
end
end
addCommandHandler(\"bejelentkez\",LoginPlayer)
Mi lehet a gond ? :(