Beiträge von SteveDee

    Ich habe es doch mal mit der Methode von zerophr34k probiert.
    Erscheint mir als sinnvoller anstatt das extern per php zumachen.
    Sorry das ich so unnett war ^^
    Leider hab ich es wieder nicht ohne Fehler geschafft
    Habe es so probiert:


    format(bedienung,sizeof(bedienung),"username='%s'",pName);
    mysqlget("wcf1_user",bedienung,"salt",data);
    mysqlget("wcf1_user",bedienung,"password",passwort);
    if(strcmp(getSaltedHash(inputtext, data),passwort,false) == 0)
    {
    Accounts laden


    stock getSaltedHash(string[], salt[])
    {
    new string3[41],gehashed[41];
    sha1(string,gehashed);
    format(string3,sizeof(string3),"%s%s",salt,gehashed);
    sha1(string3,gehashed);
    format(string3,sizeof(string3),"%s%s",salt,gehashed);
    sha1(string3,gehashed);
    return gehashed;
    }


    Leider kommt dabei nicht das Passwort raus das in der DB steht :(


    Datenbank :

    8da47270d02835b0c33d6e92bf8f9e5d4ef43101
    Nach Pawn Code: d6bffa9bdda9dd1f9c4edc498f2dae3a92f70321


    Benutze das Plugin das

    zabus vorgeschlagen hat.


    Ich hoffe ihr wisst was ich falsch gemacht habe.


    Mit freundlichen Grüßen
    Steph12



    PS: Nochmal sorry für meinen Ton und die "!!!"


    Edit: Was weggemacht was zweimal da war
    Edit2: Neue Frage , da ich das alte selber gelöst habe

    Ich hab das Passwort doch schon !!!!!
    Brauch den SHA1 Teil nicht!
    Will nur wissen wie ich das mit der IF Abfrage mache da das so wie ich das Probiert habe nicht ging.
    So hier nochmal alles Codes:


    Inputtext wird an die Website gesendet.
    if(dialogid == DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst dich einloggen bevor du bei uns spielen kannst.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Geben sie ihr Benutzerpasswort ein","Login","Abbrechen");
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst ein Passwort eingeben,bevor du dich einloggen kannst!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Geben sie ihr Benutzerpasswort ein","Login","Abbrechen");
    return 1;
    }
    else
    {
    new data[60];
    new bedienung[50];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
    format(bedienung,sizeof(bedienung),"username='%s'",pName);
    mysqlget("wcf1_user",bedienung,"salt",data);
    format(string,sizeof(string),"www.nightlife-rp.square7.ch/gethash_stephan.php?pw=%s&dbsalt=%s",inputtext,data);
    HTTP(playerid,HTTP_GET,string,"","ReturnSHA1");
    }
    }
    return 1;
    }


    Antwort der Website+ überprüfen des Passworts ( Hier brauche ich Hilfe beim vergleichen)
    public ReturnSHA1(index,response_code,data[])
    {
    new buffer[ 128 ];
    if(response_code == 200) //Did the request succeed?
    {
    //Yes!
    format(buffer, sizeof(buffer), "Die URL gibt: %s zurück", data);
    SendClientMessage(index, 0xFFFFFFFF, buffer);
    new data2[60];
    new bedienung[50];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(index,pName,MAX_PLAYER_NAME);
    format(bedienung,sizeof(bedienung),"username='%s'",pName);
    mysqlget("wcf1_user",bedienung,"password",data2);
    if(!strcmp(data,data2,true))
    {
    SendClientMessage(index,COLOR_GREEN,"Du hast dich erfolgreich eingeloggt.");
    LoadAccount(index);
    return 1;
    }
    else
    {
    SendClientMessage(index,COLOR_RED,"Falsches Passwort.");
    ShowPlayerDialog(index,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Geben sie ihr Benutzerpasswort ein","Login","Abbrechen");
    return 1;
    }
    }
    else
    {
    //No!
    format(buffer, sizeof(buffer), "Verbindung fehlgeschlagen! Error Code: %d", response_code);
    SendClientMessage(index, 0xFFFFFFFF, buffer);
    }
    return 1;
    }


    if(!strcmp(data,data2,true)) Das funktioniert nicht. Da steht immer : Falsches Passwort.


    So dann noch der PHP Teil

    PHP
    <?php
    
    
    $pw = $_GET['pw'];
    $dbsalt = $_GET['dbsalt'];
    $hashedpw = sha1($dbsalt.sha1($dbsalt.sha1($pw)));
    echo $hashedpw;
    ?>


    Jetzt will ich nur wissen wie ich das : if(!strcmp(data,data2,true)) zum funktionieren bekomme !


    Mit freundlichen Grüßen
    Steph12 :)

    Wollte eigentlich nicht alles so kompliziert machen und umwerfen :D
    Wollte eigentlich nur wissen wie ich die Werte vergleiche.
    Weil mit der oben genannten Methode hat es ja nicht funktioniert.



    Mit freundlichen Grüßen
    Steph12 :)


    Edit: Den PHP Code und alles habe ich ja
    Das funktioniert auch.
    Bekomme das PW das in der DB steht.

    public ReturnSHA1(index,response_code,data[])
    {
    new buffer[ 128 ];
    if(response_code == 200) //Did the request succeed?
    {
    //Yes!
    format(buffer, sizeof(buffer), "Die URL gibt: %s zurück", data);
    SendClientMessage(index, 0xFFFFFFFF, buffer);
    new data2[60];
    new bedienung[50];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(index,pName,MAX_PLAYER_NAME);
    format(bedienung,sizeof(bedienung),"username='%s'",pName);
    mysqlget("wcf1_user",bedienung,"password",data2);
    //Hier dann der Vergleich

    Habe es jetzt so weit das das gehashte PW ankommt.
    Jetzt muss ich das nur noch mit dem in der DB vergleichen.
    Habe es so : new passwort[60];
    format(passwort, sizeof(passwort), "%s", data);
    if(passwort == data2)
    Da kam ein Error: error 033: array must be indexed (variable "passwort")


    und so : if(!strcmp(data,data2,true))
    Hier kam immer falsches passwort


    Das soll nach dem oben genannten kommen:
    if(!strcmp(data,data2,true))
    {
    SendClientMessage(index,COLOR_GREEN,"Du hast dich erfolgreich eingeloggt.");
    LoadAccount(index);
    return 1;
    }
    else
    {
    SendClientMessage(index,COLOR_RED,"Falsches Passwort.");
    ShowPlayerDialog(index,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Geben sie ihr Benutzerpasswort ein","Login","Abbrechen");
    return 1;
    }


    Mit freundlichen Grüßen
    Steph12 :)



    Edit: Etwas hinzugefügt

    Ich bekomme jetzt zwa eine Antwort vom PhpScript aber nicht die richtige.
    Irgendwie kommt nicht das richtige raus:


    Php Code

    PHP
    <?php
    
    
    $pw = $_GET["pw"];
    $dbsalt = $_GET["salt"];
    
    
    $hashedpw = sha1($dbsalt.sha1($dbsalt.sha1($pw)));
    echo $hashedpw;


    Und nun der Pawn Code:
    new data[60];
    new bedienung[50];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
    format(bedienung,sizeof(bedienung),"username='%s'",pName);
    mysqlget("wcf1_user",bedienung,"salt",data);
    format(string,sizeof(string),"?pw=%s&dbsalt=%s",inputtext,data);
    HTTP(playerid,HTTP_GET,"www.nightlife-rp.square7.ch/gethash_stephan.php",string,"ReturnSHA1");
    if(!strcmp(data,temphash[playerid],false))
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dich erfolgreich eingeloggt.");

    public ReturnSHA1(index,response_code,data[])
    {
    new buffer[ 128 ];
    if(response_code == 200) //Did the request succeed?
    {
    //Yes!
    format(temphash[index],128,"%s",data);
    format(buffer, sizeof(buffer), "Die URL gibt: %s zurück", data);
    SendClientMessage(index, 0xFFFFFFFF, buffer);
    }
    else
    {
    //No!
    format(temphash[index],128,"",data);
    format(buffer, sizeof(buffer), "Verbindung fehlgeschlagen! Error Code: %d", response_code);
    SendClientMessage(index, 0xFFFFFFFF, buffer);
    }
    }


    Bitte helft mir doch ;(


    Mit freundlichen Grüßen
    Steph12

    Steht doch oben alles :D


    So sieht mein PHP Code aus



    Mit freundlichen Grüßen
    Steph12 :)

    1. Die MYSQL Datenbank liegt auch nicht bei square7, da habe ich nur die Datei hochgeladen da es woanders Probleme gab.
    2.Wie setzte ich dieses PHP Script in Pawn um ? Wenn ich es wüsste hätte ich es direkt gemacht


    Es wäre schön wenn mir das jemand machen oder erklären könnte wie ich den Code in Pawn umsetzte.


    Mit freundlichen Grüßen
    Steph12 :)

    Hab das mal so probiert:


    new data[60];
    new data2[60];
    new bedienung[50];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
    format(bedienung,sizeof(bedienung),"username='%s'",pName);
    mysqlget("wcf1_user",bedienung,"salt",data);
    format(string,sizeof(string),"pw=%s&dbsalt=%s",inputtext,data);
    HTTP(playerid,HTTP_GET,"www.nightlife-rp.square7.ch/gethash_stephan.php",string,"ReturnSHA1");
    mysqlget("wcf1_user",bedienung,"password",data2);
    printf("pw: %s, salt: %s, gehashtes passwort: %s, pw in der db gehasht: %s",inputtext, data, temphash[playerid], data2);
    if(!strcmp(data,temphash[playerid],false))


    Die Public
    public ReturnSHA1(index,response_code,data[])
    {
    if(response_code == 200)
    {
    format(temphash[index],128,"%s",data);
    }
    else
    {
    format(temphash[index],128,"",data);
    printf("code:%d, data:%s",response_code,data);
    }
    }


    Und den PHP Code


    Könnt ihr mir sagen was ich falsch gemacht habe?


    Mit freundlichen Grüßen
    Steph12 :)

    Laden tuhe ich die Sachen ja schon aber ich muss das PW das man beim einloggen eingibt ja noch verschlüsseln.
    Jemand eine Idee wie ich das Salt verschlüsseln kann?


    Mit freundlichen Grüßen
    Steph12 :)

    Ich habe vor den Server mit WBB zu verbinden.
    Ich möchte das man Ingame das Passwort hat was man im Forum bei der Registration eingibt.
    Leider habe ich es nicht geschafft.
    Ich habe probiert das eingegebene Passwort im Logindialog zu verschlüsseln.
    Nur mit der Methode kommt ein anderer Code raus als in der DB steht und es funktioniert nicht:


    new buffer[128];
    SHA512(inputtext, buffer, sizeof(buffer));
    format(string,sizeof(string),"Passwort : %s",buffer);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    if(!strcmp(data,buffer,false))


    Vielleicht weis ja einer von euch eine Methode.



    Mit freundlichen Grüßen
    Steph12 :)

    [17:32:26] MySQL Debugging activated (01/30/11)


    [17:32:26] ---------------------------


    [17:32:26]


    [17:32:53] >> mysql_query( Connection handle: 1 )


    [17:32:53] CMySQLHandler::Query(INSERT INTO spieler (Name,Passwort) VALUES ('Steph12', MD5('Deutschland'))) - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Steph12', MD5('Deutschland'))' at line 1)


    [17:32:53] >> mysql_free_result( Connection handle: 1 )


    [17:32:53] CMySQLHandler::FreeResult() - The result is already empty.

    Hey habe ein Problem mit MYSQL.


    Bei dem folgendem Code passiert einfach gar nichts :
    GetPlayerName(playerid,sendername,sizeof(sendername));
    new query[256];
    format(query,sizeof(query),"INSERT INTO spieler (Name,Passwort) VALUES ('%s', MD5('%s'))",sendername, inputtext);
    mysql_query(query);
    mysql_free_result();


    Könnt ihr mir vielleicht helfen ?
    Errors bekomme ich keine aber in der Datenbank steht auch nichts.


    Mit freundlichen Grüßen
    Steph12 :)

    C:\Users\Stephan\Desktop\Meine Sachen\Grand Theft Auto San Andreas\gamemodes\Selfmade2.pwn(6672) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    Das kommt dabei raus.


    Mit freundlichen Grüßen
    Steph12

    if(dialogid == ueberweisung)
    {
    if(response == 1)
    {
    bekommid = strval(inputtext);
    if(!IsPlayerConnected(bekommid))
    {
    ShowPlayerDialog(playerid,ueberweisung,DIALOG_STYLE_INPUT,"Überweisung","Gib an wem du Geld übrweisen willst","OK","Abbrechen");
    SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht online!");
    }
    if(bekommid==playerid)
    {
    SendClientMessage(playerid,COLOR_RED,"Du kannst dir kein Geld Überweisen");
    ShowPlayerDialog(playerid,ueberweisung,DIALOG_STYLE_INPUT,"Überweisung","Gib an wem du Geld übrweisen willst","OK","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,207,DIALOG_STYLE_INPUT,"","Wieviel möchtest du überweisen?","Weiter","Menü");
    }
    }
    return 1;
    }
    if(dialogid == 207) // Wieviel Überweisen
    {
    if(response == 1)
    {
    new uberweisen = strval(inputtext);
    if(SpielerInfo[playerid][uKonto] > uberweisen)
    {
    SpielerInfo[playerid][uKonto] -= uberweisen;
    SpielerInfo[bekommid][uKonto] += uberweisen;
    format(string, sizeof(string), " Du hast $%d an %s überwiesen.", uberweisen, bekommid);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    format(string, sizeof(string), " Du hast $%d von %s überwiesen bekommen.", uberweisen,playerid);
    SendClientMessage(bekommid, COLOR_GRAD1, string);
    format(string, sizeof(string), "%s gibt $%d zu %s", playerid, uberweisen, bekommid);
    printf("%s", string);
    PlayerPlaySound(bekommid, 1052, 0.0, 0.0, 0.0);
    }
    return 1;
    }
    return 1;
    }


    Immer wenn man einen Namen eingibt kommt: Du kannst dir kein Geld Überweisen
    Und wenn man eine Zahl eingibt kommt: Der Spieler ist nicht online


    Könnt ihr mir bitte helfen?


    Mit freundlichen Grüßen
    Steph12 :)

    Ich habe mir ein TextDraw mit einer Tankanzeige erstellt.
    Das funktioniert auch nur leider spawnen alle Fahrzeuge mit 0 Tank.
    Hab bei public OnVehicleSpawn(vehicleid)
    {
    Benzin[vehicleid] = BenzinMax;
    return 1;
    }
    Meine gespawnten Autos haben dann auch 100 Benzin nachdem sie zerstört wurden nur meine Fraktionscars haben immer 0.
    Ich hoffe ihr könnt mir helfen.


    Mit freundlichen Grüßen
    Steph12 :)

    Ich wollte eine Ticketsystem erstellen doch leider funktioniert es nicht.
    Ich würde gerne wenn ein User /melden macht die Meldung in einer externen Datei speichern.
    Bei den Admins soll dann ein TextDraw stehen mit z.B.: Cheater Meldung von Steph12
    Das Textdraw zu erstellen ist ja nicht das Problem nur wie schaffe ich es den gespeicherten text + Externe Überschrift(Cheater Meldung oder Spieler Meldung) aus der Datei zuladen?
    Habe es erstmal mit einem Command probiert /tickets.
    Doch es passiert gar nichts, das Chatfeld geht einfach nur ein Feld nach oben.
    Ich bitte um Hilfe.
    Hier mein Code: Einmal die Commands
    if(strcmp(cmd, "/melden", true) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_MELDEN,DIALOG_STYLE_LIST,"Melden","Spieler Meldung\nCheater Meldung\nBug Meldung\nAllgemeine Meldung","Bestätigen","Abbrechen");
    return 1;
    }
    if(strcmp(cmd, "/tickets", true) == 0)
    {
    if(IsPlayerAdmin(playerid) || SpielerInfo[playerid][uAdmin] > 2)
    {
    new Ticket2;
    new Tickets[256];
    format(Tickets,sizeof(Tickets),"/Tickets.cfg");
    Ticket2 = dini_Int(Tickets,"Meldung");
    format(string, sizeof(string),"%d",Ticket2);
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    return 1;
    }
    Den Dialog:
    if(dialogid == DIALOG_MELDEN)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0:
    {
    ShowPlayerDialog(playerid,DIALOG_MELDEN_TEXT,DIALOG_STYLE_INPUT,"Melden","Tippe hier den Grund deiner Meldung","Bestätigen","Abbrechen");
    Meldung[playerid] = 1;
    }
    case 1:
    {
    ShowPlayerDialog(playerid,DIALOG_MELDEN_TEXT,DIALOG_STYLE_INPUT,"Melden","Tippe hier den Grund deiner Meldung","Bestätigen","Abbrechen");
    Meldung[playerid] = 2;
    }
    case 2:
    {
    ShowPlayerDialog(playerid,DIALOG_MELDEN_TEXT,DIALOG_STYLE_INPUT,"Melden","Tippe hier den Grund deiner Meldung","Bestätigen","Abbrechen");
    Meldung[playerid] = 3;
    }
    case 3:
    {
    ShowPlayerDialog(playerid,DIALOG_MELDEN_TEXT,DIALOG_STYLE_INPUT,"Melden","Tippe hier den Grund deiner Meldung","Bestätigen","Abbrechen");
    Meldung[playerid] = 4;
    }
    }
    }
    return 1;
    }
    if(dialogid == DIALOG_MELDEN_TEXT)
    {
    if(response)
    {
    new name[50];
    GetPlayerName(playerid,name,sizeof(name));
    if(Meldung[playerid] == 1)
    {
    format(string, sizeof(string), " Spieler Meldung von %s : %s ",name,inputtext);
    new Tickets[256];
    format(Tickets,sizeof(Tickets),"/Tickets.cfg");
    dini_Create(Tickets);
    dini_Set(Tickets,"Meldung",string);
    }
    if(Meldung[playerid] == 2)
    {
    format(string, sizeof(string), " Cheater Meldung von %s : %s ",name,inputtext);
    new Tickets[256];
    format(Tickets,sizeof(Tickets),"/Tickets.cfg");
    dini_Create(Tickets);
    dini_Set(Tickets,"Meldung",string);
    }
    if(Meldung[playerid] == 3)
    {
    format(string, sizeof(string), " Bug Meldung von %s : %s ",name,inputtext);
    new Tickets[256];
    format(Tickets,sizeof(Tickets),"/Tickets.cfg");
    dini_Create(Tickets);
    dini_Set(Tickets,"Meldung",string);
    }
    if(Meldung[playerid] == 4)
    {
    format(string, sizeof(string), " Allgemeine Meldung von %s : %s ",name,inputtext);
    new Tickets[256];
    format(Tickets,sizeof(Tickets),"/Tickets.cfg");
    dini_Create(Tickets);
    dini_Set(Tickets,"Meldung",string);
    }
    }
    return 1;
    }


    Mit freundlichen Grüßen
    Steph12 :)