ATELIER PHP INITIATION CorrigésTABLE DES MATIERES 1 INTRODUCTION 3 1.1 Schéma de la BD 3 1.2 Ecran type et sommaire 4 1.3 Fonctionnalités 5 1.4 Arborescence du site 6 1.5 CSS 7 1.6 Inclusions et Index 8 1.6.1 index.php 8 1.6.2 _enTeteSommairePied.inc.php 8 1.7 Fichier Modele 10 1.8 Accueil 11 2 GESTION DE LA BASE DE DONNEES 12 2.1 Connexion à la base de données 13 2.2 Visualisation de la table Editeurs 15 2.3 Visualisation avancée de la table Auteurs 17 2.4 Insertion dans la table Editeurs 19 2.5 Insertion dans la table Auteurs + Upload 21 2.6 Suppression dans la table Auteurs 23 2.7 Visualisation dynamique de n'importe quelle table 26 2.8 Visualisation paginée d'une jointure (Livres et auteurs) 29 2.9 Insertion contrôlée (La table livres) 31 2.10 Recherche livre(s) 34 3 GESTION DE FICHIERS 36 3.1 Exporter une table dans un fichier CSV 37 3.2 Explorateur et Import de fichiers CSV dans la BD 39 4 GESTION DE LA PERSISTANCE 42 4.1 Mémorisation des paramètres de connexion dans des cookies 43 4.2 Gestion d'un panier via des variables de session sur une page 45 5 GESTION DES ERREURS 48 5.1 Gestion globale des erreurs 49 6 ANNEXES 52 6.1 Analyse du système 53 6.1.1 Diagramme de contexte statique 53 6.1.2 Diagrammes de cas d'utilisation du BO 54 6.1.3 Diagrammes de cas d'utilisation du FO 55 6.1.4 DET auteurs 56 6.1.5 DSE Voir Auteurs 56 6.1.6 DSE Ajout auteur 57 6.1.7 DAC Ajout auteur 58 6.1.8 Diagramme de déploiement 59 6.2 Modélisation de la BD 60 6.3 Quelques procédures stockées 61
1INTRODUCTION 1.1Schéma de la BD Le fichier de création s'appelle : librairieCreateInsertPs.sql . Notes : Table Editeurs : nom_editeur est Unique. Table Clients : e_mail est Unique. 1.2Ecran type et sommaire 1.3Fonctionnalités Fonctionnalité Technologie Source Destination Accueil HTML Code Du HTML Authentification SQL + Cookie Code-Table clients Cookie Déconnexion Cookie Code Cookie Afficher les éditeurs SQL Table editeurs Ecran Afficher les auteurs SQL Table auteurs + photo + ancre Ecran Ajouter un éditeur SQL + gestion d'erreurs SQL INSERT + gestion d'erreur Table editeurs Ajouter un auteur SQL + Upload SQL INSERT Table auteurs Supprimer un auteur SQL + PS SQL DELETE + liste déroulante de la table auteurs + Procédure stockée Table auteurs Afficher une table au choix … SQL - Metabase SQL SELECT + liste déroulante de la metabase Ecran Ajouter un livre SQL + RegExpr SQL INSERT + listes déroulantes Table livres Afficher les livres SQL (Jointure) Table livres, auteurs, editeurs (Jointure, photo, …) Ecran Export CSV SQL + Fichier SQL SELECT + table BD Fichier Import CSV Fichier + SQL Fichier CSV Table auteurs Rechercher un livre SQL multi-critères Code Ecran Acheter un livre SQL + Session Table livres Session Gestion d'erreurs Inclusion Code Code
1.4Arborescence du site C:\xampp\htdocs\php\atelier_librairie_v1_2010 Racine du sous site (index.php) css (Fichiers CSS fournis : _librairie.cs et librairie.css) data (Fichiers CSV fournis ou produits via un script, CSV, …) images/litterature (Fichiers jpg fournis…) html (fichiers html) ressources contient le script de création de la BD et d'insertions de base ainsi que le le dossier (.doc) php (Scripts PHP)
Tous les dossiers sont fournis. Le dossier php fourni contient les inclusions et le modèle (fichiers _nomDeFichier). C'est ce dossier que vous devez compléter. Les images sont dans le dossier /images/litterature/ du sous-site WEB (C:\xampp\htdocs\atelier_librairie_v1_2010\images\litterature). Le chemin sera donc ../images/litterature/. Le dossier css contient librairie.css . Le dossier html est vide. Le dossier data contient quelques fichiers et sera alimenté de nouveaux fichiers. 1.5CSS _librairie.css @charset "utf-8"; /* CSS Document : librairie.css ... vert, gris et blanc */ body{background-color:yellowgreen; color:black; font-family:"comic sans ms"; font-size:10pt; } h3{font-family:"comic sans ms"; font-size:medium; color:greenyellow; margin:0; padding:0; } table{margin-top:5px; padding-top:5px; border:1px gray solid; width:400px; border-top:1px gray dotted; } td{padding:3px; margin:0px; } a{color:black; text-decoration:none;} a:hover{color:dimgray; text-decoration:underline;} div{border:0px solid white; padding:5px; background-color:white; } div#enTete{width:800px; height:20px; border-bottom:1px dotted dimgray; text-align:center; background-image:url(../images/litterature/livres_4.jpg); color:yellowgreen; font-weight:bold;} div#sommaire{float:left; width:200px; height:400px; overflow:auto; } div#centre{float:left; width:589px; height:400px; overflow:auto; border-left:1px dotted dimgray;} div#pied{clear:both; width:800px; height:20px; border-top:1px dotted dimgray;} #msg{color:greenyellow; font-weight:bold; } ul#menu{ list-style-type:none; margin:0; padding:0; } #menu li a{ display:block; width:190px; padding:1px; margin:1px; line-height:15px; background-color:dimgray; color:white; text-decoration:none; text-align:center; font-weight:normal; } #menu li a:hover{background-color:greenyellow; color:black; } label.etiquette{color:dimgray; font-family:"comic sans ms"; font-size:1em; display:block; width:150px; float:left; } input[type="text"]{width:150px;} select{color:dimgray; font-family:arial; font-size:1em; margin:3px; padding:1px;} input.saisie{color:dimgray; font-family:arial; font-size:1em; margin:3px; padding:1px; clear:both;} input[type="submit"]{background-color:greenyellow; color:white; font-family:arial; font-size:1em; margin:3px; padding:1px; width:100px; } input[type="reset"]{background-color:red; color:white; font-family:arial; font-size:1em; margin:3px; padding:1px; width:100px; } 1.6Inclusions et Index 1.6.1index.php // --- index.php : une redirectionheader ("location : php/_accueilLibrairie.php"); ?> 1.6.2_enTeteSommairePied.inc.php // --- no-cache : pas de cache // --- no-store : s'applique à tout le message aussi bien dans la réponse que dans la requête // --- must-revalidate : pour que no-cache soit effectif // --- malgré un paramétrage différent du navigateur // HTTP/1.1 //header('Cache-Control: no-store, no-cache, must-revalidate'); // --- Date d'expiration du cache //header('Expires: Mon, 26 Jul 1997 00:00:00 GMT'); // Date du passé // --- Dans le cas de http/1.0 car Cache-Control peut ne pas être implémenté //header("Pragma: no-cache"); // ---------------------- function afficherEntete() // ---------------------- { return "\r\n\tLIBRAIRIE DE LA REPUBLIQUE \r\n"; } // ------------------------ function afficherSommaire() // ------------------------ { $sommaire = ""; $sommaire .= "\r\n\r\n"; return $sommaire; } // -------------------- function afficherPied() // -------------------- { $pied = ""; $pied .= "\r\n\t© Librairie de la République - "; $pied .= "\r\n\tAujourd'hui nous sommes le " . date('d-m-Y') . " et il est " . date('H:i') . "\r\n"; return $pied; } ?> 1.7Fichier Modele _modele_librairie //require_once("_utilitairesBd.inc.php"); require_once("_enTeteSommairePied.inc.php"); ?>afficherEntete(); ?>
afficherSommaire(); ?>
TITRE $lsMsg = ""; // --- ICI VOTRE CODE PHP SPECIFIQUE ?> afficherPied(); ?>