Advertisement
Guest User

Untitled

a guest
Dec 26th, 2022
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. #include <a_samp>
  2. #include <mysql>
  3.  
  4. #define DB_HOST "localhost"
  5. #define DB_USER "root"
  6. #define DB_PASS ""
  7. #define DB_NAME "mydatabase"
  8.  
  9. new
  10. mysql:g_db;
  11.  
  12. public OnFilterScriptInit()
  13. {
  14. // Conectați-vă la baza de date
  15. g_db = mysql_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
  16. if (g_db == INVALID_HANDLE)
  17. {
  18. printf("Nu s-a putut conecta la baza de date.");
  19. return 1;
  20. }
  21.  
  22. return 0;
  23. }
  24.  
  25. public OnFilterScriptExit()
  26. {
  27. // Închideți conexiunea la baza de date
  28. mysql_close(g_db);
  29. }
  30.  
  31. forward CheckIfUsernameExists(username[]);
  32.  
  33. public OnPlayerRequestClass(playerid, classid)
  34. {
  35. // Obțineți numele de utilizator al jucătorului
  36. new
  37. name[MAX_PLAYER_NAME];
  38. GetPlayerName(playerid, name, sizeof(name));
  39.  
  40. // Verificați dacă numele de utilizator există deja în baza de date
  41. if (CheckIfUsernameExists(name))
  42. {
  43. // Dacă numele de utilizator există deja, trimiteți un mesaj de eroare către jucător
  44. SendClientMessage(playerid, COLOR_ERROR, "Acest nume de utilizator este deja luat. Vă rugăm să alegeți alt nume de utilizator.");
  45. return 0;
  46. }
  47.  
  48. // Dacă numele de utilizator este disponibil, solicitați parola și adresa de email de la jucător
  49. new
  50. password[MAX_PLAYER_NAME], email[MAX_PLAYER_NAME];
  51. GetPlayerName(playerid, password, sizeof(password));
  52. GetPlayerName(playerid, email, sizeof(email));
  53.  
  54. // Validați informațiile de înregistrare introduse de jucător (de exemplu, verificați dacă parola are o lungime minimă sau dacă adresa de email este într-un format valid)
  55.  
  56. // Dacă informațiile sunt valide, salvați-le în baza de date
  57. new
  58. query[128];
  59. format(query, sizeof(query), "INSERT INTO players (name, password, email) VALUES ('%s', '%s', '%s')", name, password, email);
  60. mysql_query(g_db, query);
  61.  
  62. // Trimiteți un mesaj de confirmare către jucător
  63. SendClientMessage(playerid, COLOR_INFO, "Înregistrarea dvs. a fost efectuată cu succes! Acum puteți să vă autentificați în joc.");
  64.  
  65. return 1;
  66. }
  67.  
  68. forward CheckIfEmailExists(email[]);
  69.  
  70. public CheckIfUsernameExists(username[])
  71. {
  72. new
  73. query[128], result;
  74. format(query, sizeof(query), "SELECT COUNT(*) FROM players WHERE name='%s'", username);
  75. result = mysql_query(g_db, query);
  76. if (result < 0)
  77. {
  78. return 0;
  79. }
  80.  
  81. new
  82. rows, fields;
  83. rows = mysql_num_rows(result);
  84. if (rows == 0)
  85. {
  86. return 0;
  87. }
  88.  
  89. new
  90. row = mysql_fetch_row(result);
  91. if (row == 0)
  92. {
  93. return 0;
  94. }
  95.  
  96. if (row[0] > 0)
  97. {
  98. return 1;
  99. }
  100.  
  101. return 0;
  102. }
  103.  
  104. public CheckIfEmailExists(email[])
  105. {
  106. new
  107. query[128], result;
  108. format(query, sizeof(query), "SELECT COUNT(*) FROM players WHERE email='%s'", email);
  109. result = mysql_query(g_db, query);
  110. if (result < 0)
  111. {
  112. return 0;
  113. }
  114.  
  115. new
  116. rows, fields;
  117. rows = mysql_num_rows(result);
  118. if (rows == 0)
  119. {
  120. return 0;
  121. }
  122.  
  123. new
  124. row = mysql_fetch_row(result);
  125. if (row == 0)
  126. {
  127. return 0;
  128. }
  129.  
  130. if (row[0] > 0)
  131. {
  132. return 1;
  133. }
  134.  
  135. return 0;
  136. }
  137.  
  138.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement