Servus,
ich wollte mal fragen wie man ein Benutzersystem mit MySQL in Autohotkey macht
Grüße
Servus,
ich wollte mal fragen wie man ein Benutzersystem mit MySQL in Autohotkey macht
Grüße
Hast du überhaupt schon irgendwie damit angefangen?
Wie stellst du dir es vor ein "Benutzersystem", meinst du eines mit Lizenzen?
Du brauchst auf jeden Fall eine Schnittstelle. Auf gar keinen Fall von AHK direkt auf die Datenbank verbinden.
Für die Schnittstelle kannst du entweder PHP oder NodeJS verwenden, wobei ich zweiteres empfehlen würde.
Ebenso würde ich anstatt MySQL eine MongoDB verwenden.
Nein ich habe noch nicht angefangen.
Halt wo ich Benutzer erstellen und löschen kann. Ebenso Ränge zuweißen und mit Passwort.
Gibt es da spezielle API‘s für AHK?
Die API ist ganz einfach, such einfach mal nach "NodeJS RESTful API" oder "PHP RESTful API" - je nachdem was dir mehr liegt. Vielleicht noch der MySQL Tag dazu.
Über AHK arbeitest du dann mit UrlDownloadToFile, nur dass du das File nachdem du es ausgewertet hast wieder löscht.
Soweit ich mich erinnern kann, gab es mal eine MySQL API für AHK (von einem User aus der SA-MP Community). Wie sicher die ist, kann ich dir nicht sagen.
Der beste Weg wäre halt wie xinnu bereits gesagt hat, eine eigene REST API zu schreiben (NodeJS bietet sich da gut an). Wenn das ganze noch dynamischer sein sollte könntest du dir eventuell mal Websockets anschauen.
Soweit ich mich erinnern kann, gab es mal eine MySQL API für AHK (von einem User aus der SA-MP Community). Wie sicher die ist, kann ich dir nicht sagen.
Der beste Weg wäre halt wie xinnu bereits gesagt hat, eine eigene REST API zu schreiben (NodeJS bietet sich da gut an). Wenn das ganze noch dynamischer sein sollte könntest du dir eventuell mal Websockets anschauen.
Du meinst die improv3d API
Die hat aber massive Sicherheitslücken soweit ich mich erinnere
Also lieber ne eigene API schreiben - die kannst du auch auf deine eigenen Konditionen anpassen.
Beste Grüße
Bitte um hilfe
#IfWinActive GTA:SA:MP
#Include %A_ScriptDir%\API\SAMP.ahk
#Include %A_ScriptDir%\API\improv3d.ahk
Gui, Add, Picture, x-8 y-1 w630 h340 , C:\Users\Marcel\Desktop\Keybinder\Grove Street\Images\Background.jpg
Gui, Add, Button, x212 y259 w210 h30 +Center gLogin, Login
Gui, Add, Edit, x212 y159 w210 h30 +Center vBenutzername, Benutzername
Gui, Add, Edit, x212 y79 w210 h30 +Center +Password vPasswort, Passwort
Gui, Add, Button, x212 y299 w210 h20 +Center +BackgroundTrans, Passwort vergessen
Gui, Add, CheckBox, x212 y219 w210 h30 +Center +BackgroundTrans, Passwort Speichern?
Gui, Show, w624 h340, Login ~ ***** | ****
return
Login:
Gui, Submit, nohide
If(Benutzername != "" and Passwort != "")
{
done : imp_read("accounts", Benutzername, "Name")
If(done == Benutzername)
{
PW := imp_read("accounts", Benutzername, "Passwort")
If(PW == Passwort)
{
MsgBox, %Passwort% Richtig!
} else {
MsgBox, %Passwort% Falsch!
}
}
else {
MsgBox, %done% wurde auf der Whitelist nicht gefunden!
Reload
}
} else {
MsgBox, Der Nutzername ist leer!
Reload
}
return
GuiClose:
ExitApp
Alles anzeigen
Hab zwar eigentlich keine Ahnung von AHK,
aber in der Zeile 21 machst du es doch auch := und nicht :
Da ist wahrscheinlich der Fehler.
Also die Zeile wäre dann:
done := imp_read("accounts", Benutzername, "Name")
#IfWinActive GTA:SA:MP
#SingleInstance force
#NoTrayIcon
#Include %A_ScriptDir%\API\SAMP.ahk
#Include %A_ScriptDir%\API\improv3d.ahk
;Gui, Add, Picture, x-8 y-1 w1210 h630 , C:\Users\Marcel\Desktop\Keybinder\Grove Street\Images\StartBackground.png
;Gui, Show, w1202 h628, Untitled GUI
;return
Gui, Add, Picture, x-8 y-1 w630 h340 , C:\Users\Marcel\Desktop\Keybinder\Grove Street\Images\Background.jpg
Gui, Add, Button, x212 y259 w210 h30 +Center gLogin, Login
Gui, Add, Edit, x212 y79 w210 h30 +Center +Password vuser, Benutzer
Gui, Add, Edit, x212 y159 w210 h30 +Center +Password vpass, Passwort
Gui, Add, Button, x212 y259 w210 h30 +Center gLogin, Login
Gui, Add, Button, x212 y299 w210 h20 +Center +BackgroundTrans, Passwort vergessen
Gui, Add, CheckBox, x212 y219 w210 h30 +Center +BackgroundTrans, Passwort Speichern?
Gui, Show, w624 h340, Login ~ Grove Street Family | Marcel_Colbetti
return
Login:
Gui, Submit, nohide
GuiControlGet, UserPasswort ,,pass
GuiControlGet, UserName ,,user
DatenbankID := imp_read_where("accounts", "Benutzername", UserName)
if(imp_row_exist(DatenbankID))
{
if(imp_compare(DatenbankID, "Passwort", UserPasswort))
{
MsgBox, 0, Du wurdest eingeloggt!
return
} else {
MsgBox, 0, Fehler, Das angegebene Passwort ist falsch!
}
} else {
MsgBox, 0, Fehler, Der angegebene Benutzer ( %UserName% ) existiert nicht in der Datenbank!
}
return
GuiClose:
ExitApp
Alles anzeigen
Wenn ich mich versuche einzuloggen kommt die ganze Zeit, dass der User nicht existiert...
Die Doku ist echt madig aber ich glaube
DatenbankID := imp_read_where("name", UserName, "accounts")
Funktioniert immernoch nicht.
Login:
Gui, Submit, nohide
GuiControlGet, UserPasswort ,,pass
GuiControlGet, UserName ,,user
DatenbankID := imp_read_where("Benutzername", UserName, "accounts")
if(imp_row_exist(DatenbankID))
{
if(imp_compare(DatenbankID, "Passwort", UserPasswort))
{
MsgBox, 0, Du wurdest eingeloggt!
return
} else {
MsgBox, 0, Fehler, Das angegebene Passwort ist falsch!
}
} else {
MsgBox, 0, Fehler, Der angegebene Benutzer ( %UserName% ) existiert nicht in der Datenbank!
}
return
Alles anzeigen
Kannst du das ganze Projekt via GIT bereitstellen? Du kannst mir den Link auch gerne Privat zukommen lassen.
Ich denke dass die Schnittstelle auf deinem Server nicht die richtige Antwort liefert