Passwort abfrage mindst. Zeichen

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 habe ein Problem mit folgendem Scriptteil:



    if(dialogid == 14600)
    {
    if(response)
    {
    if(!strlen(inputtext) && strlen(inputtext) >= 4)
    {
    ShowPlayerDialog(playerid, 14600, DIALOG_STYLE_INPUT , "Registrieren", "Dieser Account ist nicht Registriert!", "Registrieren", "Verlassen");
    return SendClientMessage(playerid, 0xF60000AA, "* Gib nun dein Passwort ein!");
    }


    wenn ich joine kommt dieses fenster zum einloggen wenn ich enter drücke wird mein account registriert mit keinem pw also nur enter ist das pw wie muss ich es machen das ich mindst. 4 buchstaben eingeben muss im pw fenster und wenn ich enter drücke ohne eingabe die meldung kommt du brauchts mind. 4 buchstaben in deinem Passwort??

  • geht immer noch nicht wenn ich enter drücke wird der account direkt registriert ohne passwort


    habs nun so:



    if(dialogid == 14600)
    {
    if(response)
    {
    if(strlen(inputtext) >= 4)
    {
    ShowPlayerDialog(playerid, 14600, DIALOG_STYLE_INPUT , "Registrieren", "Dieser Account ist nicht Registriert!", "Registrieren", "Verlassen");
    return SendClientMessage(playerid, 0xF60000AA, "* Gib nun dein Passwort ein!");
    }

  • Hi


    Zeig mal die Funktion/Codeblock wo die DialogID gehandhabt wird. Meines Wissens darf man zudem nicht 2 Mal diesselbe DialogID verwenden, mach also aus dem 2.Dialog die 14601


    Registrierungsaufforderung: 14600
    Handhabund des Dialogs: 14601 oder Aufruf des Dialogs ausserhalb von 14600

  • habe keine doppelte ids es geht alles kann ein normales pw eingeben und kan mich danach normal einloggen ich will einfach das ein spieler mindst. 4 zeichen benutzen muss um sich einzuloggen aber das geht nicht -.- wenn ich enter drücke registriert er das pw nicht also hald enter^^



    if(dialogid == 14600)
    {
    if(response)
    {
    if(strlen(inputtext) >= 4)
    {
    ShowPlayerDialog(playerid, 14600, DIALOG_STYLE_INPUT , "Registrieren", "Dieser Account ist nicht Registriert. Bitte Registriere dich!", "Registrieren", "Verlassen");
    return SendClientMessage(playerid, 0xF60000AA, "* Gib nun dein Passwort ein!");
    }
    new year, month, day;
    getdate(year, month, day);
    mysql_real_escape_string(inputtext, escpass);
    WP_Hash(largestring, sizeof(largestring), escpass);
    GetPlayerIp(playerid, PIP, 50);
    mysql_query(Query);
    SendClientMessage(playerid, COLOR_GREEN, "* Erfolgreich Registriert. Du bist nun Eingeloggt.");
    SetPVarInt(playerid, "Logged", 1);
    }
    }
    if(dialogid == 15000)
    {
    if(response)
    {
    WP_Hash(largestring, sizeof(largestring), inputtext);
    format(Query, sizeof(Query), "SELECT * FROM `playerinfo` WHERE `user` = '%s' AND `password` = '%s' LIMIT 1", escpname(playerid), largestring);
    mysql_query(Query);
    mysql_store_result();
    new rows = mysql_num_rows();
    if(!rows)
    {
    SendClientMessage(playerid, 0xF60000AA, "* Falsches Passwort");
    SetPVarInt(playerid, "WrongPass", GetPVarInt(playerid, "WrongPass") + 1);
    ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT , "Einloggen", "Dieser Account ist Registriert. Bitte Logge dich ein!", "Einloggen", "Verlassen");
    if(GetPVarInt(playerid, "WrongPass") == 3)
    {
    SendClientMessage(playerid, 0xF60000AA, "* Du hast zu viele versuche mit falschem Passwort getätigt!");
    TogglePlayerControllable(playerid,false);
    Kick(playerid);
    }
    mysql_free_result();
    }
    else if(rows > 0)
    {
    if(mysql_fetch_row(line))
    {
    new savingstring[20];
    new data[3][55];
    new data2[5];
    sscanf(line, "p<|>s[50]s[300]dddds[50]ds[100]", data[0], largestring, data2[0], data2[1], data2[2], data2[3], data[2], data2[4], estring);
    mysql_query(Query);
    }
    }
    }
    }
    return 1;
    }

  • Hallo


    Ah jetzt ist der Sinn schon ganz anderst, dass ist eine "Abbruchfunktion" wegen einem zu kurzen Passwort (Ich dachte Du fragst ab, ob das Passwort länger als 4 ist und registirerst dann, wenn es kürzer als 4 ist kommt ein else Block, es ist aber so das Du den Dialog nochmals öffnet wenn es zu kurz ist).


    Mach aus

    Code
    if(strlen(inputtext) >= 4)


    bitte

    Code
    if(strlen(inputtext) <= 4)


    Ansonsten kannst Du dich nur mit einem Passwort kürzer als 4 registrieren

  • also ich habe ja dieses script wie oben


    ShowPlayerDialog(playerid, 14600, DIALOG_STYLE_INPUT , "Registrieren", "Dieser Account ist nicht Registriert. Bitte Registriere dich!", "Registrieren", "Verlassen");


    wenn ich auf register drücke registriere ich mich das klappt aber wenn ich auf verlassen klicke schliesst sich nur der dialog ich möchte aber das der spieler dan gekickt wird

  • Hallo


    So in der Art:


  • wenn ich mich nun registriert habe werde ich direkt gekickt^^




    GameTextForPlayer(playerid, "~g~REGISTRIERT", 3000, 3);
    SendClientMessage(playerid, COLOR_GREEN, "* Erfolgreich Registriert. Du bist nun Eingeloggt. Viel Spass!");
    SetPVarInt(playerid, "Logged", 1);
    }
    else
    {
    TogglePlayerControllable(playerid,false);
    Kick(playerid);
    }
    }