Il login in C

Posted in By Joker 2 commenti

Scrivere un programma che richieda una registrazione per accedere all'applicazione. La registtrazione avverrà richiedendo all'utente l'inserimento di:
• username
• password
Se l'utente rifiuta di registrarsi, l'applicazione risponderà con il messaggio:
• spiacenti ma l'utilizzo dell'applicazione necessita di registrazione
A questo punto l'utente ha a disposizione due possibilità:
1. registrarsi
2. terminare l'esecuzione del programma
Se l'utente sceglie di registrarsi il programma salverà i propri dati in un file
Se l'utente è già registrato il programma controllerà l'account inserito prelevandone i dati dal file.

Ecco il sorgente:

#include <stdlib.h>
#include <stdio.h>

FILE * myfopen(char *name, char *mode);
int myfclose(FILE *f);
char nickname[20],password[20],nome[20],cognome[20];
char nicknamef[20],passwordf[20],nomef[20],cognomef[20], nick[20],pass[20];

int loggato,esistente;
FILE * f;
int acceso();
int registrazione();

FILE* myfopen(char *nome, char *modo)
{
FILE * f;
f=fopen(nome,modo);
if(f==NULL)
{
printf("Impossibile aprire %s\n",nome);
exit(1);
}
return f;
}

int myfclose(FILE *f)
{
int ris;
if(f==NULL)
{
printf("Errore interno\n");
exit(1);
}
ris=fclose(f);
if(ris!=0)
{
printf("Impossibile chiudere!\n");
exit(1);
}
return ris;
}

int main()
{
int scelta=0;

system("color 81");

printf("1. Accedi\n");
printf("2. Registrati\n");
printf("3. Esci\n");
scanf("%d", &scelta);

switch(scelta)
{
case 1:
accesso();
break;
case 2:
registrazione();
break;
case 3:
exit(1);
break;
}
return 0;
getch();
}

int accesso()
{
do{

printf("Utente:");
scanf("%s", nick);

printf("Password:");
scanf("%s", pass);

f = myfopen("registrazioni.txt", "r");
do{
fscanf(f, "%s %s %s %s\n", nicknamef, passwordf, nomef, cognomef);
if(strcmp(nick, nicknamef) == 0 && strcmp(pass, passwordf) == 0)
loggato = 1;
}while(!feof(f));

}while(loggato != 1);
printf("Benvenuto %s\n", nick);
system("pause");
}

int registrazione()
{

printf("Nickname:\n");
scanf("%s", nickname);
printf("Password:\n");
scanf("%s", password);
fflush(stdin);
printf("Nome:\n");
scanf("%s", nome);
fflush(stdin);
printf("Cognome:\n");
scanf("%s",cognome);
fflush(stdin);

f = myfopen("registrazioni.txt", "a");
f = myfopen("registrazioni.txt", "r");

do{
fscanf(f, "%s %s %s %s\n", nicknamef, passwordf, nomef, cognomef);
if(strcmp(nickname, nicknamef) == 0)
esistente = 1;
}while(!feof(f));

if(esistente == 1)
{
printf("Utente gia' registrato\n");
int main();
}
else
{
f = myfopen("registrazioni.txt", "a+");
fprintf(f, "%s %s %s %s\n", nickname, password, nome, cognome);
printf("Registrato con successo\n");
}
accesso();
system("pause");
}