• Aucun résultat trouvé

Document à rendre Vous devez rendre un fichier avec : • Dans le sujet du mail : S3 Licence php avancé 1 : nom et prénom

N/A
N/A
Protected

Academic year: 2022

Partager "Document à rendre Vous devez rendre un fichier avec : • Dans le sujet du mail : S3 Licence php avancé 1 : nom et prénom"

Copied!
10
0
0

Texte intégral

(1)

Document à rendre

Vous devez rendre un fichier  avec :

• Dans le sujet du mail : S3 Licence php avancé 1 :  nom et prénom (sinon => pénalité)

• les codes sources dans une archive utilisable sous linux (tar.gz ou zip) dans un dossier qui porte votre nom (sinon => pénalité)

• un document libreoffice que vous compléterez, qui indique les parties réalisées   (sinon => 

pénalité)

Le document est à rendre pour le  Dimanche …..31 janvier 2016 …. minuit (­3 par jour de  retard)

******************************************************

Vous disposez de 2 tables (table1 et table2) différentes pour chaque sujet Vous remplacerez les noms 

   table1      et    table2      par les noms des tables de votre sujet.

Si les consignes ci­dessus ne sont pas respectées,  une grosse pénalité sera appliquée ! Le programme doit obligatoirement respecter l’architecture MVC vue en TD et TP avec 3  dossiers "models", "views", "controllers". Le programme doit obligatoirement utiliser des  classes dans les dossiers "models" et "controllers" et un code le plus proche possible de  l'HTML dans les fichiers contenus dans views".

Pour les modèles et les contrôleurs

      : Les classes et les méthodes doivent avoir comme nom

   : un nom qui fait référence à la ressource à modifier (le nom de la table).

Les liens et les actions sur les formulaires doivent respecter la syntaxe 

http://url_du_site/index.php/ressources/action_sur_la_ressource(/paramètres)

Pour les vues dans le code HTML utilisé : pour réaliser les formulaires, vous n'utiliserez  que des champs d'entrées <INPUT> de type « text » ou « submit », les champs de contrôle  comme "date", "email", "number" …. ne sont pas autorisés dans l'HTML : ceci afin de  vérifier que le contrôle des données est bien fait coté serveur.

DONC

REQUIRED, PATTERN,  type= "number" , type="date"  … sont interdits dans les vues 

« html »

réaliser une version le routeur SILEX, avec le moteur de template SLIM Partie 1

      : la base (%)

➢ réaliser un fichier SQL de test : SUJET_VotreNom.sql (le mettre sur la racine de votre  script)

➢ respecter les normes des ORM doctrine, Eloquent, zend concernant les noms de tables, de champs (id, clé etrangére)

➢ définir la contrainte (jointure) entre la clé primaire et la clé étrangère  des 2 tables voir https://laravel.com/docs/5.1/eloquent#defining­models

exemple : 

(2)

Partie 2

      : affichage de la     table1

➢ réaliser une méthode qui appelle des vues pour afficher le contenu du tableau “ table1”

lors de l’affichage de la table1, ne pas afficher la clé étrangère mais un champ plus  compréhensible pour l’utilisateur de l'autre table (jointure).

➢ Dans la vue : rajouter 

○ un lien pour modifier chaque enregistrement

○ un lien pour supprimer chaque enregistrement

○ un lien en fin de tableau pour créer un enregistrement

Partie 3

      : ajout d'un enregistrement dans la     table1

➢ réaliser la méthode du contrôleur  puis la vue (formulaire) qui est appelée lorsque le lien  est « sélectionné » pour créer un enregistrement

➢ réaliser la méthode qui va vérifier les données, puis enregistrer les données dans la table  lors de la soumission du formulaire

Lors de la validation du formulaire, vérifier les données, si une erreur est constatée  sur les champs d'entrée du formulaire, rappeler la vue du formulaire avec les  valeurs saisies et signaler les erreurs sur les champs.

Exemple :

○ vérifier que  chaque chaîne de caractères est composée de 2 caractères minimum

vérifier que les dates sont au bon format et sont bien des dates (checkdate()),  utiliser des fonctions précédentes

○ vérifier que les numériques sont au bon format Partie 4 : suppression d'un enregistrement  dans la 

   table1

➢ réaliser la méthode qui est appelée lorsque le lien pour supprimer un enregistrement est  sélectionné

Demander confirmation avant de supprimer un enregistrement dans un formulaire  (non fait en TP).

Partie 5

      : modification d'un enregistrement dans la     table1

➢ réaliser la méthode puis la vue qui est appelée lorsque le lien pour modifier un  enregistrement est sélectionné

➢ réaliser la méthode qui va vérifier les données, puis modifier les données dans la table

Lors de la validation du formulaire, vérifier les données, si une erreur est constatée  sur les champs d'entrée du formulaire, rappeler la vue du formulaire avec les  valeurs saisies et signaler les erreurs sur les champs.

(3)

Partie 6  menu et affichage de la deuxième table (

   table2   )

Réaliser une page principale qui affiche 2 liens pour : 

➢ afficher table1

➢ afficher table2  ainsi que :

un formulaire de connexion ou un lien de deconnexion

réaliser le contrôleur et la vue pour afficher la deuxième table

Partie 7 champ de sélection pour créer/modifier un enregistrement

➢ Lors de la création (ou modification) d'un enregistrement : Modifier la méthode du  contrôleur et la vue associée pour afficher  un champs plus compréhensible de la table2 

=> au lieu de la clé primaire (table2) / clé étrangère (table1) dans le formulaire mettre  une liste déroulante ; 

=>utiliser les balises <select>  et les <option> 

➢ réaliser un modèle sur la table 2 pour récupérer les valeurs contenues dans la liste  déroulante

Lors de la validation du formulaire, vérifier les données, si une erreur est constatée  sur les champs d'entrée du formulaire, rappeler la vue du formulaire avec les  valeurs saisies et signaler les erreurs sur les champs.

Vous devez ré­afficher le même champ en cas d'erreur (<select>)

Lors de la création d'un enregistrement, le champ select est vide (rien est  sélectionné à l'ouverture du formulaire)

Lors de la création d'un enregistrement, le bon champ <select> est sélectionné lors  de l'ouverture du formulaire

L'attribut selected est placé dans <option> lorsque la clé étrangère de l'enregistrement est égale à la valeur du tableau associatif récupérée à l'aide du modèle (méthode dans la classe modèle)   de la table 2

Partie 8  Gestion des connexions

➢ les connexions sont possibles et fonctionnelles : 

afficher la table2 : ce lien sera affiché si une personne est connectée (elle possède  des droits de session)

si la personne est connectée et si elle possède les droits d'administrateur  alors elle  visualise les liens pour créer/modifier/supprimer les enregistrements dans la table  1 sinon ces liens n'apparaissent pas

faire la vérification en début de méthode dans le contrôleur

(4)

Partie 9 

     réaliser une classe helper_date

créer une classe que l'on appelle « helper_date » dans un fichier helper_date.php dans un dossier  helper avec 3 méthodes :  

* une méthode qui transforme les dates du format américain au format français

* une méthode qui transforme les dates du format français au format américain

* une méthode qui vérifie que la date est correcte (format et valeur (pas de 29 février))

http://stackoverflow.com/questions/141315/php­check­for­a­valid­date­weird­date­conversions http://php.net/manual/fr/class.datetime.php

utiliser ce helper dans votre contrôleur pour vérifier les dates et les afficher  Partie 9 

     faille csrf (et sécurité)

* prise en compte de la faille csrf

* réflexion sur les injection

(utilisation de htmlspecialchar … ou utilisation des helpers de symfony , queryBuilder (requêtes  paramétrées))

aidez vous des liens suivant :

http://silex.sensiolabs.org/doc/usage.html http://g­ernaelsten.developpez.com/cours/Silex/

https://openclassrooms.com/courses/evoluez­vers­une­architecture­php­

professionnelle/iteration­3­integration­du­framework­php­silex

(5)

Pour les tables :

sujet 1 : Gérer  dans quel département est un employé

(nom_dep : Production, Marketing, Méthode, Recherche et développement ...dans une entreprise).

       table1        table2

sujet 2 :  gérer les activités dans une association de loisirs et les locaux où les activités se  déroulent

table1 table2

sujet 3 :gérer les opérations bancaires (débits crédits (nature) ; type opérations : virement,  retraits, remise de chèques, remise/retrait espèces …)

(6)

sujet 4 : gérer et afficher les joueurs de club de foot

table1 table2

sujet 5 : gérer et afficher des types de voitures

table1 table2

sujet 6 : gérer des films par type dans un site web

table1 table2

(7)

sujet 7 : gestion des réparations dans un garage

table1 table2

sujet 8 : gérer des bandes dessinées

       table1 table2

sujet 9 : gérer les ordinateurs du département

      table1 table2

(8)

sujet 10 : gérer la location d'emplacements de commerces sur un marché couvert

      table1 table2

sujet 11 : gérer les dépenses d'employés d'une entreprise (déplacement, hôtel ….)

table1          table2

sujet 12 : gérer les spectacles dans un site web 

table1          table2

(9)

sujet 13 :

table1 table2

gérer les articles d'un journal sur le net

date_ajout (format jj/mm/aaaa) : vérifier ce champ dans le contrôleur

sujet 14 :

table2 table1

gérer les locations de place de marché 

date_location (format jj/mm/aaaa) : vérifier ce champ dans le contrôleur

(10)

sujet 15 :

Références

Documents relatifs

[r]

Vous avez plusieurs tâches à réaliser durant cette journée de travail : mettre en place votre ardoise du bar et proposer des cocktails création, anticiper la soirée anniversaire

www.enneagone.jimdo.com Lycée Jules Supervielle 2019 M.Darnaudet Généralités sur les Fonctions _ correction. Exercice 1 : Lecture graphique

A su présenter clairement les informations principales A su donner des exemples concrets pour illustrer son propos A utilisé un langage poli et adapté. A parlé fort, de

Enfin, quand il reçoit un émissaire d’une autre famille, il parle la moitié du temps des taxes, l’autre de la criminalité (et jamais de Roméo et Juliette)?. Question 1 Quelle est

Question 2 Dans la première variante du jeu, on gagne 10 euros si les résultats des dés sont identiques, on gagne 3 euros si le résultat du premier dé est supérieur (strictement)

On note Z la variable aléatoire donnant l’année pendant laquelle Bertrand subit sa première panne téléphonique, en numérotant les années à partir de 1 pour l’année d’achat

Soit X la variable aléatoire donnant le prix d’achat de la coque pour le téléphone d’un client pris au hasard dans l’ensemble des clients.. Page 1