void* removeUser(const char* id) { if (0 == userExist(id)) return; char cmd[2000] = {0}; sprintf(cmd,"delete from users where users.id=%s; delete from photos " "where user_id=%s; delete from tags where user_id=%s;",id, id, id); EXE_SQL_CMD(cmd); }
void* addPhoto (const char* user_id, const char* photo_id){ if (0 == userExist(user_id)) return; /*Check if photo+user in photos. */ char qry[2000] = {0}; sprintf(qry,"select user_id from photos as t where t.user_id = '%s' AND t.id = '%s'",user_id, photo_id); PGresult *res = EXE_SQL_QRY(qry); if ( 0 < PQntuples(res)){ PQclear(res); printf(EXISTING_RECORD); return 0; } PQclear(res); char cmd[2000] = {0}; sprintf(cmd, "INSERT INTO photos(id, user_id) VALUES(%s,%s)", photo_id ,user_id ); EXE_SQL_CMD(cmd); }
void* tagPhoto (const char* user_id, const char* photo_id, const char* info){ if (0 == userExist(user_id)) return; /*Check if photo+user+info in photos. */ char qry[2000] = {0}; sprintf(qry,"select user_id from tags as t " "where t.user_id = %s AND t.photo_id = %s AND t.info = '%s'",user_id, photo_id,info); PGresult *res = EXE_SQL_QRY(qry); if ( 0 < PQntuples(res)){ PQclear(res); printf(EXISTING_RECORD); return 0; } PQclear(res); char cmd[2000] = {0}; sprintf(cmd, "INSERT INTO tags(photo_id,user_id,info) VALUES(%s,%s,'%s')", photo_id ,user_id,info ); EXE_SQL_CMD(cmd); }
Utilisateur auth(){ Utilisateur user; printf("##############################################################\n"); printf("# authentification #\n"); printf("##############################################################\n\n"); printf("Nom : "); scanf("%s", user.nom); clear(); printf("Mot de passe : "); scanf("%s", user.password); clear(); printf("\n"); //vérification login et mdp if(!userExist(user.nom, user.password)) errorUserExist(); else printf("vous etes maintenant connecte!\n"); printf("\n"); //ajout dans le fichier historique addAction(user.nom,"Connexion"); return user; }
Utilisateur inscription(){ char saisie[128], dirUser[256] = "", fileHistorique[256] ="", fileAmi[256] = "", fileMsgEnvoye[256] = "", fileMsgRecu[256] = ""; Utilisateur user; FILE * fic; // Saisie du login et mot de passe printf("##############################################################\n"); printf("# S'inscrire #\n"); printf("##############################################################\n\n"); printf("Nom : "); scanf("%s", user.nom); clear(); while(1){ printf("Mot de passe : "); scanf("%s", user.password); clear(); printf("Mot de passe (confirmer) : "); scanf("%s", saisie); clear(); if(strcasecmp(user.password, saisie)==0) break; else { printf("Les mots de passes sont différent!\n"); printf("Veuillez les resaisir!\n"); } } // enregistrement de l'utiliseur (users.txt) if ((fic = fopen(FILE_USERS, "a" )) < 0) { fprintf(stderr, "Erreur : %s ne peut être ouvert\n",FILE_USERS); exit(EXIT_FAILURE); } if(userExist(user.nom, NULL)){ printf("\nLe nom d'utilisateur exsite déjà!\n"); printf("Veuillez resaisir les données!\n\n"); return inscription(); } else { fprintf(fic, "%s %s\n", user.nom,user.password); fclose(fic); // créaction du dossier utilisateur strcat(dirUser, DIR_USERS); strcat(dirUser, user.nom); mkdir(dirUser, 0777); // création du fichier gérant l'historique de l'utilisateur strcat(fileHistorique, DIR_HISTORIQUES); strcat(fileHistorique, user.nom); strcat(fileHistorique, ".txt"); fic = fopen(fileHistorique, "w"); fclose(fic); // création du fichier gérant les amis de l'utilisateur strcat(fileAmi, dirUser); strcat(fileAmi, "/amis.txt"); fic = fopen(fileAmi, "w"); fclose(fic); // création des fichiers gérant les messages de l'utilisateur strcat(fileMsgEnvoye, dirUser); strcat(fileMsgEnvoye, "/envoyes.txt"); fic = fopen(fileMsgEnvoye, "w"); fclose(fic); strcat(fileMsgRecu, dirUser); strcat(fileMsgRecu, "/recus.txt"); fic = fopen(fileMsgRecu, "w"); fclose(fic); printf("\n"); printf("vous etes maintenant connecte!\n"); printf("\n"); //ajout dans le fichier historique addAction(user.nom,"Création_du_compte"); return user; } }