MySQL Accountsystem - Probleme

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
  • Wie heißt denn eigentlich die Spalte in der Tabelle?
    password oder passwort? Ich habe hier jetzt nämlich beide Varianten gesehen, wenn das nicht passt, dann würde es natürlich alle Fehler erklären. Prüfe das mal.

  • Beitrag von Pride ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • http://www11.pic-upload.de/30.04.15/6zx9tboiir7r.png
    Das ist das Bild welches du zuvor gepostet hast. Die Idee, mal die Feldlänge von "passwort" in der Tabelle zu prüfen kam mir beim Essen. Jetzt ist mir klar warum bei dir nichts geklappt hat, da muss man aber auch erst mal drauf kommen.
    Dein "passwort" Feld in der Datenbank ist zu klein. Du hast da nur 25 Zeichen drin, ein MD5 ist aber 32 Zeichen lang. Deshalb geht das nicht.


    Wenn du das hochsetzt, dann müsste es auch ganz normal mit dem MD5('%e') im Query klappen.
    Das erklärt auch, warum es ohne den Hash ging, weil dein Passwort weniger als 25 Zeichen hat.

  • Wenn du das hochsetzt, dann müsste es auch ganz normal mit dem MD5('%e') im Query klappen.
    Das erklärt auch, warum es ohne den Hash ging, weil dein Passwort weniger als 25 Zeichen hat.


    Danke danke danke, es funktioniert jetzt muss ich nur alles das Speichern hinbekommen wenn ich mich nämlich registriere und dann disc. steht in der Datenbank nur mein Passwort und Geschlecht auf 0 gesetzt alles andere steht auf 'NULL' hier mal ein Screen das blau durchgestrichene ist nicht wichtig.





    if(dialogid == DIALOG_CHAR3)
    {
    if(response)
    {
    if(strval(inputtext) > 0)
    {
    ShowPlayerDialog(playerid,DIALOG_CHAR4,DIALOG_STYLE_INPUT,"Charaktererstellung [4/5]","Wie ist dein Name? (Beispiel: Max Musermann)","Weiter","Abbrechen");
    pInfo[playerid][pAlter]=strval(inputtext);
    }
    }
    else
    {
    Kick(playerid);
    }
    }
    if(dialogid == DIALOG_CHAR4)
    {
    if(response)
    {
    if(strlen(inputtext)>=50)
    {
    ShowPlayerDialog(playerid,DIALOG_CHAR4,DIALOG_STYLE_INPUT,"Charaktererstellung [4/5]","Findest du nicht auch dein Name ist ein wenig lang?!\nNimm einen anderen Namen!","Weiter","Abbruch");
    }
    if(strlen(inputtext)<=3)
    {
    ShowPlayerDialog(playerid,DIALOG_CHAR4,DIALOG_STYLE_INPUT,"Charaktererstellung [4/5]","Findest du nicht auch dein Name ist ein wenig kurz?!\nNimm einen anderen Namen!","Weiter","Abbruch");
    }
    else
    {
    format(pInfo[playerid][pName],MAX_PLAYER_NAME,"%s",inputtext);

    new string[128];
    format(string,sizeof(string),"%s",pInfo[playerid][pName]);
    new Text3D:label = Create3DTextLabel(string, weiss, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7);
    SpielerSpeichern(playerid);
    SpawnPlayer(playerid);
    }
    }
    else
    {
    Kick(playerid);
    }
    }


    Dort werden Alter und Name gesetzt..



    /* Account Speichern und Laden */
    stock LoadAccount(playerid)
    {
    pInfo[playerid][pEingeloggt] = 1;
    SendClientMessage(playerid,gruen,"Account läd...");
    pInfo[playerid][pGeld] = cache_get_field_content_int(0, "Geld", Handle);
    pInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level", Handle);
    pInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Adminlevel", Handle);
    pInfo[playerid][pNeuling] = cache_get_field_content_int(0, "Neuling", Handle);
    pInfo[playerid][pGeschlecht] = cache_get_field_content_int(0, "Geschlecht", Handle);
    pInfo[playerid][pAlter] = cache_get_field_content_int(0, "Alter", Handle);
    GivePlayerMoney(playerid,pInfo[playerid][pGeld]);
    SetPlayerScore(playerid,pInfo[playerid][pLevel]);

    new tmp_name[MAX_PLAYER_NAME];
    cache_get_field_content(0,"Name",tmp_name,Handle);
    strmid(pInfo[playerid][pName],tmp_name,0,sizeof(tmp_name),sizeof(tmp_name));

    new string[128];
    format(string,sizeof(string),"%s",pInfo[playerid][pName]);
    new Text3D:label = Create3DTextLabel(string, weiss, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7);
    /*
    Info:
    cache_get_field_content_int für eine Zahl
    cache_get_field_content für einen String
    cache_get_field_content_float für eine Kommerzahl
    */
    return 1;
    }
    stock SpielerSpeichern(playerid)
    {
    if(!pInfo[playerid][pEingeloggt])return 1;
    new query[128];
    mysql_format(Handle, query, sizeof query, "UPDATE `user` SET `Geld`='%i',`Level`='%i',`Adminlevel`='%i',`Neuling`='%i',`Alter`='%i',`Name`='%s' WHERE `username`='%e'",GetPlayerMoney(playerid),GetPlayerScore(playerid),pInfo[playerid][pAdmin],pInfo[playerid][pNeuling],pInfo[playerid][pAlter],pInfo[playerid][pName],Spielername(playerid)),
    mysql_pquery(Handle, query, "", "");
    printf("%s",query);
    return 1;
    }

    - heftig abhängig von Karli Kugelblitz Choco Drinks

    4 Mal editiert, zuletzt von Pride ()

  • Ah, super. Das war diese Kleinigkeit von der ich sprach, die man ewig suchen kann.


    Das NULL heißt einfach nur, dass noch kein Wert gesetzt wurde.
    Und das ist, weil dein Query in SpielerSpeichern zu kurz ist.
    new query[128];
    zu:
    new query[256];


  • stock SpielerSpeichern(playerid)
    {
    if(!pInfo[playerid][pEingeloggt])return 1;
    new query[456];
    mysql_format(Handle, query, sizeof query, "UPDATE `user` SET `Geld`='%i',`Level`='%i',`Adminlevel`='%i',`Neuling`='%i',`Alter`='%i',`Name`='%s' WHERE `username`='%e'",GetPlayerMoney(playerid),GetPlayerScore(playerid),pInfo[playerid][pAdmin],pInfo[playerid][pNeuling],pInfo[playerid][pAlter],pInfo[playerid][pName],Spielername(playerid)),
    mysql_pquery(Handle, query, "", "");
    printf("%s",query);
    return 1;
    }


    Hatte ich zu:



    stock SpielerSpeichern(playerid)
    {
    if(pInfo[playerid][pEingeloggt])return 1;
    new query[456];
    mysql_format(Handle, query, sizeof query, "UPDATE `user` SET `Geld`='%i',`Level`='%i',`Adminlevel`='%i',`Neuling`='%i',`Alter`='%i',`Name`='%s' WHERE `username`='%e'",GetPlayerMoney(playerid),GetPlayerScore(playerid),pInfo[playerid][pAdmin],pInfo[playerid][pNeuling],pInfo[playerid][pAlter],pInfo[playerid][pName],Spielername(playerid)),
    mysql_pquery(Handle, query, "", "");
    printf("%s",query);
    return 1;
    }


    geändert also das if(pInfo[playerid][pEingeloggt])return 1; und nicht if(!pInfo[playerid][pEingeloggt])return 1;
    ist das logisch? oder hab ich da jetzt noch mehr falsch gemacht ^^

    - heftig abhängig von Karli Kugelblitz Choco Drinks

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen