Jump to content

Скрипт логина. SQLite проверка на существование


Recommended Posts

Есть база sqlite: users.db

В ней таблица: users

В ней 3 поля: login, password и mail

Как в скрипте логина прописать проверку логина и пароля. Т.е. в окошке с логином указан логин. К примеру user и пароль password. Скрипт проверяет, есть ли у такого поля Login значение user с паролем password.

Сам скрипт:

 local spawnX, spawnY, spawnZ = -711, 957, 13 
dbQueryUser = { 
    dbconnect = dbConnect("sqlite", "users.db") 
    dbQuery(dbConnect, "SELECT * FROM users") --похоже еще надо дописать этот контейнер 
} 
function loginHandler(username,password) 
    if username == "user" and password == "apple" then --тут нао заменить на проверку, но я не знаю как 
        if(client) then 
            spawnPlayer(client, spawnX, spawnY, spawnZ) 
            fadeCamera(client, true) 
            setCameraTarget(client, client) 
            outputChatBox("Добро пожаловать на мой сервер.", client) 
        end 
    else 
        outputChatBox("неправильный логин или пароль! Пожалуйста перезайдите и попробуйте еще раз.", client) 
    end 
end 
function ifUserDead() 
    spawnPlayer(source, spawnX, spawnY, spawnZ) 
    fadeCamera(source, true) 
    setCameraTarget(source, source) 
end 
function playerDied(totalAmmo, killer, killerWeapon, bodypart) 
    outputChatBox(getPlayerName(source).." Умер!") 
end 
addEvent("submitLogin",true) 
addEventHandler("submitLogin", root, loginHandler) 
addEventHandler("onPlayerWasted", getRootElement(), ifUserDead) 
addEventHandler("onPlayerWasted", getRootElement(), playerDied) 

Link to comment
P_CONNECTION = dbConnect( 'sqlite', 'users.db' ) 
  
function Login( sLogin, sPassword ) 
    local pQuery = dbQuery( P_CONNECTION, "SELECT * FROM `users` WHERE `login` = '" .. sLogin .. "'" ) 
    local aQuery = dbPoll( pQuery, - 1 ) 
     
    if type( aQuery ) == 'table' and #aQuery > 0 then 
        -- Аккаунт найден 
        if sPassword == aQuery[ 1 ][ 'password' ] then 
            -- .... 
        end 
    else 
        -- Аккаунт не найден 
  
    end 
end 

Это чисто пример функции, код ты должен сам дописывать.

Link to comment

Перед этим идёт проверка пароля, если условие проходит, то код выполняется дальше т.е там где -- ... это комментарий, там должен быть ваш код, вообщем как и везде( это пример функции ).

P.S Вы вообще знаете Lua? Если нет, то вам сюда: https://forum.multitheftauto.com/viewtop ... 1369f36da8

Link to comment
Перед этим идёт проверка пароля, если условие проходит, то код выполняется дальше т.е там где -- ... это комментарий, там должен быть ваш код, вообщем как и везде( это пример функции ).

P.S Вы вообще знаете Lua? Если нет, то вам сюда: https://forum.multitheftauto.com/viewtop ... 1369f36da8

Знаю я что это комментарий. После

if type( aQuery ) == 'table' and #aQuery > 0 then 

я добавил условие спавна

spawnPlayer(client, spawnX, spawnY, spawnZ) 
fadeCamera(client, true) 
setCameraTarget(client, client) 
outputChatBox("Добро пожаловать на мой сервер.", client) 

Я не могу понять для чего это:

  
if sPassword == aQuery[ 1 ][ 'password' ] then 
-- .... 
end 
  

Link to comment

Я не могу понять для чего это:

  
if sPassword == aQuery[ 1 ][ 'password' ] then 
-- .... 
end 
  

Когда вы вводите пароль с клиента, то вам нужно проверить его на сервере чтобы залогинется, логично же? Ну вот вы тригерите свои данные с клиента на сервер ( также приаттачьте событие к этой функции Login ). sLogin, sPassword это аргументы этой функции. Соответственно это условие будет проверять верен ли пароль.

Link to comment
Вместо коментария пиши свой код! (Что делать если игрок зашел с правильным паролем и логином)

Спасибо, теперь дошло. Я думал не туда указывать действие. :oops: Простите что вел себя как дурак. хотя это слабо сказано.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...