TP PHP (/HTML/CSS/PostgreSQL)

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