Passwortabfrage

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Community,
    ich habe einmal eine Frage. Ist es möglich mit MySQL eine Abfrage zu erstellen, nach einem Passwort zu fragen, bevor man in den /aduty Modus gehen kann?


    Ich hatte es in meinem damaligen Script so :


    ganz oben den dialog definiert:


    enum
    {
    DIALOG_ADMINLOGIN
    };


    COMMAND:aduty(playerid,params[])
    {
    new Wert[40],String[128];
    if(SpielerInfo[playerid][Admin] == 1) { Wert = "Supporter"; }
    if(SpielerInfo[playerid][Admin] == 2) { Wert = "Moderator"; }
    if(SpielerInfo[playerid][Admin] == 3) { Wert = "Admin"; }
    if(SpielerInfo[playerid][Admin] == 4) { Wert = "Super Administrator"; }
    if(SpielerInfo[playerid][Admin] == 5) { Wert = "Servermanager"; }
    if(SpielerInfo[playerid][Admin] == 6) { Wert = "Stllv. Serverleiter"; }
    if(SpielerInfo[playerid][Admin] == 7) { Wert = "Serverleiter"; }


    if(SpielerInfo[playerid][Admin] >= 1)
    {
    if(GetPVarInt(playerid,"AdminDuty"))
    {
    //Adminlogin[playerid] = 0;
    SetPVarInt(playerid,"AdminDuty",0);
    GameTextForPlayer(playerid,"~r~Administrator Logout",3000,4);
    format(String,sizeof(String),"{FFFFFF}[%s] ist nun nichtmehr als %s im {FFFFFF}Dienst.",SpielerName(playerid),Wert);
    SendClientMessageToAll(Rot,String);
    DeletePVar(playerid,"AdminDuty");
    return 1;
    }
    else
    {
    format(String,sizeof(String),"%s: Einloggen",Wert);
    ShowPlayerDialog(playerid,DIALOG_ADMINLOGIN,DIALOG_STYLE_INPUT,String,"Bitte Melde dich nun im: \nControl Panel mit dem Administrator Passwort an!","Anmelden","Verlassen");
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist kein Administrator!");
    }
    return 1;
    }


    der Dialog unter ondialogresponse :



    case DIALOG_ADMINLOGIN:
    {
    if(response)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_ADMINLOGIN,DIALOG_STYLE_INPUT,"Passwort Fehlt!","Bitte gebe ein Administrator Passwort ein!","Anmelden","Verlassen");
    return 1;
    }
    new Wert[40],String[128];
    if(SpielerInfo[playerid][Admin] == 1) { Wert = "Supporter"; }
    if(SpielerInfo[playerid][Admin] == 2) { Wert = "Moderator"; }
    if(SpielerInfo[playerid][Admin] == 3) { Wert = "Admin"; }
    if(SpielerInfo[playerid][Admin] == 4) { Wert = "Super Administrator"; }
    if(SpielerInfo[playerid][Admin] == 5) { Wert = "Servermanager"; }
    if(SpielerInfo[playerid][Admin] == 6) { Wert = "Stllv. Serverleiter"; }
    if(SpielerInfo[playerid][Admin] == 7) { Wert = "Serverleiter"; }

    if(!strcmp(inputtext,"hierdeinpasswort",true))//Hier kannst du dein Passwort aussuchen was du haben möchtest um /aduty benutzen zu können !
    {
    SetPVarInt(playerid,"AdminDuty",1);
    GameTextForPlayer(playerid,"~g~Administrator Login",3000,4);
    format(String,sizeof(String),"{FFFFFF}%s: ist nun im %s {FFFFFF}Dienst.",SpielerName(playerid),Wert);
    SendClientMessageToAll(Gelb,String);
    return 1;
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_ADMINLOGIN,DIALOG_STYLE_INPUT,"Passwort Falsch!","Bitte gebe das richtige Administrator Passwort ein!","Anmelden","Verlassen");
    }
    return 1;
    }
    if(!response)
    {
    SendClientMessage(playerid,Rot,"Control Panel Login Dialog geschlossen!");
    }
    return 1;
    }


    Ich hoffe ich konnte dir weiter helfen :thumbup:


    //Edit +

  • Das soll nochmal zur zusätzlichen Sicherheit dienen. Wenn das RCON z.B rausgefunden wird können die immerhin nicht /aduty gehen und die Befehle ausführen.

    Wieso setzt du nicht einfach beim Login einen Rank fest und fragst es mit Hilfe des Ranks ab ?
    Sicherer und schneller kann ich es mir nicht vorstellen.

  • es gibt eine viel bessere sache. Du speicherst das Adminlevel wo ab und wenn man sich einloggt kannst es ja dann so machen das man erst das Normale Spielerpasswort eintippen muss dann geht er die Accounts durch und wenn wer admin hat muss der sich noch mal einloggen


    Er hat aber folgendes geschrieben er möchte sicherlich ein Passwort festlegen damit nur die leute in den /aduty dienst gehen können die sein selbst gewähltes Passwort haben um in den Admindienst gehen zu können.


    Zitat

    Hallo Community,


    ich habe einmal eine Frage. Ist es möglich mit MySQL eine Abfrage zu
    erstellen, nach einem Passwort zu fragen, bevor man in den /aduty Modus
    gehen kann?

    //Edit den es könnte ja z.B der Serverbesitzer/Serversponsor wo der Samp Server drauf läuft sich selbst Rechte geben in der Datebank und um dies zu vermeiden ist es garnicht mal
    so schlecht sich ein passwort für den /aduty dienst um Adminbefehle ausführen zu können festzulegen im Script :thumbup:
    (Aber man sollte natürlich schon seinem hoster/sponsor vertrauen) :P

  • Dann kann man das Passwort ja auch in einer Variable (wie bei alle anderen Spielerdaten) speichern und dann einfach einen Dialog erstellen bei welchen man das Passwort eingibt. Stimmt das Passwort überein, kann man in den Dienst gehen. Ich möchte trotzdem nicht verstehen, was es bringen soll, wenn man ohne das Passwort sich erst recht nicht einloggen kann und wer sich einloggt, sollte ja das Passwort kennen.

  • Edit den es könnte ja z.B der Serverbesitzer/Serversponsor wo der Samp Server drauf läuft sich selbst Rechte geben in der Datebank und um dies zu vermeiden ist es garnicht mal
    so schlecht sich ein passwort für den /aduty dienst um Adminbefehle ausführen zu können festzulegen im Script :thumbup:
    (Aber man sollte natürlich schon seinem hoster/sponsor vertrauen)

    Caglar:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das System von _AEROX_ ist schon so wie ich das meinte, da hat er vollkommen recht. Ich hätte das nur gerne so, dass wenn man sich 1x ausloggt das bis zum nächsten Login gespeichert wird. Jedes mal wieder eingeben ist auch nervig.


    Und Caglar:


    if(!strcmp(inputtext,"hierdeinpasswort",true))


    Da ist doch die Abfrage nach einem Passwort was ICH wählen kann? Oder vestehe ich dich jetzt falsch?

  • Natürlich, aber nur weil @_AEROX_: dir ein Beispiel gezeigt hat heißt es nicht gleich, dass es auch das war was du wolltest.


    Es wäre aber schön wen man seinen "Senf" dazu gibt bei einem Thread auch mal zu lesen was andere so schreiben denn was ist wen jemand vorher eine Lösung gepostet hat die du dann auch wieder postest ^^ naja will hier jetz auch keine Diskussionsrunde entfachen ist ja korrekt das du auch helfen willst :thumbup: