egal was für ein passwort ich eingebe immer dasselbe und wenn ich es falsch eingebe bekomme ich den hinweis vom gm falsches passwort 1/4
usw
MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel)
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
-
-
-
was sollte ich umschreiben ich habe noch nichts umgeschrieben
danke für deine Hilfe -
ja also hast du den standart script? DL und nix dran gemacht?
-
@ Nochmal zu meiner Frage Maddin
Ich habe das Passwort jetzt einmal Hashen lassen, und ausgeben lassen und es kommt das richtige raus wenn ich das PW einmal hashen würde, jetzt
habe ich das PW aber 2x direkt hintereinander mit MD5 gehasht, und da kommt halt wieder was falsches raus, weißt du vielleicht wie ich es machen könnte
das er es 2x hintereinander einzelnt hasht, sprich zuerstnew wertinputt = strval(inputtext);
new wert = MD5_Hash(wertinputt);
wert = Md5_Hash(wert);das will halt nicht gehen ;b Deshalb wolle ich fragen, ob du vielleicht ne ahnung hast, wie ich die einzelnt nacheinander Hashe...
-
xivo
du musst "wert" auch als string angeben^^@Marci
stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])//so ist es richtig, hatte es am anfang falsch aber schon berichtigt im tut
{
new query[128], Float:sqlfloat;
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
mysql_fetch_float(sqlfloat);
mysql_free_result();
return sqlfloat; //Zeile 588
}TheBestOne
Zeig am besten mal deine Zeilen wo das PW überprüft wird. -
ich hab das mysql script von heitzer ddg wenn dir das was sagt und ich habe bisher nicht verändert..
-
Könntest du mir ein Beispiel geben ?. Und auch wenn ich es nur als "inputtext" ausgeben bzw. Hashen möchte, gehts auch nicht. Wäre nett um Beispiel oder sonstiges.
-
Code
C:\Users\Marcel\Desktop\gta_server\gamemodes\Test.pwn(607) : warning 208: function with tag result used before definition, forcing reparse Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 1 Warning.
in
stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])//so ist es richtig, hatte es am anfang falsch aber schon berichtigt im tut
-
marcii gillt das für mich?
-
-
-
Maddin, ich habe mein Problem herrausgefunden, meine Hashes wurde in Samp ständig nur Groß ausgegeben sprich die Buchstaben waren auch groß,
jedoch ist die von meinem Board nicht in Groß dort sind die Buchstaben in klein, und wenn ich den Code nochmal hashe, habe ich bei den Großen Buchstaben
etwas gaaaanz anderes als bei den kleinen, weißt du vielleicht wie ich die Buchstaben klein bekomme ?Sprich mein Board hats so :
2c89109d42178de8a367c0228f169bf8
Und mein Server gibts mir so aus :
2C89109D42178DE8A367C0228F169BF8 -
-
So meinte ich das nicht Maddin :b
Also wenn ich das Passwort 1x Hashe dann sieht es so aus :
Server :
2C89109D42178DE8A367C0228F169BF8Board :
2c89109d42178de8a367c0228f169bf8ist ja noch nicht so tragisch, jedoch habe ich das Passwort ja doppelt gehasht, und wenn ich diese Hashes nochmal Hashe dann kommt das raus :
Server :
50f3bfbe3055153c85e8d078a8a5aa2d
Board :
229240afdfde814672dc366efdcbeaec
[font='verdana']Und das ist der tragische unterschied, sprich das Problem liegt an dem groß / klein Hash. -
Danke jetzt geht es
ähm da habe ich noch ein Problem.. mit meinem Money System..
Spawn
SpielerInfo[playerid][pMoney] = mysql_GetInt("accounts", "Money", "Name", SpielerInfo[playerid][pName]);
GivePlayerMoney(playerid,SpielerInfo[playerid][pMoney]);Load
SpielerInfo[playerid][pMoney] = mysql_GetInt("accounts", "Money", "Name", SpielerInfo[playerid][pName]);Save
mysql_SetInt("accounts", "Money", SpielerInfo[playerid][pMoney], "Name", SpielerInfo[playerid][pName]);CMD
ocmd:setmoney(playerid,params[])
{
if(SpielerInfo[playerid][pAdminlevel] >= 3)
{
new pID, money, string[128],string2[128],ziel[MAX_PLAYER_NAME],sender[MAX_PLAYER_NAME],string3[128];
GetPlayerName(pID,ziel,sizeof(ziel));
GetPlayerName(playerid,sender,sizeof(sender));
new pname[MAX_PLAYER_NAME];
GetPlayerName(pID, pname, sizeof(pname));
if(sscanf(params,"ui",pID,money))return SendClientMessage(playerid, COLOR_GRAD2, "/setmoney [ID/NAME] [Money]");
format(string,sizeof(string),"Du hast %d Geld Beckommen! Glückwunsch!",money);
SendClientMessage(pID,COLOR_LIGHTBLUE,string);
format(string3,sizeof(string3),"AdmCMD: %s hat %s, %d Geld gegeben!!",sender,ziel,money);
SendClientMessage(playerid,COLOR_RED,string3);
format(string2,sizeof(string2),"AdmCMD: %s hat %s, %d Geld gegeben!!",sender,ziel,money);
print(string2);
GivePlayerMoney(pID,money);
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Entweder du bist kein Admin, oder du bist kein Level 3 Admin");
}
return 1;
}In der Datenbank habe ich default auf 500.. Beim Spawn sind es 500.. Dann mache ich cmd dann habe ich 1500 in DB sind es immer noch 500
lg Marci
-
Zitat
@TheBestOneZeig am besten mal deine Zeilen wo das PW überprüft wird.wie sieht das aus unter was muss ich schauen möchte mysql kennenlernen bitte nicht übel nehmen
-
meinst du vllt dashier
Zitat
public MySQLCheckAccount(sqlplayersname[]) // by Luk0r
{
new query[128];
new escstr[MAX_PLAYER_NAME];
samp_mysql_real_escape_string(sqlplayersname, escstr);
format(query, sizeof(query), "SELECT id FROM players WHERE LOWER(Name) = LOWER('%s') LIMIT 1", escstr);
samp_mysql_query(query);
samp_mysql_store_result();
if (samp_mysql_num_rows()==0)
{
return 0;
}
else
{
new strid[32];
new intid;
samp_mysql_fetch_row(strid);
intid = strval(strid);
return intid;
}
} -
sry aber wozu hasht man nen pw 2mal?
-
das ist alles was ich habe
Zitat
public MySQLConnect(sqlhost[], sqluser[], sqlpass[], sqldb[])
{
print("MYSQL: Attempting to connect to server...");
samp_mysql_connect(sqlhost, sqluser, sqlpass);
samp_mysql_select_db(sqldb);
if(samp_mysql_ping()==0)
{
print("MYSQL: Database connection established.");
return 1;
}
else
{
print("MYSQL: Connection error, retrying...");
samp_mysql_connect(sqlhost, sqluser, sqlpass);
samp_mysql_select_db(sqldb);
if(samp_mysql_ping()==0)
{
print("MYSQL: Reconnection successful. We can continue as normal.");
return 1;
}
else
{
print("MYSQL: Could not reconnect to server, terminating server...");
SendRconCommand("exit");
return 0;
}
}
}public MySQLDisconnect()
{
samp_mysql_close();
return 1;
}public MySQLCheckConnection()
{
if(samp_mysql_ping()==0)
{
return 1;
}
else
{
print("MYSQL: Connection seems dead, retrying...");
MySQLDisconnect();
MySQLConnect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB);
if(samp_mysql_ping()==0)
{
print("MYSQL: Reconnection successful. We can continue as normal.");
return 1;
}
else
{
print("MYSQL: Could not reconnect to server, terminating server...");
SendRconCommand("exit");
return 0;
}
}
}public MySQLUpdateBuild(query[], sqlplayerid) // by Luk0r
{
new querylen = strlen(query);
//new querymax = sizeof(query);
new querymax = MAX_STRING;
if (querylen < 1) format(query, querymax, "UPDATE players SET ");
else if (querymax-querylen < 50) // make sure we're being safe here
{
// query is too large, send this one and reset
new whereclause[32];
format(whereclause, sizeof(whereclause), " WHERE id=%d", sqlplayerid);
strcat(query, whereclause, querymax);
samp_mysql_query(query);
format(query, querymax, "UPDATE players SET ");
}
else if (strfind(query, "=", true) != -1) strcat(query, ",", MAX_STRING);
return 1;
}public MySQLUpdateFinish(query[], sqlplayerid) // by Luk0r
{
if (strcmp(query, "WHERE id=", false) == 0) samp_mysql_query(query);
else
{
new whereclause[32];
format(whereclause, sizeof(whereclause), " WHERE id=%d", sqlplayerid);
strcat(query, whereclause, MAX_STRING);
samp_mysql_query(query);
format(query, MAX_STRING, "UPDATE players SET ");
}
return 1;
}public MySQLUpdatePlayerInt(query[], sqlplayerid, sqlvalname[], sqlupdateint) // by Luk0r
{
MySQLUpdateBuild(query, sqlplayerid);
new updval[64];
format(updval, sizeof(updval), "%s=%d", sqlvalname, sqlupdateint);
strcat(query, updval, MAX_STRING);
return 1;
}public MySQLUpdatePlayerFlo(query[], sqlplayerid, sqlvalname[], Float:sqlupdateflo) // by Luk0r
{
/* new query[128];
format(query, sizeof(query), "UPDATE players SET %s=%f WHERE id=%d", sqlvalname, sqlupdateflo, sqlplayerid);
samp_mysql_query(query);
new flotostr[32];
format(flotostr, sizeof(flotostr), "%f", sqlupdateflo);
MySQLUpdatePlayerStr(query, sqlplayerid, sqlvalname, flotostr);
return 1;*/
}public MySQLUpdatePlayerStr(query[], sqlplayerid, sqlvalname[], sqlupdatestr[]) // by Luk0r
{
MySQLUpdateBuild(query, sqlplayerid);
new escstr[128];
new updval[128];
samp_mysql_real_escape_string(sqlupdatestr, escstr);
format(updval, sizeof(updval), "%s='%s'", sqlvalname, escstr);
strcat(query, updval, MAX_STRING);
return 1;
}public MySQLUpdatePlayerIntSingle(sqlplayerid, sqlvalname[], sqlupdateint) // by Luk0r
{
new query[128];
format(query, sizeof(query), "UPDATE players SET %s=%d WHERE id=%d", sqlvalname, sqlupdateint, sqlplayerid);
samp_mysql_query(query);
return 1;
}public MySQLCheckAccount(sqlplayersname[]) // by Luk0r
{
new query[128];
new escstr[MAX_PLAYER_NAME];
samp_mysql_real_escape_string(sqlplayersname, escstr);
format(query, sizeof(query), "SELECT id FROM players WHERE LOWER(Name) = LOWER('%s') LIMIT 1", escstr);
samp_mysql_query(query);
samp_mysql_store_result();
if (samp_mysql_num_rows()==0)
{
return 0;
}
else
{
new strid[32];
new intid;
samp_mysql_fetch_row(strid);
intid = strval(strid);
return intid;
}
}public MySQLCheckIPBanned(ip[])
{
new query[64];
format(query, sizeof(query), "SELECT type FROM bans WHERE ip = '%s' AND inactive = 0 ORDER BY id DESC LIMIT 1", ip);
samp_mysql_query(query);
samp_mysql_store_result();
if (samp_mysql_num_rows() != 0)
{
new bantypestr[4];
new bantypeint;
samp_mysql_fetch_row(bantypestr);
bantypeint = strval(bantypestr);
samp_mysql_free_result();
return bantypeint;
}
return 0;
}public MySQLFetchAcctSingle(sqlplayerid, sqlvalname[], sqlresult[])
{
new query[128];
format(query, sizeof(query), "SELECT %s FROM players WHERE id = %d LIMIT 1", sqlvalname, sqlplayerid);
samp_mysql_query(query);
samp_mysql_store_result();
if(samp_mysql_fetch_row(sqlresult)==1)
{
return 1;
}
return 0;
}public MySQLFetchAcctRecord(sqlplayerid, sqlresult[]) // by Luk0r
{
new query[64];
format(query, sizeof(query), "SELECT * FROM players WHERE id = %d LIMIT 1", sqlplayerid);
samp_mysql_query(query);
samp_mysql_store_result();
if(samp_mysql_fetch_row(sqlresult)==1)
{
return 1;
}
return 0;
}public MySQLCreateAccount(newplayersname[], newpassword[]) // by Luk0r
{
new query[128];
new sqlplyname[64];
new sqlpassword[64];
samp_mysql_real_escape_string(newplayersname, sqlplyname);
samp_mysql_real_escape_string(newpassword, sqlpassword);
format(query, sizeof(query), "INSERT INTO players (Name, Password) VALUES ('%s', '%s')", sqlplyname, sqlpassword);
samp_mysql_query(query);
new newplayersid = MySQLCheckAccount(newplayersname);
if (newplayersid != 0)
{
return newplayersid;
}
return 0;
}public MySQLAddLoginRecord(sqlplayerid, ipaddr[]) // by Luk0r
{
new query[128];
new escip[16];
samp_mysql_real_escape_string(ipaddr, escip);
format(query, sizeof(query), "INSERT INTO logins (time,ip,userid) VALUES (UNIX_TIMESTAMP(),'%s',%d)", escip, sqlplayerid);
samp_mysql_query(query);
return 1;
} -
Weil ich das Prob hatte von sha1 Wbb auf Md5 Wbb zu wechseln, und dann ging dies auch aber das Pw wurde nunmal doppelt gehasht, deshalb lasse ich das jetzt auch so, und möchte jetzt halt nur in Samp das PW doppelt gehasht haben ;b
-