1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
// On inclut les bibliotheques indispensables
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include "bibliotheque.h"
#include "fonctions.h"
// On fixe les constantes
#define TAILLE_GRANDE_CHAINE 100
#define TAILLE_CHAINE_TYPE_COMPTE 7
// Fonction pour la connexion au programme. Renvoie le type d'utilisateur
int identification()
{
int authentification = 0, i = 0;
// Pour recevoir les donnees
char code[TAILLE_GRANDE_CHAINE];
char chaine_lue[TAILLE_GRANDE_CHAINE], code_lu[TAILLE_GRANDE_CHAINE];
char login[TAILLE_GRANDE_CHAINE], mot_de_passe[TAILLE_GRANDE_CHAINE];
char login_lu [TAILLE_GRANDE_CHAINE], mot_de_passe_lu[TAILLE_GRANDE_CHAINE];
char type_compte[TAILLE_CHAINE_TYPE_COMPTE];
FILE *fichier_login = NULL; // Pointeur du fichier contenant la liste des
// On ouvre le fichier qui contient les logins et mots de passe
fichier_login = fopen("fournisseurs.csv", "r");
if(fichier_login != NULL) // On verifie que l'ouverture est correcte
{
// On demande l'identification
printf("\nVeuillez vous identifier : \n\nLogin : ");
fgets(login, TAILLE_GRANDE_CHAINE, stdin);
// On supprime le retour chariot
coupe_retour_chariot(login);
printf("Mot de passe : ");
fgets(mot_de_passe, TAILLE_GRANDE_CHAINE, stdin);
coupe_retour_chariot(mot_de_passe);
// On parcourt le fichier a la recherche du login
while(fgets(chaine_lue, TAILLE_GRANDE_CHAINE, fichier_login) != NULL
&& authentification == 0)
{
// En prenant au passage l'identifiant unique
strcpy(code_lu,strtok(chaine_lue, ";"));
// Ainsi que le login
strcpy(login_lu,strtok(NULL,";"));
if(strcasecmp(login_lu, login) == 0)
{
// S'il est trouve, on verifie que le mot de passe correspond
strcpy(mot_de_passe_lu,strtok(NULL,";"));
if(strcasecmp(mot_de_passe_lu, mot_de_passe) == 0)
{
// Si c'est le cas, on valide et on dit bonjour
authentification = 1;
printf("Bonjour, %s !\n\n", login);
// Sans oublier de refermer le fichier
fclose(fichier_login);
return 1;
}
}
}
// Sinon on signale l'erreur
if(authentification != 1)
{
printf("\n\nErreur de connexion : login ou mot de passe errone.");
fclose(fichier_login);
return 0;
}
}
else
{
// On previent si le fichier s'est mal ouvert
printf("Identification impossible. Fichier login introuvable.");
return 0;
}
}
// Fonction du prompt
void prompt(int type_compte, struct clients *pointeur_racine_bas)
{
char commande[TAILLE_GRANDE_CHAINE]; // Chaine contenant la commande
int i, commande_connue;
printf("#############################################################\n\n");
// Boucle de prompt qui tourne jusqu'a la demande de quitter
while(strcasecmp(commande, "QUITTER") != 0)
{
commande_connue = 0;
strcpy(commande,"neutre");
// On recupere la commande
printf("COMMANDE > ");
fgets(commande, TAILLE_GRANDE_CHAINE, stdin);
// On supprime le retour chariot
coupe_retour_chariot(commande);
// Si c'est quitter, on ne fait rien de particulier
if(strcasecmp("QUITTER", commande) == 0)
{
commande_connue = 1;
}
// Si c'est un paiement à encaisser...
if(strcasecmp(commande, "PAIEMENT") == 0)
{
commande_connue = 1;
if(type_compte = 1)
paiement(commande);
else
printf("ERREUR > Vous n'avez pas acces a cette commande.");
}
// Si on demande une liste...
if(strcasecmp(commande, "LISTE") == 0)
{
commande_connue = 1;
lister(type_compte, pointeur_racine_bas);
}
// Si la commande n'est pas reconnue, on le signale
if(commande_connue == 0)
printf("ERREUR > Commande non reconnue. Verifiez la synthaxe.\n");
}
// On est poli jusqu'au bout
printf("\nAu revoir !");
return;
} |
Partager