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

Wysłany: 2020-04-24, 10:36


Gabik







Wiek: 24
Na forum: 2234 dni
Posty: 14
Nick w MP: Gabik

Piwa: 16

Respekt: 50

Witam, posiadam taki o to b??d logowania, nie da si? zalogowa? ani zarejestrowa?, w konsoli wy?wietla si?:
ERROR: [SKRYPTY]/logowanie/s_main.lua:143: attempt to call global 'escapeString' (a nil value)
ERROR: [SKRYPTY]/logowanie/s_main.lua:114: attempt to call global 'escapeString' (a nil value)

Na dole macie kod.
Z g?ry dzi?ki za pomoc

Kod:



local db = exports['polaczenie']

function getPlayersHavePremium()
local q = db:query('select * from users where not premium_date=000-00-00')
return (q and #q > 0 and #q) or 0
end

function loadPlayerData(player, result, password)
local q_mute = db:query('select * from kary where (serial=? or ip=? or nick=?) and active=1 and type=? and date>now() limit 1', getPlayerSerial(player), getPlayerIP(player), getPlayerName(player), 'mute')
local q_ban = db:query('select * from kary where (serial=? or ip=? or nick=?) and active=1 and type=? and date>now() limit 1', getPlayerSerial(player), getPlayerIP(player), getPlayerName(player), 'ban')

if q_mute and #q_mute > 0 then
outputChatBox('-------------------------------------------', player, 255, 0, 0)
outputChatBox('Jeste? wyciszony!', player, 255, 0, 0)
outputChatBox('Osoba wyciszaj?ca: '..q_mute[1]['admin'], player, 255, 0, 0)
outputChatBox('Pow?d wyciszenia: '..q_mute[1]['reason'], player, 255, 0, 0)
outputChatBox('Czas wyciszenia: '..q_mute[1]['date'], player, 255, 0, 0)
outputChatBox('----------------------------------------', player, 255, 0, 0)

setElementData(player, 'user:mute', true)
else
db:query('update kary set active=0 where (serial=? or ip=? or nick=?) and type=? limit 1',getPlayerSerial(player), getPlayerIP(player), getPlayerName(player), 'mute')
end

if q_ban and #q_ban > 0 then
triggerClientEvent('wybieramyspawn:logowanie', player, player, result, true)
triggerClientEvent(player, 'pokaz:bana', resourceRoot, q_ban)
return
else
db:query('update kary set active=0 where (serial=? or ip=? or nick=?) and type=? limit 1',getPlayerSerial(player), getPlayerIP(player), getPlayerName(player), 'ban')
end

setPlayerName(player, result[1]['login'])
setPlayerMoney(player, result[1]['money'])
setElementHealth(player, result[1]['health'])

db:query('update users set lastlogin=now(), logged=1 where id=? limit 1', result[1]['id'])

if result[1]['save'] == 1 then
triggerClientEvent(player, 'saveDateToXML', resourceRoot, result[1]['login'], password)
end

setElementData(player, 'user:dbid', result[1]['id'])
setElementData(player, 'user:register', result[1]['registered'])
setElementData(player, 'user:online', result[1]['online'])
setElementData(player, 'user:sesion_online', 0)
setElementData(player, 'user:prawkoA', result[1]['prawkoA'])
setElementData(player, 'user:prawkoB', result[1]['prawkoB'])
setElementData(player, 'user:prawkoC', result[1]['prawkoC'])
setElementData(player, 'user:prawkoL', result[1]['prawkoL'])
setElementData(player, 'user:premiumDate', result[1]['premium_date'])
setElementData(player, 'user:premiumPoints', result[1]['premium_points'])
setElementData(player, 'user:achievements', fromJSON(result[1]['achievements']))
setElementData(player, 'shaders', fromJSON(result[1]['shaders']))
setElementData(player, 'settings', fromJSON(result[1]['settings']))
setElementData(player, 'interaction:trigger', 'wymiany')

setElementData(player, "user:fid", result[1].faction)
setElementData(player, "user:frank", result[1].frank)
setElementData(player, "user:ftime", result[1].ftime)

setElementData(player, "user:oranga", result[1].orank)

setElementData(player, "licka:rybak", result[1].rybak == 0 and false or true)

local q4 = db:query("select * from frakcje where id=?", result[1].faction)
if #q4 > 0 then
setElementData(player, "user:fname", q4[1].frakcja)
setElementData(player, "user:fdata", q4)
end

local q3 = db:query("select * from organizacje where id=?", result[1].org)
if #q3 > 0 then
setElementData(player, "user:oname", q3[1].organizacja)
setElementData(player, "user:odata", q3)
end

if result[1]['cut'] == 'TAK' then
setElementData(player, 'user:logged', true)
end

local lastPos = false
if result[1]['premium_date'] ~= '0000-00-00' then
local q = db:query("select * from users where premium_date<now() and id=?", result[1].id)
if(q and #q > 0)then
outputChatBox("Twoje konto premium wygas?o.", player)
db:query("update users set premium_date=? where id=?", "0000-00-00", result[1].id)
return
end

setElementData(player, 'user:premium', true)
outputChatBox('Posiadasz konto premium aktywne do: '..result[1]['premium_date'], player, 255, 255, 0)
lastPos = fromJSON(result[1].pos)
end

local r = db:query('select * from domki where wlasciciel=?', result[1]['id'])
--local org = db:query('select * from domki where organizacja=?', result[1].oname)
triggerClientEvent('wybieramyspawn:logowanie', player, player, result, false, lastPos, r, org)
end

addEvent('logowanie:rejestracja', true)
addEventHandler('logowanie:rejestracja', resourceRoot, function(player, login, haslo, email)
login = escapeString(login)
haslo = escapeString(haslo)

local czytaj = db:query('SELECT * FROM users WHERE login=? limit 1', login)
if czytaj and #czytaj > 0 then
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Konto o takiej nazwie u?ytkownika ju? istnieje.', {255, 0, 0})
return
end

local r = db:query('select * from users where serial=? limit 1', getPlayerSerial(player))
if r and #r >= 2 then
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Mo?esz posiada? maksymalnie dwa konta.', {255, 0, 0})
return
end

local q = db:query('INSERT INTO users (login,email,password,reputation,serial) VALUES (?,?,?,0,?)', login, email, passwordHash(haslo, 'bcrypt', {}), getPlayerSerial(player))
if not q then
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Wyst?pi? b??d podczas tworzenia konta. Zg?o? ten b??d administratorowi na forum.', {255, 255, 0})
return
end

local czytaj = db:query('SELECT * FROM users WHERE login=? limit 1', login)
if czytaj and #czytaj > 0 then
loadPlayerData(player, czytaj, haslo)
end
end)

addEvent('logowanie:zaloguj', true)
addEventHandler('logowanie:zaloguj', resourceRoot, function(player, login, haslo)
login = escapeString(login)
haslo = escapeString(haslo)

local czytaj = db:query('SELECT * FROM users WHERE login=? limit 1', login)
if czytaj and #czytaj > 0 then
if passwordVerify(haslo, czytaj[1]['password']) then
if tonumber(czytaj[1]['logged']) == 1 then
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Podane konto jest aktualnie u?ywane.', {255, 0, 0})
return
end

loadPlayerData(player, czytaj, haslo)
else
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Podane has?o jest nieprawid?owe.', {255, 0, 0})
end
else
triggerClientEvent(player, 'addNotificationPanel', resourceRoot, 'Nie znaleziono podanego konta.', {255, 0, 0})
end
end)

function zapiszGracza(player)
local dbid = getElementData(player, 'user:dbid')
if not dbid then return end

local q = db:query('SELECT * FROM users WHERE id=? limit 1', dbid)
if q and #q > 0 then
local achv = toJSON((getElementData(player, 'user:achievements') or {}))
local save = getElementData(player, 'zapamietajLogin') or 0
local health = getElementHealth(player) or 100
local shaders = toJSON((getElementData(player, 'shaders') or {}))
local settings = toJSON((getElementData(player, 'settings') or {}))
local premium_points = getElementData(player, 'user:premiumPoints') or 0
local online = getElementData(player, 'user:online') or 0
local rybak = getElementData(player, "licka:rybak") or 0


local x,y,z = getElementPosition(player)
db:query('update users set save=?, achievements=?, health=?, shaders=?, settings=?, premium_points=?, online=?, rybak=?, pos=? where id=? limit 1', save, achv, health, shaders, settings, premium_points, online, rybak, toJSON({x, y, z}), dbid)
end
end
addEventHandler('onPlayerQuit', root, function() zapiszGracza(source) end)

addEvent('getSave', true)
addEventHandler('getSave', resourceRoot, function()
local q = db:query('SELECT * FROM users WHERE serial=? and save=1 limit 1', getPlayerSerial(client))
if q and #q > 0 then
triggerClientEvent(client, 'setDates', resourceRoot, true)
return
end

triggerClientEvent(client, 'setDates', resourceRoot, false)
end)

addEvent('logowanie:zrespGracza', true)
addEventHandler('logowanie:zrespGracza', resourceRoot, function(player, x, y, z, int_dim, housefalse)
local q = db:query('select * from users where login=? limit 1', getPlayerName(player))
if q and #q > 0 then
triggerClientEvent(player, 'loadingScreen', resourceRoot)

fadeCamera(player, false)
setElementFrozen(player, true)
setTimer(function()
interior = (int_dim and #int_dim > 0) and int_dim[1] or 0
dimension = (int_dim and #int_dim > 0) and int_dim[2] or 0

fadeCamera(player, true)

setTimer(function()
setElementFrozen(player, false)
end, 1000, 1)

spawnPlayer(player, x, y, z, 90, q[1]['skin'], interior, dimension)
end, 1000, 1)

setElementData(player,'wPaneluLogowania',nil)
showChat(player, true)
showCursor(player, false)
setElementData(player, 'pokaz:hud', true)
setElementData(player, 'grey_shader', 0)
setCameraTarget(player,player)
triggerClientEvent(player, 'stopMusic', resourceRoot)
end
end)

addEvent('logowanie:zatwierdzPoradnik', true)
addEventHandler('logowanie:zatwierdzPoradnik', resourceRoot, function(player, type)
type = tonumber(type)

if type == 1 then
exports["polaczenie"]:query("UPDATE users SET tutorial=? WHERE login=? limit 1", "TAK", getPlayerName(player))
elseif type == 2 then
exports["polaczenie"]:query("UPDATE users SET cut=? WHERE login=? limit 1", "TAK", getPlayerName(player))
end
end)

addEventHandler('onPlayerCommand', root, function(command)
if not getElementData(source, 'user:logged') and getPlayerSerial(source) ~= '74AD615CFE02B293D95D63C9918358B3' and getPlayerSerial(source) ~= '69DC9557CEBBB00E7CDEAD6B7D029043' then
cancelEvent()
elseif command == 'register' then
cancelEvent()
elseif command == 'login' and getPlayerSerial(source) ~= '74AD615CFE02B293D95D63C9918358B3' and getPlayerSerial(source) ~= '69DC9557CEBBB00E7CDEAD6B7D029043' then
cancelEvent()
elseif command == 'logout' then
cancelEvent()
end
end)

function getPlayersOnline()
local q = db:query('select * from users where logged=1 limit 1')
for i,v in pairs(q) do
if not getPlayerFromName(v['login']) then
db:query('update users set logged=0 where login=? limit 1', v['login'])
break
end
end
end
getPlayersOnline()
setTimer(getPlayersOnline, 300000, 0)

addEventHandler('onPlayerQuit', root, function()
local dbid = getElementData(source, 'user:dbid')
if not dbid then return end

db:query('update users set logged=0 where id=? limit 1', dbid)
end)

addEventHandler('onPlayerLogout', root, function()
cancelEvent()
end)

addEventHandler('onPlayerChangeNick', root, function()
cancelEvent()
end)

function escapeString(text)
local str = string.gsub(tostring(text), "'", '')
str = string.gsub(str, '"', '')
str = string.gsub(str, ';', '')
str = string.gsub(str, '\\', '')
str = string.gsub(str, '/*', '')
str = string.gsub(str, '*/', '')
str = string.gsub(str, "'", '')
str = string.gsub(str, '`', '')
str = string.gsub(str, ' ', '')
return str
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-24, 11:34


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Brak funkcji "escapeString". Musisz j? stworzy? lub j? usun?? z kodu.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-24, 22:19


Gabik







Wiek: 24
Na forum: 2234 dni
Posty: 14
Nick w MP: Gabik

Piwa: 16

Respekt: 50

"Wilq" napisał/a:

Brak funkcji "escapeString". Musisz j? stworzy? lub j? usun?? z kodu.


Po usuni?ciu dosta?em b??d, jednak zauwa?y?em ?e podczas startu serwera mam te? takie b??dy:
[20-04-24 22:17] ERROR: [SKRYPTY]/logowanie/s_main.lua:12: exports: Call to non-running server resource (polaczenie) [string "?"]
[20-04-24 22:17] ERROR: [SKRYPTY]/logowanie/s_main.lua:252: bad argument #1 to 'pairs' (table expected, got nil)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-24, 22:39


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3


[20-04-24 22:17ERROR: [SKRYPTY]/logowanie/s_main.lua:12exportsCall to non-running server resource (polaczenie) [string "?"]

1. Uruchom skrypt "polaczenie"
2. Ten b??d oznacza, ?e nie ma tabeli, mo?e to by? powi?zane.
Potrzebujemy wi?cej info :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-25, 10:33


Gabik







Wiek: 24
Na forum: 2234 dni
Posty: 14
Nick w MP: Gabik

Piwa: 16

Respekt: 50

"kamison" napisał/a:


[20-04-24 22ERROR: [SKRYPTY]/logowanie/s_main.lua:12exportsCall to non-running server resource (polaczenie) [string "?"]

1. Uruchom skrypt "polaczenie"
2. Ten b??d oznacza, ?e nie ma tabeli, mo?e to by? powi?zane.
Potrzebujemy wi?cej info :)


Dobra da?em rade, wystarczy?o skrypt po??czenie ustawi? na pocz?tku uruchamiania poniewa? by? gdzie? pod koniec, dzi?ki za pomoc :D

Postaw piwo autorowi tego posta
 

 
Tagi: logowanie
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Logowanie 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