Problem beim MySQL Register/Login System

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
  • Heyho,
    ich habe ein kleines Problemchen.
    Ich wollte mit dem MySQL Plugin von BlueG ein MySQL Login/Reg System scripten.
    Die Verbindung zur DB klappt auch ohne Probleme,
    allerdings scheint am OnPlayerConnect Code etwas nicht zu stimmen,
    da der Spieler beim Connecten GAR keinen Dialog bekommt:


    public OnPlayerConnect(playerid)
    {


    mysql_query("SELECT * FROM Users");
    mysql_store_result();


    if(!mysql_num_rows())
    {
    mysql_free_result();
    }
    else
    {
    new result[128];
    while(mysql_retrieve_row())
    {
    mysql_fetch_field_row(result,"Username");
    strdel(result,0,sizeof(result));
    if(strcmp(PlayerData[playerid][Username], result))
    {
    exists[playerid] = 1;
    }
    }


    if(exists[playerid] == 0)
    {
    ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "Kein Account gefunden", "Gib bitte das Passwort für deinen neuen Account ein", "Okay", "Abbrechen");
    exists[playerid] = 0;
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Account gefunden", "Gib bitte dein Passwort ein", "Okay", "Abbrechen");
    }
    }
    mysql_free_result();
    return 1;
    }


    Ich bin neu mit MySQL, also seid gnädig, wenn irgendein n00b Fehler drinne is :D

  • so sollte es gehen

    public OnPlayerConnect(playerid)
    {
    new spname[MAX_PLAYER_NAME],name[MAX_PLAYER_NAME],query[200];
    GetPlayerName(playerid,name,sizeof name);
    mysql_real_escape_string(name,spname);
    format(query,sizeof(query),"SELECT * FROM `Users` WHERE `Username` = '%s'",spname);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows() >= 1)
    {
    mysql_free_result();
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Account gefunden", "Gib bitte dein Passwort ein", "Okay", "Abbrechen");
    }else{
    mysql_free_result();
    ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "Kein Account gefunden", "Gib bitte das Passwort für deinen neuen Account ein", "Okay", "Abbrechen");
    }
    return 1;
    }


    du machst das etwas sehr komisch ^^