TP PHP (/HTML/CSS/PostgreSQL) ENSIIE - 2014/2015 Le but de ce TP est de compl´eter les fichiers fournis pour r´ealiser une micro-application interactive qui permet, suivant le choix de l’utilisateur, de : — visualiser le nom et le d´ebit d’un client dont il saisit le num´ero ; — modifier le d´ebit du client dont il saisit le num´ero ; — cr´eer un nouveau client en saisissant son num´ero, son nom et son d´ebit initial. Remarque : Dans la suite, login est ` a remplacer par votre login de salle TP. Partie 1 - Mise en place de la base de donn´ ees 1 - Connectez-vous ` a la base vins login : psql –h pgsql -d vins login (Si vous ne vous souvenez plus du nom de votre base, connectez-vous sans nom de base psql –h pgsql effectuez la commande \l pour connaˆıtre la liste des bases existantes, et faites une recherche sur votre nom avec /nom. Si celle-ci n’existe pas ou plus, recr´eez-la en vous connectant `a la base par d´efaut : psql –h pgsql puis cr´eez la base create database vins login ; quittez psql \q et connectez-vous ` a la base cr´e´ee comme indiqu´e ci-dessus) 2 - Cr´eez dans la base de donn´ees vins login une relation tp client (cf annexe A) tp_client(n_client, nom_client, debit_client) n_client : integer, primary key nom_client: varchar(20) debit_client : float Ins´erez au moins 3 n-uplets pour les tests ult´erieurs. Rappel de la syntaxe pour l’insertion d’un tuple : INSERT INTO tp client VALUES(1,’Mme Truc’, 3.2); 3 - Donnez les droits de lecture et de mise `a jour `a l’utilisateur tpphp : grant all privileges on tp client to tpphp; 4 - Si vous ne l’avez pas encore fait, cr´eez un r´epertoire ~/public html. — Enregistrez dans votre home l’archive contenant les fichiers du TP `a partir de ce lien. — Extrayez de l’archive le r´epertoire tpPHP qui contient les fichiers n´ecessaires au TP : tar zxvf tpPHP.tar — Mettez les fichiers de ce r´epertoire dans ~/public html : mv tpPHP/* ~/public html 1 — Modifiez si n´ecessaire les droits sur le r´epertoire ~/public html et sur votre HOME pour les rendre traversables (chmod o+x), et sur les fichiers de ~/public html pour qu’ils soient lisibles par tous (chmod o+r). 5 - Lisez le sch´ema d’enchaˆınement des pages donn´e figure 1. Partie 2 - Compl´ etion des fichiers fournis Le travail consiste ` a compl´eter, suivant les indications donn´ees ci-apr`es, les diff´erents fichiers PHP fournis pour r´ealiser la micro application de gestion client. Dans le texte des pages PHP, les parties `a ajouter ou modifier sont en commentaire. Apr`es chaque modification, il faut tester si la page se comporte comme pr´evu. Pour tester : 6 - Lancez un navigateur (comme firefox) sur votre machine. 7 - Tapez l’URL : http://pgsql/~login /tpInit.php Attention : respectez les noms des variables utilis´ees dans les programmes fournis que vous devez compl´eter Partie 3 - Modification du contenu statique et de la pr´ esentation de la page d’accueil 8 - Modifiez le fichier tpInit.php : ajoutez le texte suivant qui sera affich´e avant le champ de saisie du mot de passe : Bonjour, bienvenue sur l’application de gestion des d´ ebits clients. Commencez par vous authentifier. . Testez pour voir si l’affichage est conforme `a votre attente. (sch´ema : ´ecran 1) 9 - Compl´etez la fonction pied() dans le fichier tpMiseEnPage.php afin qu’elle g´en`ere les balises fermantes pour le corps des pages (</body>) et pour le document HTML (</html>). Remarque : Si vous voulez tester la validit´e du code HTML de vos pages, vous pouvez copier/coller le code source de vos pages et demander la validation directe de ce code au validateur du W3C. 10 - Modifiez la feuille de style fournie (tpStyle.css) afin d’afficher les titres de page dans la couleur de votre choix (par exemple en bleu clair #8888dd). Partie 4 - Configuration de l’application 11 - Modifiez le fichier config.php qui doit contenir l’initialisation des variables suivantes : — dans la variable $nomBase, le nom de la base de donn´ees utilis´ee (celle dans laquelle vous avez cr´e´e la relation tp client) ; — dans la variable $nomuser, le nom d’utilisateur tpphp utilisant la base de donn´ees. Partie 5 - R´ ealisation de l’application 12 - Revenez sur la page tpInit.php et entrez le mot de passe. Si le mot de passe est valid´e (la connexion ` a la base de donn´ees a bien eu lieu), le fichier tpMenu.php est inclus dans tpVerifMDP.php pour afficher le formulaire de saisie du num´ero client et de l’action que l’on veut faire sur ce client. Compl´etez la d´efinition de ce formulaire dans tpMenu.php (sch´ema : ´ecran 2). 2 13 - Dans le fichier tpMiseEnPage.php, compl´etez la fonction retourAuMenu(). Cette fonction sert ` a afficher les liens permettant ` a l’utilisateur de revenir au menu (tpMenu.php) ou de quitter l’application (tpQuitter.php) (sch´ema : en bas des ´ecrans 3 et 5). 14 - Dans le fichier tpConsult.php, compl´etez la fonction consult(). Il faut faire ex´ecuter une requˆete SELECT au SGBD. Cette requˆete retourne soit une erreur, soit un seul tuple. Transmettez le r´esultat sous le format indiqu´e dans le commentaire. 15 - Dans tpGestionClient.php, dans le cas v (visualisation), affichez le r´esultat de l’ex´ecution de la fonction consult() (sch´ema : ´ecran 3). Si tout fonctionne, la partie consultation d’un client est compl`etement r´ealis´ee. 16 - Dans tpGestionClient.php, compl´etez le cas m , modification du d´ebit du client. Engendrez l’affichage des num´ero, nom et d´ebit du client et le formulaire (qui doit appeller tpModifClient.php) permettant de saisir le nouveau d´ebit du client et de transmettre en champ cach´e le num´ero du client ` a mettre ` a jour (sch´ema - ´ecran 4). 17 - Compl´etez tpModifClient.php. (sch´ema - ´ecran 5). La partie client est alors compl`etement r´ealis´ee. m , modification du d´ebit du 18 - Si cela n’a pas ´et´e fait au fur et a` mesure du TP, reprendre le code de ce TP pour le rendre aussi modulaire et g´en´erique que possible. Vous pourrez si vous le souhaitez vous appuyer sur le patron Mod`ele Vue Contrˆ oleur vu en cours. 19 - R´ealisez la partie c , cr´eation du client : saisie du num´ero de client, nom et d´ebit du client. Cr´eez le client dans la base de donn´ees en v´erifiant que le num´ero n’existe pas d´ej`a, affichez un message suivant le r´esultat de la cr´eation et affichez le menu. 3 Figure 1 – Sch´ema d’enchaˆınement des pages 4 A Cr´ eation de la relation tp client -- If table already exists DROP TABLE IF EXISTS tp_client; CREATE TABLE tp_client( n_client INTEGER, nom_client VARCHAR(20), debit_client FLOAT, CONSTRAINT pk_tp_client PRIMARY KEY(n_client) ); 5
© Copyright 2024 Paperzz