Login/Register Funktion Typemismatch & array must be indexed Error

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
  • Zitat

    C:\Program Files (x86)\SAMP\gamemodes\*****(243) : error 035: argument type mismatch (argument 3)
    C:\Program Files (x86)\SAMP\gamemodes\*****(265) : error 033: array must be indexed (variable "MD5_Hash")

    243:


    dini_IntSet(save,"passwort",MD5_Hash(strget(cmdtext,1)));


    265:
    if(strval(s2)== MD5_Hash(strget(cmdtext,1)))


    Ich hab echt keine Ahnung warum das nicht geht '-.- Hoffe mir kann einer Helfen :thumbup:


    Mit udb_hash() geht es aber mit MD5_Hash nicht '-.-

    Einmal editiert, zuletzt von GooMan ()

  • Das muss dini_Set sein weils ein string ist und kein Integer

  • Zeig uns dochmal die ganze Login/Register Funktion, dann können wir dir besser helfen ;)


    mfg

  • if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save, sizeof(save),"Spieler/%s.ini",spieler);
    if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
    {
    dini_Create(save); // Erstelle eine Neue .ini Datei
    dini_Set(save,"passwort",MD5_Hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegebne hat)
    SendClientMessage(playerid, COLOR_GREEN, "***Dein Account wurde erfolgreich registriert***");
    SendClientMessage(playerid, COLOR_GREEN, "***Nutze /login [Passwort] um dich einzuloggen***");
    }
    else
    {
    if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
    {
    SendClientMessage(playerid, COLOR_RED, "Der Account ist bereits registriert");
    Kick(playerid); // Kick den Spieler
    }}
    return 1;
    }


    if(strcmp(strget(cmdtext,0), "/login", true) == 0)
    {
    new save[40], s2[256];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(dini_Exists(save))
    {
    s2=dini_Get(save,"passwort");
    if(strval(s2)== MD5_Hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt
    {
    loggedin[playerid] = true;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "***Du hast dich erfolgreich eingeloggt***");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Passwort Falsch!");
    }}
    return 1;
    }


    das ist das :)

    Einmal editiert, zuletzt von GooMan ()

  • Versuchs mal so:


    ersetze das:
    if(strval(s2)== MD5_Hash(strget(cmdtext,1)))


    mit dem:
    if(strcmp(s2),MD5_Hash(strget(cmdtext,1)),true)==0)

  • hust xD


    geht immer noch nicht -.- ich hab echt keine ideen mehr :(

    3 Mal editiert, zuletzt von GooMan ()