Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "header.h"
  4. #define BAZA_DATE "utilizatori.db"
  5.  
  6. int main(void){
  7. FILE *baza_date;
  8. baza_date = fopen(BAZA_DATE, "r+");
  9. if (!baza_date){
  10. creare_baza_date();
  11. }
  12. if(scanare()==0){
  13. printf("_____________ INREGISTRARE UTILIZATOR _____________\n");
  14. creare_cont();
  15. } else {
  16. printf("_____________ LOGARE UTILIZATOR _____________\n");
  17. logare_cont();
  18. }
  19. fclose(baza_date);
  20. }
  21.  
  22. int scanare(){
  23. char numarare;
  24. int linii=0;
  25. FILE *baza_date;
  26. baza_date = fopen(BAZA_DATE, "r");
  27. while((numarare=fgetc(baza_date))!=EOF){
  28. if(numarare=='\n'){
  29. linii++;
  30. }
  31. }
  32. return linii;
  33. }
  34.  
  35. int logare_cont(){
  36. FILE *baza_date;
  37. baza_date = fopen(BAZA_DATE, "r+");
  38. int comparaNume;
  39. int comparaParola;
  40. int comparaStergereParola;
  41. int verificare;
  42. char nume[32];
  43. char parola[32];
  44. printf("Nume: ");
  45. scanf("%s", nume);
  46. printf("Parola: ");
  47. scanf("%s", parola);
  48. printf("Esti robot? (1+1): ");
  49. scanf("%d", &verificare);
  50. if (!(verificare==2)){
  51. for(int i=0;i<1;i++){
  52. printf("Esti robot? (1+1): ");
  53. scanf("%d", &verificare);
  54. }
  55. }
  56. if (verificare == 2){
  57. fscanf(baza_date, "%s | %s | %s", cont.nume, cont.parola, cont.email);
  58. fscanf(baza_date, "%s | %s | %s", cont.nume, cont.parola, cont.email);
  59. comparaNume = strcmp(nume,cont.nume);
  60. comparaParola = strcmp(parola,cont.parola);
  61. if(comparaNume == 0){
  62. if (comparaParola == 0){
  63. printf("\nContul exista"); //debug
  64. printf("\nBun venit, %s", cont.nume);
  65. } else {
  66. printf("\nParola pentru contul '%s' este gresita.", cont.nume);
  67. fclose(baza_date);
  68. resetare_parola();
  69. }
  70. } else {
  71. comparaStergereParola = strcmp(parola, parola_secreta);
  72. if(comparaStergereParola == 0){
  73. stergere_baza_date();
  74. } else {
  75. printf("\nNumele de utilizator este gresit.");
  76. }
  77. }
  78. } else {
  79. printf("Verificarea a esuat.");
  80. return 0;
  81. }
  82. return 1;
  83. }
  84.  
  85. int creare_cont(){
  86. FILE *baza_date;
  87. baza_date = fopen(BAZA_DATE, "r+");
  88. i=0;
  89. printf("Nume: ");
  90. scanf("%s", cont.nume);
  91. printf("Parola: ");
  92. scanf("%s", cont.parola);
  93. if(strlen(cont.parola)<6){
  94. printf("Inregistrarea necesita o parola de minim 6 caractere\n");
  95. printf("Parola: ");
  96. scanf("%s", cont.parola);
  97. }
  98. printf("E-mail:");
  99. scanf("%s", cont.email);
  100. verificare_robot_inregistrare();
  101. return 1;
  102. }
  103.  
  104. int creare_baza_date(){
  105. FILE *baza_date;
  106. int raspuns=0;
  107. printf("Baza de date inexistenta\nDoresti sa initializezi una? (1 - da; 0 - nu): ");
  108. scanf("%d", &raspuns);
  109. switch (raspuns) {
  110. case 0:
  111. printf("Program terminat! (baza de date inexistenta)");
  112. break;
  113. return 0;
  114. case 1:
  115. baza_date = fopen(BAZA_DATE, "w");
  116. fprintf(baza_date, "Nume | Parola | E-mail");
  117. printf("Baza de date a fost creata!\n");
  118. fclose(baza_date);
  119. break;
  120. default:
  121. printf("Valoare gresita\n");
  122. printf("Terminare program...\n");
  123. return 0;
  124. }
  125. return 1;
  126. }
  127.  
  128. int stergere_baza_date(){
  129. remove(BAZA_DATE);
  130. printf("Baza de date a fost stearsa!\n");
  131. return 1;
  132. }
  133.  
  134. int verificare_robot_inregistrare(){
  135. int verificare;
  136. FILE *baza_date;
  137. baza_date = fopen(BAZA_DATE, "a");
  138. printf("Esti robot? (1+1): ");
  139. scanf("%d", &verificare);
  140. if (!(verificare==2)){
  141. for(int i=0;i<1;i++){
  142. printf("Esti robot? (1+1): ");
  143. scanf("%d", &verificare);
  144. }
  145. }
  146. if (verificare == 2){
  147. fprintf(baza_date, "\n%s | %s | %s", cont.nume, cont.parola, cont.email);
  148. printf("Contul a fost creat cu numele: %s", cont.nume);
  149. fclose(baza_date);
  150. intrebare_logare();
  151. } else {
  152. printf("Verificarea a esuat.");
  153. return 0;
  154. }
  155. return 1;
  156. }
  157.  
  158. int intrebare_logare(){
  159. int rasp;
  160. printf("\nDoresti sa te autentifici (1 - da; 0 - nu) ? :");
  161. scanf("%d", &rasp);
  162. if(rasp == 1){
  163. logare_cont();
  164. } else {
  165. printf("Terminare program...");
  166. }
  167. return 1;
  168. }
  169.  
  170. int resetare_parola(){
  171. int raspuns;
  172. int caracteremail;
  173. char email[32];
  174. int comparaEmail;
  175. FILE *baza_date;
  176. baza_date = fopen(BAZA_DATE, "r+");
  177. printf("\nDoresti sa resetezi parola (1 - da; 0 - nu) ? ");
  178. scanf("%d", &raspuns);
  179. if (raspuns == 1){
  180. fscanf(baza_date, "%s | %s | %s", cont.nume, cont.parola, cont.email);
  181. fscanf(baza_date, "%s | %s | %s", cont.nume, cont.parola, cont.email);
  182. printf("\nIntroduceti email-ul de la contul '%s'", cont.nume);
  183. printf("\n%c%c%c", cont.email[0], cont.email[1], cont.email[2]);
  184. caracteremail = strlen(cont.email) - 3;
  185. for(i=0;i<caracteremail;i++){
  186. printf("*");
  187. }
  188. printf(": ");
  189. scanf("%s", email);
  190. comparaEmail = strcmp(email,cont.email);
  191. if(comparaEmail == 0){
  192. printf("Introduceti noua parola: ");
  193. scanf("%s", cont.parola);
  194. printf("Parola a fost schimbata.");
  195. fclose(baza_date);
  196. baza_date = fopen(BAZA_DATE, "r+");
  197. fprintf(baza_date, "Nume | Parola | E-mail");
  198. fprintf(baza_date, "\n%s | %s | %s", cont.nume, cont.parola, cont.email);
  199. fclose(baza_date);
  200. intrebare_logare();
  201. } else {
  202. printf("Email gresit. Terminare.");
  203. return 0;
  204. }
  205. } else {
  206. printf("Terminare program...");
  207. return 0;
  208. }
  209. return 1;
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement