Jeffry & Just.Me77 Register MySQL System erkennt den Account nicht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Jeffry & Just.Me77 Register MySQL System erkennt den Account nicht

    Just.Me77 Textdraw Login

    Ich habe diesen Code übernommen und habe folgendes Problem, der Account wurde erfolgreich erstellt. Aber sobald ich mich einloggen möchte, steht da erneut Regestrieren, obwohl der Name bereits in der Datenbank vorhanden ist.
    Ich hoffe Ihr könnt mir da auf die Sprünge helfen, da ich verzweifle wieso, weshalb und warum ?( ?(

    PAWN-Quellcode

    1. public OnPlayerRequestClass(playerid, classid)
    2. {
    3. if(!GetPVarInt(playerid, "Logged"))
    4. {
    5. new query[128];
    6. mysql_format(handle, query, sizeof(query), "SELECT uID FROM account_list WHERE Name = '%e'", SpielerInfo[playerid][pName]);
    7. mysql_pquery(handle, query, "OnUserCheck", "i", playerid);
    8. }
    9. return 1;
    10. }
    11. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    12. {
    13. if(playertextid == PlayerLoginTextDraw[playerid][0])
    14. {
    15. if(pRegistered[playerid] == true)
    16. {
    17. ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung", "Bitte logge Dich mit deinem Passwort ein:", "Anmelden", "Abbrechen");
    18. }
    19. else
    20. {
    21. ShowPlayerDialog(playerid, DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration", "Bitte gebe ein Passwort für die Regestration ein:", "Regestrieren", "Abbrechen");
    22. }
    23. }
    24. return 0;
    25. }
    26. forward OnUserCheck(playerid);
    27. public OnUserCheck(playerid)
    28. {
    29. new rows;
    30. cache_get_row_count(rows);
    31. if(rows == 0)
    32. {
    33. PlayerIsNotRegistered(playerid);
    34. ShowLoginTextDraws(playerid);
    35. }
    36. else
    37. {
    38. PlayerIsRegistered(playerid);
    39. ShowLoginTextDraws(playerid);
    40. }
    41. return 1;
    42. }
    Alles anzeigen

    Ich habe das .inc eingefügt und habe auch keine Error bzw. Warnings....
  • Quellcode

    1. stock ResetPlayer(playerid)
    2. {
    3. SpielerInfo[playerid][pID] = false;
    4. SpielerInfo[playerid][pLevel] = false;
    5. SpielerInfo[playerid][pMoney] = false;
    6. SpielerInfo[playerid][pAdmin] = false;
    7. GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    8. }
    9. public OnPlayerConnect(playerid)
    10. {
    11. CreatePlayerLoginTextDraws(playerid);
    12. ResetPlayer(playerid);
    13. return 1;
    14. }
    Alles anzeigen
  • setzt du die varaible auch irgendwo?
    pRegistered[playerid]

    Edit: schuldige ist im include drinne Mein Fehler
    Edit2:
    evt. Spalte anders genannt? also hier kein Fehler ja?

    PAWN-Quellcode

    1. mysql_format(handle, query, sizeof(query), "SELECT uID FROM account_list WHERE Name = '%e'", SpielerInfo[playerid][pName]);
    MFG. Mogly1

    Du willst scripten Lernen hier...

    (Grundwissen)TuTorial
    (RP-Server)TuTorial

    (vom Register und Login bis zum eigenen Multichar-system)
  • Hier mal der ganze Code sowie ein Bild der Datenbank

    C-Quellcode

    1. #include <a_samp>
    2. #include <a_mysql>
    3. #include <logintextdraws-de>
    4. #undef MAX_PLAYERS
    5. #define MAX_PLAYERS 5
    6. #define SQL_HOST "127.0.0.1"
    7. #define SQL_USER "root"
    8. #define SQL_PASS ""
    9. #define SQL_DATA "samp"
    10. new handle;
    11. main()
    12. {
    13. print("\n----------------------------------");
    14. print(" Blank Gamemode by EllBundy");
    15. print("----------------------------------\n");
    16. }
    17. enum{
    18. DIALOG_REGISTER,
    19. DIALOG_LOGIN
    20. }
    21. enum SpielerData{
    22. pID,
    23. pName[MAX_PLAYER_NAME],
    24. pLevel,
    25. pMoney,
    26. pAdmin
    27. }
    28. new SpielerInfo[MAX_PLAYERS][SpielerData];
    29. public OnGameModeInit()
    30. {
    31. MySQL_SetupConnection();
    32. SetGameModeText("EllBundy´s Script");
    33. return 1;
    34. }
    35. public OnGameModeExit()
    36. {
    37. mysql_close(handle);
    38. return 1;
    39. }
    40. public OnPlayerRequestClass(playerid, classid)
    41. {
    42. if(!GetPVarInt(playerid, "logged"))
    43. {
    44. new query[128];
    45. print("1");
    46. mysql_format(handle, query, sizeof(query), "SELECT uID FROM account_list WHERE Name = '%e'", SpielerInfo[playerid][pName]);
    47. mysql_pquery(handle, query, "OnUserCheck", "d", playerid);
    48. printf("%s",query);
    49. }
    50. return 1;
    51. }
    52. public OnPlayerConnect(playerid)
    53. {
    54. CreatePlayerLoginTextDraws(playerid);
    55. ResetPlayer(playerid);
    56. return 1;
    57. }
    58. public OnPlayerDisconnect(playerid, reason)
    59. {
    60. SaveUserStats(playerid);
    61. DestroyPlayerLoginTextDraws(playerid);
    62. return 1;
    63. }
    64. public OnPlayerSpawn(playerid)
    65. {
    66. SetPlayerPos(playerid,1753.2694,-1911.9766,13.5676);
    67. SetPlayerFacingAngle(playerid,272.5242);
    68. return 1;
    69. }
    70. public OnPlayerRequestSpawn(playerid)
    71. {
    72. if(!GetPVarInt(playerid, "logged"))
    73. {
    74. SendClientMessage(playerid, -1, "{FF0000}Du musst dich einloggen bevor du spawnen kannst!");
    75. return 0;
    76. }
    77. return 1;
    78. }
    79. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    80. {
    81. if(playertextid == PlayerLoginTextDraw[playerid][0])
    82. {
    83. if(pRegistered[playerid] == true)
    84. {
    85. ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung", "Bitte logge Dich mit deinem Passwort ein:", "Anmelden", "Abbrechen");
    86. }
    87. else
    88. {
    89. ShowPlayerDialog(playerid, DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration", "Bitte gebe ein Passwort für die Regestration ein:", "Regestrieren", "Abbrechen");
    90. }
    91. }
    92. return 0;
    93. }
    94. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    95. {
    96. switch(dialogid)
    97. {
    98. case DIALOG_REGISTER:
    99. {
    100. if(!response) return Kick(playerid);
    101. if(strlen(inputtext) < 8) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Bitte gebe ein Passwort für die Regestration ein:\n{FF0000}Mindestens 8 Zeichen!", "Regestrieren", "Abbrechen");
    102. new query[256];
    103. mysql_format(handle, query, sizeof(query), "INSERT INTO account_list (Name, Passwort) VALUES ('%e', MD5('%e'))", SpielerInfo[playerid][pName], inputtext);
    104. mysql_pquery(handle, query, "OnUserRegister", "d", playerid);
    105. }
    106. case DIALOG_LOGIN:
    107. {
    108. if(!response) return Kick(playerid);
    109. if(strlen(inputtext) < 8) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich mit deinem Passwort ein:\n{FF0000}Mindestens 8 Zeichen!", "Anmelden", "Abbrechen");
    110. new query[256];
    111. mysql_format(handle, query, sizeof(query), "SELECT * FROM account_list WHERE Name = '%e' AND Passwort = MD5('%e')", SpielerInfo[playerid][pName], inputtext);
    112. mysql_pquery(handle, query, "OnUserLogin", "d", playerid);
    113. }
    114. }
    115. return 1;
    116. }
    117. forward OnUserCheck(playerid);
    118. public OnUserCheck(playerid)
    119. {
    120. new rows;
    121. cache_get_row_count(rows);
    122. printf("rows %d",rows);
    123. if(rows == 0)
    124. {
    125. print("11");
    126. PlayerIsNotRegistered(playerid);
    127. ShowLoginTextDraws(playerid);
    128. }
    129. else
    130. {
    131. print("12");
    132. PlayerIsRegistered(playerid);
    133. ShowLoginTextDraws(playerid);
    134. }
    135. return 1;
    136. }
    137. forward OnUserRegister(playerid);
    138. public OnUserRegister(playerid)
    139. {
    140. SpielerInfo[playerid][pID] = cache_insert_id();
    141. SetPVarInt(playerid, "logged", true);
    142. SendClientMessage(playerid, 0x00FF00FF, "[Konto] Registration erfolgreich.");
    143. PlayerPlaySound(playerid, 1057 , 0.0, 0.0, 0.0);
    144. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich mit deinem Passwort ein:", "Anmelden", "Abbrechen");
    145. return 1;
    146. }
    147. forward OnUserLogin(playerid);
    148. public OnUserLogin(playerid)
    149. {
    150. new rows,result[25];
    151. cache_get_row_count(rows);
    152. if(rows == 0)
    153. {
    154. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich mit deinem Passwort ein:\n{FF0000}Falsches Passwort!", "Anmelden", "Abbrechen");
    155. }
    156. else
    157. {
    158. cache_get_field_content(0,"uID",result); SpielerInfo[playerid][pID] = strval(result);
    159. cache_get_field_content(0,"Level",result); SpielerInfo[playerid][pID] = strval(result);
    160. cache_get_field_content(0,"Money",result); SpielerInfo[playerid][pID] = strval(result);
    161. cache_get_field_content(0,"Admin",result); SpielerInfo[playerid][pAdmin] = strval(result);
    162. SetPVarInt(playerid, "logged", true);
    163. SendClientMessage(playerid, 0x00FF00FF, "[Konto] Eingeloggt.");
    164. PlayerPlaySound(playerid, 1057 , 0.0, 0.0, 0.0);
    165. GivePlayerMoney(playerid, SpielerInfo[playerid][pMoney]);
    166. HideLoginTextDraws(playerid);
    167. SpawnPlayer(playerid);
    168. }
    169. return 1;
    170. }
    171. stock MySQL_SetupConnection(ttl = 3)
    172. {
    173. print("[MYSQL] » Verbindungsaufbau...");
    174. handle = mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
    175. if(mysql_errno(handle) != 0)
    176. {
    177. if(ttl > 1)
    178. {
    179. print("[MYSQL] » Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    180. printf("[MYSQL] » Starte neuen Verbindungsversuch (TTL: %d).", ttl-1);
    181. return MySQL_SetupConnection(ttl-1);
    182. }
    183. else
    184. {
    185. print("[MYSQL] » Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    186. print("[MYSQL] » Bitte prüfen Sie die Verbindungsdaten.");
    187. print("[SERVER] » Der Server wird heruntergefahren.");
    188. return SendRconCommand("exit");
    189. }
    190. }
    191. return printf("[MYSQL] » Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);
    192. }
    193. stock ResetPlayer(playerid)
    194. {
    195. SpielerInfo[playerid][pID] = false;
    196. SpielerInfo[playerid][pLevel] = false;
    197. SpielerInfo[playerid][pMoney] = false;
    198. SpielerInfo[playerid][pAdmin] = false;
    199. GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    200. }
    201. stock SaveUserStats(playerid)
    202. {
    203. if(!GetPVarInt(playerid, "logged")) return 1;
    204. new query[256];
    205. mysql_format(handle, query, sizeof(query), "UPDATE account_list SET Level = '%d', Money = '%d' WHERE uID = '%d'",
    206. SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pMoney], SpielerInfo[playerid][pID]);
    207. mysql_pquery(handle, query);
    208. return 1;
    209. }
    Alles anzeigen

  • Yut habe mir jetzt mal alles angeschaut und änder mal bitte dein OnUserCheck zu dem hier

    PAWN-Quellcode

    1. forward OnUserCheck(playerid);
    2. public OnUserCheck(playerid)
    3. {
    4. printf("rows %d",cache_num_rows());
    5. if(cache_num_rows() == 0)
    6. {
    7. print("11");
    8. PlayerIsNotRegistered(playerid);
    9. ShowLoginTextDraws(playerid);
    10. }
    11. else
    12. {
    13. print("12");
    14. PlayerIsRegistered(playerid);
    15. ShowLoginTextDraws(playerid);
    16. }
    17. return 1;
    18. }
    Alles anzeigen

    Anscheinend hatte er hier gemeckert

    PAWN-Quellcode

    1. new rows;
    2. cache_get_row_count(rows);


    aber da dir diese Funktion hier genau das gibt was du haben willst
    habe ich sie einfach mal ersetzt und es ging dann.
    die Funktion

    PAWN-Quellcode

    1. cache_num_rows()


    Mfg. Mogly1
    Edit: eingerückt
    MFG. Mogly1

    Du willst scripten Lernen hier...

    (Grundwissen)TuTorial
    (RP-Server)TuTorial

    (vom Register und Login bis zum eigenen Multichar-system)