Last active
July 7, 2017 20:09
-
-
Save KugiHaito/19c3ae72da1fd5536e7ee128d2f93597 to your computer and use it in GitHub Desktop.
Login e Cadastro de usuário, com registro persistente(Local)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <unistd.h> | |
using namespace std; | |
#ifdef WIN32 | |
char clear[10] = "cls"; | |
#else | |
char clear[10] = "clear"; | |
#endif | |
char error[50]; // exibição de errors | |
char message[50] = "other"; // exibição de mensagens | |
char nick[100]; // nome do usuario | |
char pass[100]; // senha do usuario | |
char rpas[100]; // confirmação de senha | |
FILE *fname; // arquivo name.txt | |
FILE *fpass; // arquivo pswd.txt | |
char dname[100]; // recebe valor salvo | |
char dpass[100]; // recebe valor salvo | |
char n_command[150]; // comando para salvar | |
char p_command[150]; // conando para salvar | |
char option[15]; | |
/*** Model Functions */ | |
/** | |
* Salvar dados.. | |
* @param name nome do usuario | |
* @param pass senha do usuario | |
*/ | |
void save(char name[],char pass[]){ | |
sprintf(n_command, "echo %s >> name.txt", name); | |
sprintf(p_command, "echo %s >> pswd.txt", pass); | |
system(n_command); | |
system(p_command); | |
} | |
/*** View Functions */ | |
/** | |
* Mensagens de erro e concluido! | |
*/ | |
void message_welcome(char message[], char name[100] = nick){ | |
if(!strcmp(message, "register")) { | |
cout << " =========================================================================" << endl; | |
cout << " CLogin | Cadastre-se " << endl; | |
cout << " =========================================================================" << "\n" << endl; | |
} | |
else if(!strcmp(message, "login")) { | |
cout << " =========================================================================" << endl; | |
cout << " CLogin | Login " << endl; | |
cout << " =========================================================================" << "\n" << endl; | |
} else if(!strcmp(message, "welcome")) { | |
cout << " =========================================================================" << endl; | |
cout << " CLogin " << name; | |
cout << " =========================================================================" << "\n" << endl; | |
cout << endl << " 1 - Deletar Cadastro" << endl << " 2 - Sair" << endl << endl; | |
} else { | |
cout << " =========================================================================" << endl; | |
cout << " CLogin " << endl; | |
cout << " =========================================================================" << "\n" << endl; | |
} | |
} | |
void message_error(char message[]){ | |
system(clear); | |
if(!strcmp(message, "passnotrpas")) { | |
cout << " :------------------------------------------------------------------------:" << endl; | |
cout << " : [ERROR] Senhas não coincidem x :" << endl; | |
cout << " :------------------------------------------------------------------------:" << "\n" << endl; | |
} else if (!strcmp(message, "error")) { | |
cout << " :------------------------------------------------------------------------:" << endl; | |
cout << " : [ERROR] Nick e/ou Senha Incorreto(s) x :" << endl; | |
cout << " :------------------------------------------------------------------------:" << "\n" << endl; | |
} else { | |
cout << " :------------------------------------------------------------------------:" << endl; | |
cout << " : [ERROR] Ocorreu um erro! :( x :" << endl; | |
cout << " :------------------------------------------------------------------------:" << "\n" << endl; | |
} | |
} | |
/*** Controller Functions */ | |
/** | |
* Pagina de Bem Vindo | |
*/ | |
void access_welcome(){ | |
system(clear); | |
char message[50] = "welcome"; | |
message_welcome(message); | |
cout << " Escolha uma opção: "; | |
cin.getline (option, 15); | |
if(!strcmp(option, "1")) { | |
/* deletar cadastro */ | |
char delet[3]; | |
cout << " [*] Deseja realmente deletar seu cadastro? [s/n]: "; | |
cin >> delet; | |
if(!strcmp(delet, "s") or !strcmp(delet, "sim")) { | |
cout << " Apagando cadastro.." << endl; | |
remove("name.txt"); | |
remove("pswd.txt"); | |
sleep(2); | |
exit(0); | |
} else { | |
cout << " [x] Ocorreu um erro!" << endl; | |
sleep(2); | |
exit(0); | |
} | |
} else if(!strcmp(option, "2")){ | |
char exit[3]; | |
cout << endl << " [*] Tem certeza que deseja sair? [s/n]: "; | |
cin >> exit; | |
if(!strcmp(exit, "s") or !strcmp(exit, "sim")) { | |
abort(); | |
} else { | |
access_welcome(); | |
} | |
} | |
} | |
/** | |
* Acessar Pagina de Login | |
*/ | |
void acccess_login(){ | |
char message[50] = "login"; | |
message_welcome(message); | |
cout << endl << " [@] Digite seu Nick: "; | |
cin.getline (nick, 100); | |
cout << " [+] Digite sua Senha: "; | |
cin.getline (pass, 100); | |
// Abrir dados.. | |
fname = fopen("name.txt", "rt"); | |
fpass = fopen("pswd.txt", "rt"); | |
// desbug | |
sprintf(nick, "%s\n", nick); | |
sprintf(pass, "%s\n", pass); | |
// ler dados.. | |
int i = 0; | |
while(!feof(fname) and i == 0) { | |
fgets(dname, 100, fname); | |
fgets(dpass, 100, fpass); | |
while(dname != NULL) { | |
if(i == 0) { | |
if(!strcmp(dname, nick) and !strcmp(dpass, pass)) { | |
access_welcome(); | |
} else { | |
char error[50] = "error"; | |
char message[50] = "login"; | |
message_error(error); | |
acccess_login(); | |
} | |
} | |
} | |
} | |
fclose(fname); | |
fclose(fpass); | |
} | |
/** | |
* Acessar pagina de cadastro | |
*/ | |
void access_register(){ | |
char message[50] = "register"; | |
message_welcome(message); | |
// Obtendo valores | |
cout << " [@] Digite seu Nick: "; | |
cin.getline (nick,100); | |
cout << " [+] Digite sua Senha: "; | |
cin.getline (pass,100); | |
cout << " [+] Repite sua Senha: "; | |
cin.getline (rpas,100); | |
// analizando.. | |
if(!strcmp(pass, rpas)) { | |
system(clear); | |
save(nick, pass); | |
acccess_login(); | |
} else { | |
char message[50] = "register"; | |
message_welcome(message); | |
char error[50] = "passnotrpas"; | |
message_error(error); | |
int i = 0; | |
while(i == 0) { | |
cout << " [+] Digite sua Senha: "; | |
cin.getline (pass,100); | |
cout << " [+] Repite sua Senha: "; | |
cin.getline (rpas,100); | |
if(!strcmp(pass, rpas)){ | |
save(nick, pass); | |
system(clear); | |
acccess_login(); | |
} | |
} | |
} | |
} | |
/** | |
* Login e cadastro de Usuario com Dados permantes | |
* @return int | |
*/ | |
int main(int argc, char const *argv[]) | |
{ | |
system(clear); | |
if(!fopen("name.txt", "rt") and !fopen("pswd.txt", "rt")) { | |
access_register(); | |
} else { | |
acccess_login(); | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment