SHARE
TWEET

Untitled

a guest May 22nd, 2019 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top