Ich kenne mich mit SQLite leider noch nicht wirklich aus, wie kann ich das jetzt auslesen bzw. ausgeben lassen?
Ich habs jetzt so:
db_query(sqliteconnection, "SELECT COUNT(*) FROM `Players`");
Beiträge von LeonMrBonnie
-
-
Funktioniert das auch in SAMP?
-
Hallo,
ist es irgendwie möglich die Zeilen die es in der Datenbank gibt auszulesen und dann wiederzugeben?
Also das dann z.b. "printf("%d Spieler wurden geladen",DatabaseRows")" und dort dann die Zeilen stehen.Ich benutze SQLite.
-
Sehe den Fehler selbst mein "new query[356]" ist zu klein da das passwort jetzt viel länger ist durch den 64 zeichen salt.
Habe es jetzt auf "new query[425]" geändert mal sehen obs klappt.EDIT:
Hat geklappt, danke. /close -
SQL
[join] LeonMrBonnie has joined the server (0:127.0.0.1) [Warning] db_query: Query failed: near ",": syntax error [Error] db_free_result(): invalid result handle 0
Den Error kriege ich.
Der Code:
if(dialogid == DIALOG_REGISTER)
{
if(response)
{
if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registration","{FFFFFF}Gebe dein Passwort ein um dich zu registrieren:","Registrieren","Verlassen");new HashPass[64 + 1];
SHA256_PassHash(inputtext, "eWvgYIpHsX6ckTDlCwiAI7VOyJvt2bqiJpg8gNeYeEAWy7ujFIVMkkdG4fWmGkIP", HashPass, sizeof HashPass);new query[356];
//ac
format(query, sizeof(query), "INSERT INTO Players (Name, Password, Level, ForceAC, Kills, Deaths, Score, VIP, MaxRoundKills, MaxRoundDamage, Headshots, Tbags, PunchK, DeagleK, ShotgunK, SpasK, MP5K, AK47K, M4K, RifleK, SniperK, GrenadeK, Gun2, Gun3, Gun4, Gun5, Gun6) VALUES('%s', '%s', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 33, 0)", DB_Escape(Player[playerid][Name]), HashPass);
db_free_result(db_query(sqliteconnection, query));format(HashPass, sizeof(HashPass), "Du hast dich erfolgreich registriert. Passwort: {55FF55}%s", inputtext);
SendClientMessage(playerid, YELLOW_COLOR, HashPass);
SendClientMessage(playerid, YELLOW_COLOR, "Nutze {FFFFFF}/cmds {FFFF00}für die Commands und {FFFFFF}/updates {FFFF00}um über die letzten Updates bescheid zu wissen.");
SendClientMessage(playerid, YELLOW_COLOR, "Vergesse nicht mit {FFFFFF}/rules {FFFF00}die Regeln durchzulesen."); -
Die Abfrage die du dort machst ist ob der Spieler bei pMember den Wert "frak" hat, das ist schon richtig, oder?
Guck mal ob du pMember überhaupt hast. -
Ah ok danke,
ist das dann bei meiner Login Anfrage so richtig?
if(dialogid == DIALOG_LOGIN)
{
if(response)
{
if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Login","{FFFFFF}Gebe dein Passwort ein um dich einzuloggen:","Einloggen","Verlassen");new HashPass[64 + 1];
SHA256_PassHash(inputtext, "eWvgYIpHsX6ckTDlCwiAI7VOyJvt2bqiJpg8gNeYeEAWy7ujFIVMkkdG4fWmGkIP", HashPass, sizeof HashPass);new Query[256];
format(Query, sizeof(Query), "SELECT * FROM `Players` WHERE `Name` = '%s' AND `Password` = '%s'", DB_Escape(Player[playerid][Name]), HashPass);
new DBResult:res = db_query(sqliteconnection, Query); -
[wiki]http://wiki.sa-mp.com/wiki/SHA256_PassHash[/wiki]
Das Passwort wird hier gehashed:
Alles Weitere kannste dir dann denke ich ableiten.
Vielleicht ne blöde Frage aber;
ist das so richtig, oder wie soll ich sonst den eingegeben Text hashen?
if(dialogid == DIALOG_REGISTER)
{
if(response)
{
if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registration","{FFFFFF}Gebe dein Passwort ein um dich zu registrieren:","Registrieren","Verlassen");new HashPass[64 + 1];
SHA256_PassHash("inputtext", "ewvgYIpHsX6ckTDlCwiAI7VOyJvt2bqiJPg8gNeYeEAWy7ujFIVMkkDG4fWmGKIP", HashPass, sizeof HashPass);new query[356];
//ac
format(query, sizeof(query), "INSERT INTO Players (Name, Password, Level, ForceAC, Kills, Deaths, Score, VIP, MaxRoundKills, MaxRoundDamage, Headshots, Tbags, PunchK, DeagleK, ShotgunK, SpasK, MP5K, AK47K, M4K, RifleK, SniperK, GrenadeK, Gun2, Gun3, Gun4, Gun5, Gun6) VALUES('%s', '%s', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 33, 0)", DB_Escape(Player[playerid][Name]), HashPass);
db_free_result(db_query(sqliteconnection, query));format(HashPass, sizeof(HashPass), "Du hast dich erfolgreich registriert. Passwort: {55FF55}%s", inputtext);
SendClientMessage(playerid, YELLOW_COLOR, HashPass);
SendClientMessage(playerid, YELLOW_COLOR, "Nutze {FFFFFF}/cmds {FFFF00}für die Commands und {FFFFFF}/updates {FFFF00}um über die letzten Updates bescheid zu wissen.");
SendClientMessage(playerid, YELLOW_COLOR, "Vergesse nicht mit {FFFFFF}/rules {FFFF00}die Regeln durchzulesen."); -
Hallo,
ich habe mein Login/Register System am Anfang geschrieben als ich angefangen habe zu scripten und deswegen sind meine Passwörter momentan auch nur mit UDB_Hash gehasht, da mir aber nun aufgefallen ist dass dies sehr unsicher ist würde ich gerne die SHA256 Funktion von SAMP dafür nutzen, wie kann ich das in meinem Script einbauen?Ich benutze SQLite.
Mein momentaner Code:
if(dialogid == DIALOG_REGISTER)
{
if(response)
{
if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"{FFFFFF}Registration","{FFFFFF}Gebe dein Passwort ein um dich zu registrieren:","Registrieren","Verlassen");new HashPass[140];
format(HashPass, sizeof(HashPass), "%d", udb_hash(inputtext));new query[356];
//ac
format(query, sizeof(query), "INSERT INTO Players (Name, Password, Level, ForceAC, Kills, Deaths, Score, VIP, MaxRoundKills, MaxRoundDamage, Headshots, Tbags, PunchK, DeagleK, ShotgunK, SpasK, MP5K, AK47K, M4K, RifleK, SniperK, GrenadeK, Gun2, Gun3, Gun4, Gun5, Gun6) VALUES('%s', '%s', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 33, 0)", DB_Escape(Player[playerid][Name]), HashPass);
db_free_result(db_query(sqliteconnection, query));format(HashPass, sizeof(HashPass), "Du hast dich erfolgreich registriert. Passwort: {55FF55}%s", inputtext);
SendClientMessage(playerid, YELLOW_COLOR, HashPass);
SendClientMessage(playerid, YELLOW_COLOR, "Nutze {FFFFFF}/cmds {FFFF00}für die Commands und {FFFFFF}/updates {FFFF00}um über die letzten Updates bescheid zu wissen.");
SendClientMessage(playerid, YELLOW_COLOR, "Vergesse nicht mit {FFFFFF}/rules {FFFF00}die Regeln durchzulesen.");
.....
..... -
Dann überprüfst du ob das result die gewählte Frak ID ist, wenn ja auf Zivi setzen.
-
Dann musst du dein Script auf diese MySQL Version einfach umschrieben?
-
Wenn du ne Datenbank hast dann frag einfach in der Datenbank ab welcher spieler die gewählte frak hat und bei diesem wird dann die Frak auf Zivi gesetzt
-
new GangfightSystemInfo[16][GFInfo] =
Zu:
new GangfightSystemInfo[17][GFInfo] = -
TDEditor?
-
Und H1Z1 hat es von H1N1, der Bezeichnung der Grippe geklaut oder wie muss ich das verstehen? Hast du die auch so wie hier zugetextet?Kannst du nicht bitte einfach wie jeder andere anständige Wutbürger über die Politik meckern, anstatt diesen Server hier schlechtzureden?
B2T:
Die Idee und Serverwerbung haben mich überzeug, dem Server morgen mal einen Besuch abzustatten.Die 1. Betaphase ist aber erst Freitag
-
Die erste Beta Phase startet am 10.03.2017 um 17 Uhr.
Hm.ich verstehe nicht ganz. Habe mir einen Spieleaccount erstellt, doch wie kann ich jetzt auf den Server joinen? Er ist Passwort - Gesichert.
-
if(issuerid != INVALID_PLAYER_ID && (weaponid == 34) && bodypart == 9 && Spieler[playerid][pFraktion] == 8)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
format(string,sizeof(string),"~w~HEADSHOT~n~~w~[%.02f M]",GetPlayerDistanceFromPoint(issuerid,x,y,z));
GameTextForPlayer(issuerid, string, 3000, 6);
format(string,sizeof(string),"~w~HEADSHOT~n~~w~[%.02f M]",GetPlayerDistanceFromPoint(playerid,x,y,z));
GameTextForPlayer(playerid, string, 3000, 6);
SetPlayerHealth(playerid, 0.0);
} -
new string[100] ;
cInfo[idx][numberplate]=cache_get_field_content(i,"numberplate",string, dbhandle);
Da hat eine Klammer gefehlt denke ich mal. -
kenne mich damit nicht aus aber so wie es aussieht greift es auf die Passwörter von Firefox uns chrome zu
-
dort werden die Passwörter auf seinen FTP hochgeladen