CVVEN - PHP

Présentation du contexte et des tâches effectuées

Le CVVEN (Comité pour les Villages de Vacances de l'Education Nationale) est une association (fictive) régie par la loi de 1901, et qui joue le rôle de comité d'entreprise auprès de tous les agents de l'Education Nationale. Le CVVEN dispose de 4 villages de vacances répartis dans toute la France : Les Rousses (Jura), La Rochelle (Charente-Maritime), Saint-Anthème (Puy-de-Dôme), et Villefort (Lozère). Pendant les congés scolaires, les villages peuvent être réservés par les agents adhérents et leur famille pour des séjours d'une ou plusieurs semaines. Ces séjours de vacances sont subventionnés en fonction du quotient familial. Les agents disposent sur place de services de restauration, d'animations, d'équipements sportifs...

Avec le cahier des charges, on étudie les besoins afin d’apporter une solution adaptée. Pour commencer, on établit un schéma de bases de données :


Le CVVEN avait ici besoin d’une application web permettant la réservation des séjours de vacances pour les agents, et l’organisation des colloques (réservation de salles, chambres, repas).

Il a également été demandé de développer cette application avec le langage de programmation PHP et le framework CodeIgniter.

Partie I : L'inscription

L’inscription est la première étape qu'un client doit effectuer pour réserver une place, cette étape dépend de la table "Adhérent".

Les informations saisie par le client dans le formulaire de l’inscription est renvoyés vers le controleur pour que le controleur vérifie la compatibilité des informations et ceux qui sont demandés. Après cela si les informations passent ce test de vérification ils sont renvoyés vers le modèle pour les insérer dans la base. Avant ça le mot de passe est crypté pour augmenter la sécurité des informations des clients.

Une fois que tout ces étapes sont terminées le client peut se connecter et réserver ses places.

Pour vérifier le formulaire on a utilisé "le helper" de Codeigniter : $this->load->helper('form'); Et la fonction from_Validation de library : $this->load->library('form_validation'), et on avait utilisé set_rules pour définir les conditions de validation par exemple : $this->form_validation->set_rules("Nom", "Votre Nom", "required");

Partie II : Réservation

La réservation est entre autre la dernière étape du projet avant de pouvoir s’intéresser à l’aspect graphique de l’application. Le modèle de la réservation se servira des tables “Réservation” et “Adhérent”.

Ici, le modèle récupèrera les données saisies au niveau du formulaire telles que la date de début et la date de fin qui auront également été vérifiées à l’aide de la librairie formValidation. Mais il récupèrera également l’id de l’adhérent connecté grâce à la session initialisée avec la partie “Connexion”.

Ces données seront ensuite insérées dans la base de données suite à l’utilisation de la méthode insert de la librairie db qui permet d’utiliser des méthodes pour modeler sa base de données sans passer par des requêtes SQL brutes.

Au final on retrouve notre réservation dans la base de données et l’on peut également savoir qui l’a effectué avec l’id de l’utilisateur connecté que l’on a récupéré et qui définit donc la contrainte d’intégrité entre la table “Réservation” et la table “Adhérent”.

Partie III : Connexion

La connexion fut l’étape qui suivit directement l’inscription, et qui sera nécessaire plus tard pour la réservation. Tout comme l’inscription, le modèle de la connexion se servira majoritairement voir exclusivement de la table « Adhérent ».

Dans cette partie, un simple mécanisme est en place. Le modèle ira interroger la base de données avec comme paramètre, le login et le mot de passe saisis par l’utilisateur, et enverra au contrôleur, sous la forme d’un stdClass (qu’on va caster en Array), ce que la requête a renvoyé. Par contre, puisque le mot de passe a été crypté grâce au md5, on va devoir crypter le mot de passe saisi pour pouvoir comparer correctement le mot de passe saisi avec le mot de passe de la base.

- Si la requête ne renvoie rien, alors la combinaison login/mdp saisie par l’utilisateur est mauvaise, et il devra alors en essayer une nouvelle.
- Si la requête renvoie quelque chose, cela veut dire que la combinaison convient, et donc, que nous pourrons initialiser les variables de session, pour que l’utilisateur soit connecté.

D’ailleurs, par rapport aux variables de session, on va initialiser trois variables :

$_SESSION[‘user-id’] , qui est l’identifiant du client, qui nous servira pour les reservation au vu des contraintes d’intégrité
$_SESSION[‘username’] , qui est le pseudonyme de l’adhérent
$_SESSION[‘is_logged’], qui est une variable booléen, qui n’est vrai que lorsque la connexion s’est bien passée.