SRC2 TP3 PHP
TP3 de PHP - upload, sessions, prog. objet
Il vous faudra faire uncompte-rendupour chacun des TPs, reflétant ce que vous avez fait, ce que vous avez compris.
Ce compte-rendu doit être rendu sous forme d’un fichier.
Date limite : vendredi 14 novembre
Objectif :Charger des images sur un serveur. S’authentifier pour pouvoir le faire, utiliser des sessions.
Outils :le cours, le manuel de référencehttp://fr.php.net/manual/fr/.
But du TP
Nous allons créer une page web permettant de visualiser des images dont les noms sont stockés dans une base de données. Un utilisateur qui s’est identifié a le droit de rajouter des images dans la base de données, un utilisateur non identifié ne peut que consulter les images de la base de données. Le travail minimal à réaliser pour ce TP est :
– Créez, dans votre répertoire de travail (sous-dossier depublic_html/) un répertoireimagesdans votre répertoire de travail, et stockez-y deux petites images de votre choix. Ce sont les images présentes sur le serveur, qu’il faudra afficher. Créez, à l’aide de phpmyadmin, une table images avec trois champs (id_image, titre, theme), et une table utilisateurs avec trois champs (id_utilisateur,login,password) et rentrez au moins un utilisateur dans la tableutilisateuret la description de vos deux images dans la table images.
– Gérer l’identification dans une colonne à gauche de la page web. Grâce à des sessions, la page web se souviendra d’un utilisateur qui s’est déjà identifié.
– Dans la partie principale de la page : affichage de deux images présentes sur le serveur.
– Charger une image : un formulaire sera proposé à un utilisateur authentifié, qui lui permet de charger une nouvelle image sur le serveur (rajouter une image dans le répertoireimages/et insérer (INSERT) sa description dans la base de données).
Structure proposée pour gérer le TP
Vous pouvez structurer ainsi votre projet, en différents fichiers (utilisez require_once() pour inclure un fichier dans un autre) :
– Un fichier pour l’affichage de la page principale, avec au moins une colonne de gauche (identification) et une partie centrale (affichage des images).
– Un fichier pour gérer l’identification : affiche un formulaire d’authentification si $_SERVER["login"] est vide, sinon affiche bonjour, Dupont si Dupont est le nom stocké dans $_SERVER["login"]. Dans ce dernier cas (utilisateur identifié), on affiche également un formulaire permettant de charger une image sur le serveur (c’est- à-dire dans votre répertoireimagesprésent dans l’arborescence depublic_html).
– Un fichier pour gérer les bases de données. Faites une classegestion_basequi a pour attributs privés$host, $user, $pass, $bd, les données nécessaires pour se connecter, et$resultatqui contiendra le résultat d’une requête. Elle aura pour
méthodes les fonctions connexion(), close(), requete($requete), retourne_ligne() et un constructeur qui permettent respectivement d’ouvrir une connexion, de la fermer, d’envoyer la requête $requeteau serveur de base de données, de retourner une ligne de résultat grâce à mysql_fetch_array(), et de construire une connexion.
– Un fichier pour gérer l’affichage des images présentes dans le répertoire images dans la partie centrale de la page. Il faudra faire une requête à la base de données pour trouver les noms de toutes les images présentes sur le serveur, et les afficher à l’écran.
Prolongements possibles
Ce Tp, si vous voulez le mener à terme, peut prendre pas mal de temps. Il ne vous est pas demandé de tout faire parfaitement. Vous devez au moins afficher deux images, savoir en charger une sur le serveur, et gérer les identifications (en utilisant un mécanisme de session).Utilisez ce qui a déjà été fait (cf corrections des TDs).
Vous pouvez cependant, si vous avez le temps, faire aboutir ce projet : proposez dans la fenêtre principal un formulaire qui permette à l’utilisateur de choisir quelles images il veut voir apparaître (par exemple, si vos images sont des photos de vacances, dans le champthemevous pouvez mettre le nom du pays où ont été prises ces photos ; l’utilisateur peut alors choisir, grâce au formulaire, le pays dont il veut voir vos photos et les voir apparaître dans une (ou plusieurs s’il a sélectionné plusieurs pays) tables HTML), gérez la taille des images (vous n’en affichez qu’une version réduite dans votre page, vous pouvez pour cela utiliser la correction du dernier TD sur le redimensionnement d’une image), gérez grâce à du CSS le style de votre page d’accueil, où vous pouvez également mettre un haut de page et un pied de page, etc...