Vielen Dank , nun erscheint das Login/Register Fenster !
Allerdings kann man sich jetzt weder registrieren , noch einloggen ...
Aber ich schätze mal , dass das dann was mit der Datenbank zu tun haben muss...
Beiträge von Kulterboy
-
-
Das ist nicht genug. Du musst uns auch sagen auf welcher Zeile der Fehler ist. Wir haben keine Lust zu suchen
Hinter dem Dateinamen steht immer eine Zahl wie z.B.: example.lua:14
Sag uns die Zahl.
"login.lua:72"
"login.lua:84" -
Okey hast du dich in der ACL als Admin eingetragen? Falls nicht machst du dies jetzt. Dann erstellst du Ingame einen Account (falls du dies noch nicht gemacht hast) mit /register PW und logst dich dann mit /login PW. Danach gibst du /debugscript 3 ein und startest dein Script mit /start DEINSCRIPT und es müssen (falls es nicht geht) Fehlermeldungen kommen es gibt seltene Fälle wo dies nicht der Fall ist und auch dort kann man mit ein paar Tricks den Fehler finden.
Gut , habe ich nun gemacht.
Einen Fehler habe ich bereits behoben : Eine Klammer war nicht geschlossen.
Jetzt werden mir noch so Fehler angezeigt wie:
"'then' expected near '='" -
Server
Lua
Alles anzeigenaddEvent("onRegister",true) addEvent("onLogin",true) function resourceStart () handler = dbConnect("mysql","dbname=Login;host=localhost","root","asd") if handler then outputServerLog("[Login] Verbindung zum Datenbank Server erfolgreich!") else outputServerLog("[Login] Verbindung zum Datenbank Server gescheitert!") end end -- Schau an hier fehlte das 'end' addEventHandler ("onResourceStart", getResourceRootElement(), resourceStart) function onRegister ( Benutzername , Passwort ) local sql = dbQuery(handler, "SELECT * FROM players WHERE Benutzername = '"..Benutzername.."'") local result,num_rows = dbPoll(sql,-1) if num_rows == 0 then local Passwortverschluesselt = md5(Passwort) dbExec(handler,"INSERT INTO players (Benutzername, Passwort) VALUES ( '"..Benutzername.."','"..Passwortverschluesselt.."')") outputChatBox("Du hast dich erfolgreich registriert",source, 125, 0, 0) else outputChatBox("Du bist bereits Registriert!",source, 125, 0, 0) end end addEventHandler("onRegister", getRootElement(),onRegister) function onLogin ( Benutzername , Passwort ) local Passwortverschluesselt = md5 (Passwort) local sql =dbQuery(handler, "SELECT * FROM players WHERE Benutzername = '"..Benutzername.."' AND Passwort = '"..Passwortverschluesselt.."'") local result, num_rows = dbPoll (sql,-1) if num_rows == 1 then outputChatBox("Du hast dich erfolgreich eingeloggt!",source, 125, 0, 0) triggerClientEvent(source,"closeLogin",source) else outputChatBox("Dein Passwort oder dein Benutzername stimmen nicht überein!",source, 125, 0, 0) end -- end Kommentar: wtf? was macht das end hier? Damit generierst du schon mal einen Fehler -- addEventHandler("onLogin", getRootElement(),onLogin) Kommentar: Dies ist in der Funktion drin dh das Event wird erst hinzugefügt sobald -- die Funktion aufgerufen wird und du benötigst ja das Event um diese aufzurufen ;) end addEventHandler("onLogin", getRootElement(),onLogin)
Client
Lua
Alles anzeigen--[[ Login = { tab = {}, tabpanel = {}, edit = {}, button = {}, window = {}, label = {} } ]] -- Wieso global? Du benötigst den Array aka Table nur lokal addEvent("closeLogin",true) local Login = { tab = {}, tabpanel = {}, edit = {}, button = {}, window = {}, label = {} } addEventHandler("onClientResourceStart", resourceRoot, function() local screenW, screenH = guiGetScreenSize() Login.window[1] = guiCreateWindow((screenW - 574) / 2, (screenH - 418) / 2, 574, 418, "Login / Register", false) guiWindowSetSizable(Login.window[1], false) guiSetAlpha(Login.window[1], 1.00) Login.tabpanel[1] = guiCreateTabPanel(9, 34, 555, 362, false, Login.window[1]) Login.tab[1] = guiCreateTab("Register", Login.tabpanel[1]) Login.label[1] = guiCreateLabel(6, 20, 131, 27, "Benutzername:", false, Login.tab[1]) Login.edit[1] = guiCreateEdit(136, 23, 307, 24, "", false, Login.tab[1]) Login.label[2] = guiCreateLabel(6, 113, 130, 29, "Passwort:", false, Login.tab[1]) Login.edit[2] = guiCreateEdit(137, 114, 306, 28, "", false, Login.tab[1]) guiEditSetMasked(Login.edit[2], true) Login.button[1] = guiCreateButton(146, 275, 287, 40, "Registrieren", false, Login.tab[1]) guiSetProperty(Login.button[1], "NormalTextColour", "FFAAAAAA") addEventHandler("OnClientGUIClick",Login.button[1],onLogin) Login.tab[2] = guiCreateTab("Login", Login.tabpanel[1]) Login.label[3] = guiCreateLabel(4, 30, 168, 29, "Benutzername:", false, Login.tab[2]) Login.edit[3] = guiCreateEdit(172, 32, 295, 27, "", false, Login.tab[2]) Login.label[4] = guiCreateLabel(3, 128, 169, 26, "Passwort:", false, Login.tab[2]) Login.edit[4] = guiCreateEdit(172, 127, 295, 27, "", false, Login.tab[2]) guiEditSetMasked(Login.edit[4], true) Login.button[2] = guiCreateButton(105, 263, 362, 36, "Einloggen", false, Login.tab[2]) guiSetProperty(Login.button[2], "NormalTextColour", "FFAAAAAA") addEventHandler("OnClientGUIClick",Login.button[2],onRegister) end ) showCursor(true) addEventHandler ("closeLogin",getRootElement(), function () showCursor(false) -- guiSetVisible(Login.window[1], false) -- Wieso nur unsichtbar machen? Einfach gleich zerstören du brauchst das Login Fenster nach dem Login nicht mehr destroyElement(Login.window[1]) end -- Hier hat schon wieder ein 'end' gefehlt function onLogin () local Benutzername = guiGetText(Login.edit[1]) local Passwort = guiGetText(Login.edit[2]) if Passwort:len() =< 6 then triggerServerEvent("onLogin", getLocalPlayer(),Benutzername,Passwort) else outputChatBox("Dein Passwort muss mindestens 6 Zeichen lang sein!", 125, 0, 0) end end function onRegister () local Benutzername = guiGetText(Login.edit[3]) local Passwort = guiGetText(Login.edit[4]) if Passwort:len() =< 6 then triggerServerEvent("onRegister", getLocalPlayer(),Benutzername,Passwort) else outputChatBox("Dein Passwort muss mindestens 6 Zeichen lang sein!", 125, 0, 0) end end
Hab mal drüber geschaut und jeden Fehler den ich gefunden habe Kommentiert und ausgebessert. Sollte eig. jetzt funktionieren
Sowie würde ich dir empfehlen https://www.mta-sa.org/index.php?page=Thread&threadID=343 dies anzuschauen. Da dies wirklich wichtig ist und dann findest du die Fehler auch viel schneller@Laudly: Ich kann nicht Scripten ? Ich tu nur so *:P*
Hallo,
erstmal Danke , dass du meinen Skript korrigiert hast.
Nur das Problem hat sich leider dadruch trotzdem nicht gelöst.
Ich lande nach dem Connecten sofort im Spiel und kein Login/Registerfenster taucht auf.
Das ist doch echt krank , Ich sitze hier schon seit ein paar Stunden und lasse mich von der Community beraten , trotzdem funktioniert es nicht -.- -
Wenn du ein MySQL basiertes Login/Register System haben willst guck dir doch das Video von Soner an *;)*
Ich habe mir das Video auch an manchen Stellen nebenher angeschaut, aber es klappt ja leider nicht -
Sry , hatte Ich vergessen.
Hat jemand von euch schon etwas gefunden ?MfG
-
Einmal der Code vom Typ Client (login.lua)
Lua
Alles anzeigenLogin = { tab = {}, tabpanel = {}, edit = {}, button = {}, window = {}, label = {} } addEventHandler("onClientResourceStart", resourceRoot, function() local screenW, screenH = guiGetScreenSize() Login.window[1] = guiCreateWindow((screenW - 574) / 2, (screenH - 418) / 2, 574, 418, "Login / Register", false) guiWindowSetSizable(Login.window[1], false) guiSetAlpha(Login.window[1], 1.00) Login.tabpanel[1] = guiCreateTabPanel(9, 34, 555, 362, false, Login.window[1]) Login.tab[1] = guiCreateTab("Register", Login.tabpanel[1]) Login.label[1] = guiCreateLabel(6, 20, 131, 27, "Benutzername:", false, Login.tab[1]) Login.edit[1] = guiCreateEdit(136, 23, 307, 24, "", false, Login.tab[1]) Login.label[2] = guiCreateLabel(6, 113, 130, 29, "Passwort:", false, Login.tab[1]) Login.edit[2] = guiCreateEdit(137, 114, 306, 28, "", false, Login.tab[1]) guiEditSetMasked(Login.edit[2], true) Login.button[1] = guiCreateButton(146, 275, 287, 40, "Registrieren", false, Login.tab[1]) guiSetProperty(Login.button[1], "NormalTextColour", "FFAAAAAA") addEventHandler("OnClientGUIClick",Login.button[1],onLogin) Login.tab[2] = guiCreateTab("Login", Login.tabpanel[1]) Login.label[3] = guiCreateLabel(4, 30, 168, 29, "Benutzername:", false, Login.tab[2]) Login.edit[3] = guiCreateEdit(172, 32, 295, 27, "", false, Login.tab[2]) Login.label[4] = guiCreateLabel(3, 128, 169, 26, "Passwort:", false, Login.tab[2]) Login.edit[4] = guiCreateEdit(172, 127, 295, 27, "", false, Login.tab[2]) guiEditSetMasked(Login.edit[4], true) Login.button[2] = guiCreateButton(105, 263, 362, 36, "Einloggen", false, Login.tab[2]) guiSetProperty(Login.button[2], "NormalTextColour", "FFAAAAAA") addEventHandler("OnClientGUIClick",Login.button[2],onRegister) end ) showCursor(true) addEvent("closeLogin",true) addEventHandler ("closeLogin",getRootElement(), function () showCursor(false) guiSetVisible(Login.window[1], false) function onLogin () local Benutzername = guiGetText(Login.edit[1]) local Passwort = guiGetText(Login.edit[2]) if Passwort:len() =< 6 then triggerServerEvent("onLogin", getLocalPlayer(),Benutzername,Passwort) else outputChatBox("Dein Passwort muss mindestens 6 Zeichen lang sein!", 125, 0, 0) end end function onRegister () local Benutzername = guiGetText(Login.edit[3]) local Passwort = guiGetText(Login.edit[4]) if Passwort:len() =< 6 then triggerServerEvent("onRegister", getLocalPlayer(),Benutzername,Passwort) else outputChatBox("Dein Passwort muss mindestens 6 Zeichen lang sein!", 125, 0, 0) end end
Und einmal der Code vom Typ Server (server.lua)
Lua
Alles anzeigenaddEvent("onRegister",true) addEvent("onLogin",true) function resourceStart () handler = dbConnect("mysql","dbname=Login;host=localhost","root","asd") if handler then outputServerLog("[Login] Verbindung zum Datenbank Server erfolgreich!") else outputServerLog("[Login] Verbindung zum Datenbank Server gescheitert!") end addEventHandler ("onResourceStart", getResourceRootElement(), resourceStart) function onRegister ( Benutzername , Passwort ) local sql = dbQuery(handler, "SELECT * FROM players WHERE Benutzername = '"..Benutzername.."'") local result,num_rows = dbPoll(sql,-1) if num_rows == 0 then local Passwortverschluesselt = md5(Passwort) dbExec(handler,"INSERT INTO players (Benutzername, Passwort) VALUES ( '"..Benutzername.."','"..Passwortverschluesselt.."')") outputChatBox("Du hast dich erfolgreich registriert",source, 125, 0, 0) else outputChatBox("Du bist bereits Registriert!",source, 125, 0, 0) end end addEventHandler("onRegister", getRootElement(),onRegister) function onLogin ( Benutzername , Passwort ) local Passwortverschluesselt = md5 (Passwort) local sql =dbQuery(handler, "SELECT * FROM players WHERE Benutzername = '"..Benutzername.."' AND Passwort = '"..Passwortverschluesselt.."'") local result, num_rows = dbPoll (sql,-1) if num_rows == 1 then outputChatBox("Du hast dich erfolgreich eingeloggt!",source, 125, 0, 0) triggerClientEvent(source,"closeLogin",source) else outputChatBox("Dein Passwort oder dein Benutzername stimmen nicht überein!",source, 125, 0, 0) end end addEventHandler("onLogin", getRootElement(),onLogin) end
-
..naja.. ich würde sukzessiv durch den Code gehen und systematisch nach Fehlern suchen
Mein Problem ist , dass Ich nichts finde D: -
Wüsstest du denn , wieso mein Script trotz 0 ERROR immernoch nicht funktioniert ?
Weil wenn was falsch wäre , müsste ja ein ERROR kommen... -
Naja.. das Komma gehört da nicht hin..
if handler then
Komisch , davor hatte Ich es auch ohne "," und ging trotzdem nicht ... Naja , Danke .
Aber mein Login/Register script läuft trotz ohne Fehler und ERROR nicht D: -
Du schließt deine Elemente falsch.
Entweder:oder
Danke , das hat soweit geklappt !
Jetzt jedoch habe ich noch einen weiteren ERROR entdecktExterner Inhalt img802.imageshack.usInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
Und da der Error da ist , funktioniert mein Login/Register script nicht...
Jedoch habe Ich doch wenn ich das richtig sehe da ein ,Ich hoffe , Ich gehe dir mit meinen Problemen nicht auf die Nerven *:D* *:S*
MfG
-
Nene... passt schon.... allerdings kann ich kein Fehler erkennen
Also der Error bedeutet das er die Meta.xml nicht lesen bzw. analysieren kann.
Vielleicht finden die anderen was ... sry
Kein Ding... Ich bin froh , dass mir überhaupt einer versucht zu helfen
MfG -
Stell mal kurz die Meta.xml rein...
Glaube da haste was falschExterner Inhalt img845.imageshack.usInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Oder verstehe Ich dich falsch und du meinst die Datei an sich ?
MfG -
Guten Abend liebe Community !
Nachdem ich jetzt den ganzen Tag an meinem Script für meinen Reallifeserver saß , habe ich seit meiner letzten Frage ein Login/Register system eingeführt.
Alles abgespeichert , in der meta.xml abgespeichert , soweit so gut.
Jetzt jedoch kommt/kommen leider folgender Fehler:Externer Inhalt img818.imageshack.usInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
So langsam bin ich echt erschöpft von den ganzen Fehlermeldungen *:D*
Aber niemand ist perfektIch hoffe auf eine hilfreiche Antwort !
MfG -
Wiedermal Hallo liebe Community!
Ich habe leider ein kleines Problem mit Navicat , was dazu führt , dass ich an meinem Server nicht weiterscripten kann !
Und zwar wollte ich gerade ein Table erstellen , ging soweit auch alles.
Doch als Ich dann mein Table speichern wollte , kam diese Meldung:1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Was soll Ich nun dagegen tun ?
Ich hoffe , Ihr könnte mir wiedermal helfen !
MfG -
Hast du auch fadeCamera verwendest um den Blackscreen beim Connection "verschwinden" zu lassen?
Verweis: Blackscreen beim Connecten
Ja , habe Ich... -
@Kulterboy: Hast du denn einen Spawn festgelegt ?
Ja , habe ich. -
Was fürn ein Script sonst??
Infos sind sehr hilfreich
Ich bin im Moment dabei , mein eigenes Script zu scripten -
Nö... muss es nicht......
Lase mich raten.... Vio??Nein , Kein Vio
-
Hallo liebe Community !
Es tut mir leid , dass ich das Forum so mit meinen Problemen zuspamme , aber dennnoch habe ich folgendes problem:
Wenn ich auf meinem Server connecten will , kommt nur ein Blackscreen.
Im Serverlog kommt jedoch keine ERROR Meldung.
Das mta_mysql.dll Modul kann er erfolgreich erkennen.Ich hoffe , jemand kann mir helfen !
PS: Ich weiß , dass es etwas mit der MYSQL Datenbank zu tun haben muss.
MfG