Projet GMediatec




1) Introduction


On veut réaliser une application accessible par le Web de gestion de divers medias (musiques, films, livres, etc.) Chaque catégorie de media peut être sur un support particulier (CD, DVD, HDD, papier) et s’il s’agit d’un support électronique, on doit pouvoir déterminer le type de fichier utilisé (fichier PDF, DOC, MP3, AVI, etc.). Le but est que chaque utilisateur inscrit sur le site puisse accéder à la base de données de ses médias, mais aussi que divers utilisateurs puissent partager ces données. Par exemple, plusieurs amateurs de musique classique peuvent mettre en commun les morceaux qu’ils possèdent afin de se les prêter et/ou d’éviter d’acheter les mêmes.


2) Vue d'ensemble



























































3) Solutions retenues


- Par rapport à ce qui a été proposé dans le sujet : "réinitialiser le mot de passe d'un utilisateur en cas de perte", une solution plus efficace a été adoptée : lorsque l'internaute s'inscrit, il rentre simplement son login et son adresse email. Son mot de passe généré aléatoirement lui sera directement envoyé par email. Ceci permet de garantir la validité de son adresse email. Il pourra par la suite, dès sa première connexion, modifier son mot de passe et entrer s'il le souhaite ses informations personnelles.


- Le solution adoptée en ce qui concerne les tables de la base de données est la suivante :



Les tables Utilisateur (U_Id, U_Login, U_Pass, U_Email, U_Civilite, U_Nom, U_Prenom, U_Adresse, U_Pays, U_DateNaissance, U_Profession, U_SiteWeb, U_Inscription, U_Connexion, U_Montrer) et Interet (I_Id, I_U_Id, U_Actualites, I_Art, I_Auto, I_Cinema, I_Education, I_Finances, I_Gastronomie, I_Immobilier, I_Informatique, I_Jeux, I_Maison, I_Mode, I_Music, I_Sante, I_Shopping, I_Sorties, I_Sport, I_Voyages) regroupent toutes les informations relatives à un utilisateur. Les centres d'intérêt des utilisateurs ont été mis dans une autre table pour la clarté des informations. La date d'inscription et la dernière date de connexion sont enregistrées dans les informations de l’utilisateur pour permettre à l’administrateur par exemple de supprimer un utilisateur qui ne s’est jamais connecté au bout d’un an.


La table Messagerie (S_Id, S_E_Id, S_D_Id, S_Date, S_Sujet, S_Message, S_Lu) permet de stocker tous les messages que les utilisateurs s’envoient par le biais du script très simple de messagerie interne.


La table Donnees (D_Id, D_U_Id, D_F_Id, D_M_Id, D_L_Id, D_Support, D_Type, D_Enreg, D_Montrer) est celle qui aura le plus grand nombre de lignes. Elle contient tous les médias des utilisateurs mais seulement le numéro de l’utilisateur, le type, le support et le format du média, un numéro de film, musique ou livre. C’est une structure (D_F_Id, D_M_Id, D_L_Id) un peu « bizarre » et compliquée à gérer mais qui permet d’éviter la répétition des informations par exemple d’un film connu une dizaine de fois voir une centaine de fois ; ce qui implique un gain de place. Un autre avantage est que tous les utilisateurs qui ont enregistré par exemple un film peuvent contribuer à l’ajout d’informations pour ce film.


Les tables Film (F_Id, F_Titre, F_Genre, F_Parution, F_Langue, F_Duree, F_SiteWeb, F_Resume), Musique (M_Id, M_Titre, M_Album, M_Parution) et Livre (L_Id, L_Titre, L_Langue, L_Collection, L_Parution, L_Edition, L_NbPages, L_ISBN, L_Resume) contiennent simplement les informations comme le titre, la parution, … Etant donné qu’un film a plusieurs acteurs, peut avoir plusieurs réalisateurs, une musique plusieurs paroliers, interprètes et compositeurs et un livre plusieurs auteurs, des tables intermédiaires entre Film | Musique | Livre ont dû être crées afin d’éviter une trop grande redondance.


En ce qui concerne la modification de médias dans la partie Utilisateur, pour ajouter par exemple des acteurs dans un film on pourrait très bien demander à l’utilisateur d’entrer dans un bloc de texte (textarea) les différents acteurs chacun sur une ligne en demandant que le nom soit écrit en majuscules et le prénom en minuscules parce que certains noms et prénoms sont décomposés en plusieurs mots. Ceci est assez contraignant ! Une autre solution pas forcément très esthétique a été adoptée : au lieu de mettre des champs textes, deux liens « Ajouter » et « Supprimer » ont été inséré qui ouvrent un popup demandant pour « Ajouter » le nom et le prénom de la personne et pour « Supprimer » donnant la liste des personnes. C’est assez simple d’utilisation ! Le seul inconvénient est que dans la page de modification, l’affichage des personnes n’est pas mis à jour. Par exemple, pour un film les acteurs et les réalisateurs ajoutés ou supprimés par l’intermédiaire de la fenêtre de popup ne sont pas mis à jour dans la page de modification du film. Il faut actualiser la page manuellement parce que si cela avait été fait automatiquement, l’utilisateur ayant modifié certaines informations sans avoir cliqué sur le bouton valider, les perdrait.


Il faut remarquer que si deux utilisateurs modifient un média en « même temps », cela ne pose pas de problème parce que seuls les champs non nuls sont mis à jour. On suppose que les utilisateurs ne mettent pas d’informations erronées. Une solution un peu « lourde » consisterait à vérifier qu’un utilisateur n’est pas en train de modifier déjà le média. Il faudrait aussi fixer une limite de temps pour modifier un média afin de ne pas empêcher la modification d’un média si un utilisateur quitte la fenêtre du navigateur ou le site Web GMediatec alors qu’il était en train de modifier le média.


Pour plus de sécurité, les paramètres permettant de se connecter à la base de données ont été mis dans un répertoire (/Inc) qui est protégé par un fichier .htaccess.


Pour pouvoir installer facilement le site sur un autre serveur, un fichier de configuration a été créé contenant l’adresse du site et les adresses email.


Dans la partie Administration, une option permet de nettoyer les tables, ce qui permet à l’administrateur de supprimer dans les tables Film, Musique, Livre, Personne et les tables intermédiaires (Film_Acteur, Film_Realisateur, Music_Interprete, Music_Compositeur, Music_Parolier, Livre_Auteur) les tuples inutiles. On suppose que les utilisateurs ne suppriment pas des médias en permanence. De plus, le fait de ne pas supprimer ces données automatiquement ouvre une porte vers une amélioration possible du projet qui consisterait à répertorier de nombreux médias permettant aux utilisateurs de chercher des médias susceptibles de les intéresser en faisant des recherches spécifiques comme par genre, date de parution, acteurs, … pour les films.











4) Fichiers


/web/


apropos.php : ce fichier présente le site et explique brièvement ce que l’on peut faire une fois que l’on est enregistré.


connexion.php : cette page efface toutes les variables de sessions. C’est pour cela que la page Connexion/logout.php fait une redirection vers connexion.php. Ensuite, on affiche le formulaire de connexion qui demande un login et un mot de passe. Les données du formulaires son traitées par la page Connexion/login.php. Il y a aussi un lien vers une page Connexion/pconnexion.php qui permet à un utilisateur qui a perdu son login et/ou mot de passe de le/les retrouver.


contact.php : cette page est un formulaire (expéditeur, sujet et message) permettant d’envoyer un message aux responsables du site Web GMediatec. C’est la page contact2.php qui gère les résultats du formulaire.


contact2.php : cette page vérifie que les données du formulaire provenant de la page contact.php sont correctes, notamment que le champ expéditeur soit une adresse email valide, que le champ sujet soit non vide et que le champ message soit non vide. Si c’est le cas, l’email est envoyé ; sinon un message d’erreur est affiché.


faq.php : cette page est une FAQ (Frequently Asked Question). Cela permet de répondre aux questions que les visiteurs se posent souvent.


index.php : cette page est la première du site. Elle liste simplement les news.


inscription.php : cette page est un formulaire qui demande à un visiteur qui veut s’enregistrer un login et son adresse email. Les données du formulaire sont traitées dans la page inscription2.php.


inscription2.php : cette page vérifie que les données du formulaire provenant de la page inscription.php sont correctes, notamment que les caractères du login sont des caractères alphanumériques, que le login n’existe pas déjà, que l’adresse email fournie est valide et que l’adresse email n’existe pas déjà. Si les données sont correctes alors un mot de passe est généré aléatoirement et un email contenant le login, le mot de passe et l’adresse de GMediatec sont envoyés à ce nouvel utilisateur. Le login, le mot de passe, l’adresse email, la date d’inscription son enregistrés dans la base de données. Sinon un message d’erreur est affiché.


statistiques.php : cette page affiche le nombre total de pages vues, le nombre total d’utilisateurs, le nombre de médias publics au total et les 10 derniers médias (Film, Music ou Livre) publics ajoutés ou modifiés.


style.css : la feuille de style. (CSS 2.0)




/web/Inc/


.htaccess : fichier de protection protégeant le contenu du répertoire Inc/


conf.php : ce fichier contient les paramètres permettant de se connecter à la base de données (nom du serveur MySQL, nom de l’utilisateur, mot de passe, nom de la base). Il contient aussi le login et le mot de passe de l’administrateur du site Web.


perso.php : fichier de personnalisation : adresse du site Web, emplacement du fichier de compteur de visites, emplacement du fichier des logs de connexion, différentes adresses email (inscription, contact, …)



/web/Menus/


compteur.txt : fichier stockant simplement le nombre total de pages vues.


haut.php : cette page contient les Meta-Tags (description, keywords, robots, revisit-after, author, Owner, Language, Rating, Distribution, Identifier-url, expires, publisher, copyright, Content-Type), la référence relative (base), le lien vers la feuille de style.
On inclut cette page dans toutes les pages du site entre les balises <head> et </head> après la balise <title> en utilisant : <? include("Menus/haut.php"); ?>


menu.php : cette page contient le logo du site, la navigation du haut et la navigation de gauche (menu). Dans le menu, il y a des liens vers les index.php, apropos.php, inscription.php, connexion.php, statistiques.php, faq.php et contact.php. On inclut cette page dans toutes les pages du site juste après la balise <body> en utilisant : <? include("Menus/menu.php"); ?>


tpsdebut.php : ce fichier contient une fonction qui convertit en float le temps récupéré en microsecondes. Ensuite on enregistre le temps en microsecondes dans une variable en utilisant cette fonction.
On inclut ce fichier dans toutes les pages du site au tout début des pages en utilisant :
<? include("Menus/tpsdebut.php"); ?>


tpsfin.php : ce fichier récupère le temps en microsecondes dans une variable. Ensuite on calcule la durée écoulée (variables de tpsdebut.php & tpsfin.php) et on affiche le résultat.




/web/Connexion/


log.txt : c’est dans ce fichier que l’on enregistre les logs de connexion. (login, date, adresse IP, navigateur)


login.php : cette page vérifie tout d’abord si le login et le mot de passe tapés par la personne par l’intermédiaire du formulaire de la page connexion.php sont ceux de l’administrateur. Si c’est le cas, une session est démarrée, le login et le mot de passe sont enregistrés dans la session en cours, la connexion est enregistrée dans les logs et une redirection vers la page Connexion/Admin/admin.php est faite. Sinon, on vérifie dans la base de données si le login et le mot de passe correspondent à un utilisateur. Si c’est le cas, la date de dernière connexion de l’utilisateur est mise à jour, une session est démarrée, le login et le mot de passe sont enregistrés dans la session en cours, la connexion est enregistrée dans les logs et une redirection vers la page Connexion/Utilisateur/utilisateur.php est effectuée. Dans le cas contraire, une redirection vers une page d’erreur est faite.


logout.php : une simple redirection vers la page connexion.php


pconnexion.php : cette page permet à un utilisateur qui a perdu son login et / ou son mot de passe de les retrouver en saisissant son adresse email dans le formulaire. C’est la page pconnexion2.php qui traitera les données du formulaire.


pconnexion2.php : cette page vérifie que les données du formulaire provenant de la page Connexion/pconnexion.php sont correctes, notamment que l’adresse email est valide et qu’elle se trouve dans la base de données des utilisateurs. Si c’est le cas, un email contenant le login et le mot de passe sont envoyés à cette adresse email. Dans le cas contraire, un message d’erreur est affiché et le formulaire réaffiché.


putilisateur.php : simple page vers laquelle on est redirigé si on entre lors de la connexion un mot de passe erroné. Elle affiche : « Erreur ! Votre Login et/ou votre Mot de passe est incorrect.

Cliquez sur connexion dans le menu pour vous connecter. »




/web/Connexion/Admin/


admin.php : cette page est une page de sommaire contenant les liens vers les pages Connexion/Admin/creer.php, Connexion/Admin/voir.php, Connexion/Admin/chercher.php, Connexion/Admin/nettoyer.php, Connexion/log.txt, Connexion/logout.php.


chercher.php : cette page affiche un formulaire permettant à l’administrateur de chercher un utilisateur en rentrant un login ou une adresse email. Après validation, on cherche le login ou l’adresse email dans la base de données. Si on trouve le login ou l’adresse email alors on affiche des liens permettant de réaliser des opérations sur l’utilisateur (voir ses infos, modifier, supprimer, envoyer un mail). Sinon on affiche un message pour dire que l’on n’a trouvé aucun utilisateur.



creer.php : cette page permet à l’administrateur de créer un utilisateur via un formulaire demandant le login, le mot de passe et l’adresse email pour ce nouvel utilisateur. C’est la page Connexion/Admin/creer2.php qui traitera les données du formulaire.


creer2.php : cette page vérifie que les données du formulaire provenant de la page Connexion/Admin/creer.php sont correctes, notamment que le login est composé de caractères alphanumériques, que le login n’existe pas déjà, que le mot de passe n’est pas nul, que l’adresse email est valide. Si c’est le cas, on insère dans la base de données les informations du nouvel utilisateur. Sinon on affiche un message d’erreur et on réaffiche le formulaire.


envoyer.php : cette page permet à l’administrateur d’envoyer à un utilisateur un email par l’intermédiaire d’un formulaire (Sujet & Message). C’est la page Connexion/Admin/envoyer2.php qui traitera les données du formulaire.


envoyer2.php : cette page vérifie que les données du formulaire provenant de la page Connexion/Admin/envoyer.php sont correctes, notamment que le sujet et le corps du message ne sont pas vides. Si c’est le cas, l’email est envoyé à l’utilisateur. Dans le cas contraire, un message d’erreur est affiché.


modifier.php : cette page affiche un formulaire permettant à l’administrateur de modifier un utilisateur (login et adresse email). Après validation, si le login et le mot de passe ont été entrés correctement les modifications sont prises en compte.


nettoyer.php : cette page permet de nettoyer les tables Film, Musique, Livre, Personne et les tables intermédiaires. Pour les médias, on cherche les identifiants de médias qui ne sont pas présents dans la table Donnees et on les élimine. En ce qui concerne les tables intermédiaires, on cherche celles dont l’identifiant de média n’existe plus dans les tables de médias et on les élimine. Pour la table Personne, on cherche les identifiants de personnes qui ne se trouvent pas dans les tables intermédiaires et on les élimine.


supprimer.php : cette page permet de supprimer un utilisateur. Après avoir vérifié que l’utilisateur existe et affiché le login, l’email, la date d’inscription et la dernière date de connexion de l’utilisateur, on demande une validation. Une fois validé, on supprime les intérêts de l’utilisateur (Interet), on supprime les informations personnelles de l’utilisateur (Utilisateur), on supprime les médias de l’utilisateur (Donnees) et enfin on supprime les messages de la messagerie interne de l’utilisateur (Messagrie).





voir.php : cette page permet à l’administrateur de visualiser les utilisateurs. On affiche le nombre total d’utilisateurs. Ensuite, on affiche dans un tableau le login et la date d’inscription ou de connexion et les opérations sur l’utilisateur à raison de 10 utilisateurs par page. Il est possible de classer les utilisateurs par login, par date d’inscription et par date de connexion. Les opérations que l’on peut effectuer pour chacun des utilisateurs sont voir ses informations, modifier ses informations, supprimer son compte et lui envoyer un message par email.


voirinfos.php : cette page permet à l’administrateur de voir les informations détaillées d’un utilisateur particulier : login, adresse email, civilité, nom, prénom, adresse postale, pays, date de naissance, profession, site Web, date d’inscription, date de connexion et s’il montre ses infos aux autres utilisateurs.




/web/Connexion/Utilisateur/


ajouter.php : cette page permet à un utilisateur d’ajouter un média grâce à un formulaire demandant le type de média (film, musique ou livre), le titre du média, le support du média (CD, DVD, HDD, PAPIER, VHS, VINYLE, AUTRE), le format (PDF, MP3, WAV, OGG, MPG4, DIVX, XVID, RV9, AUTRE) du média et s’il souhaite montrer aux autres utilisateurs ce média. Après validation, on vérifie que les valeurs entrées par l’utilisateur sont correctes, notamment que le titre n’est pas nul, que le type de média correspond bien au support et au format choisi, que l’utilisateur n’a pas déjà rentré ce média dans ses données. Si c’est le cas, si le média existe déjà (l’utilisateur a déjà ce média mais sous un autre format ou un autre utilisateur a déjà enregistré ce média), on lie ce média à ses données sinon au crée un nouveau média et on le lie à ses données. Dans le cas contraire, on affiche un message d’erreur.


charte.php : cette page est simplement la charte que tous les utilisateurs se doivent de lire.


faqu.php : cette page est une FAQ (Frequently Asked Question) pour les utilisateurs. Cela permet de répondre aux questions que les utilisateurs se posent souvent.


messagerie.php : cette page est la page principale de la messagerie interne. Elle affiche le nombre de messages non lus de l’utilisateur. Elle contient aussi des liens vers les pages Connexion/Utilisateur/msgenvoie.php et Connexion/Utilisateur/msgboite.php qui permettent d’envoyer un message à un autre utilisateur et de lire les messages se trouvant dans sa boite.


modif.php : cette page permet à un utilisateur de modifier n’importe quel type de média : film, musique, ou livre. Elle affiche un formulaire en conséquence qui contient les informations du média en cours. En ce qui concerne les acteurs et réalisateurs pour un film, les interprètes, les compositeurs et les paroliers pour une musique et les auteurs pour un livre, une liste des personnes est simplement affichée et deux liens permettant d’ajouter ou supprimer une personne. Ces liens pointent vers une autre page s’ouvrant en tant que popup permettant facilement d’ajouter ou supprimer une personne. Après validation, seuls les champs non nuls sont mis à jour.


modifier.php : cette page permet à un utilisateur de modifier ses informations personnelles par l’intermédiaire d’un formulaire. Après vérification, si les données sont correctes alors la mise à jour est effectuée. Dans le cas contraire, un message d’erreur est affiché.


msgboite.php : cette page affiche le nombre de messages que l’utilisateur a dans sa boite. La limite fixée est de 50 messages. Ensuite, pour chaque message, on affiche si l’utilisateur l’a déjà lu, l’expéditeur, le sujet du message, la date et un lien permettant de le supprimer.




msgenvoie.php : cette page affiche un formulaire permettant d’envoyer un message à un autre utilisateur. Il faut juste remplir le champ destinataire, sujet et message. Si les données sont correctes et que le destinataire existe et qu’il n’a pas dépassé son quota de messages, le message est envoyé. Dans le cas contraire, un message d’erreur est affiché.


msglire.php : cette page permet de lire un message que l’on a reçu. Elle affiche un bouton Répondre et un bouton Supprimer qui vont vers les pages : Connexion/Utilisateur/msgenvoie.php et Connexion/Utilisateur/msgsuppr.php. Ensuite l’expéditeur et la date sont affichés. Puis le titre du message est affiché et enfin le corps du message.


msgsuppr.php : cette page permet à un utilisateur de supprimer un de ses messages après une demande validation.


personnes.php : cette page permet d’ajouter ou de supprimer un acteur ou un réalisateur pour un film, un interprète, un compositeur ou un parolier pour une musique et un auteur pour un livre. Pour un ajouter une personne, un formulaire est affiché demandant le nom et le prénom de la personne à ajouter. Après validation des données saisies, la personne est ajoutée au média correspondant. Pour supprimer une personne, un formulaire est affiché avec la liste des différentes personnes. Il suffit de sélectionner dans la liste la personne que l’on veut supprimer et valider. Elle sera supprimée du média correspondant.


public.php : cette page permet à un utilisateur de rendre public ou non un de ses médias.


rechercher.php : cette page permet à un utilisateur de rechercher un titre complet ou des parties du titre dans les films, les musiques ou les livres de tous les utilisateurs ou d’un utilisateur en particulier. On affiche le nombre de résultats au total puis, un résumé de la recherche et enfin les résultats (titre, utilisateur, support et format) à raison de 10 par page. En cliquant sur la loupe en marron, on peut visualiser la fiche du média.


suppr.php : cette page permet à un utilisateur de supprimer un de ses médias après confirmation.


supprimer.php : cette page permet de supprimer son compte. Après confirmation, les intérêts (interet) de l’utilisateur, ses informations personnelles (Utilisateur), ses médias (Donnees) et ses messages (Messagerie) sont supprimés définitivement.


utilisateur.php : cette page est une page de sommaire contenant les liens vers les pages Connexion/Utilisateur/charte.php, Connexion/Utilisateur/modifier.php, Connexion/Utilisateur/ajouter.php, Connexion/Utilisateur/visualiser.php, Connexion/Utilisateur/rechercher.php, Connexion/Utilisateur/messagerie.php, Connexion/Utilisateur/faqu.php, Connexion/Utilisateur/supprimer.php, Connexion/logout.php.


visualiser.php : cette page permet aux utilisateurs de visualiser leurs médias. Trois boutons (Film, Music et Film) permettent de sélectionner les médias que l’on veut visualiser. On affiche le nombre total de films, musiques ou livres. Ensuite, on affiche dans un tableau le titre du média, son format et son support à raison de 10 médias par page. Il est possible de classer les médias par ordre alphabétique. Les opérations que l’on peut effectuer pour chacun des médias sont rendre le média public, voir les détails du média, modifier le média et supprimer le média.


voir.php : cette page permet aux utilisateurs de voir les informations concernant un média. Pour un film : le titre, le genre, la date de parution, la langue, les acteurs, le(s) réalisateur(s), la durée, le site Web et le résumé. Pour une musique : le titre, l’album, la date de parution, le(s) interprète(s), le(s) compositeur(s) et le(s) parolier(s). Pour un livre : le titre, le(s) auteur(s), la langue, la collection, la date de parution, l’édition, le nombre de pages, l’ISBN et le résumé.




5) Restrictions


On suppose que 2 films, 2 musiques, 2 livres ne peuvent pas avoir le même titre parce que lors de l’enregistrement d’un média, seul le titre est obligatoire.

Pour remédier à cela, il faudrait identifier un film par son titre et sa date de parution, une musique par son titre et son ou ses interprètes, un livre par son titre et son ou ses auteurs.

Cependant, l’utilisateur n’a pas toujours envie de remplir ces données ou alors ne les connaît pas.


Le login des utilisateurs doit être composé de caractères alphanumériques. La casse des caractères n’est pas prise en compte.


Le site Web nécessite une configuration 800x600 au minimum. Il utilise le HTML 4.01 et quelques fonctionnalités des feuilles de styles CSS 2.0. (Limitation en rapport avec les moyens de la fac)


Les utilisateurs ne peuvent pas avoir plus de 50 messages dans leur boite (messagerie interne).




6) Problèmes rencontrés


Choix des tables de la base de données : Il est difficile de peser le pour et le contre. On pourrait passer des semaines à essayer d’adopter le meilleur choix possible. Il est difficile de penser à tout : des problèmes auquel on n’avait pas pensé se posent souvent quand on commence à réaliser le site. Cela dépend aussi de ce que l’on veut vraiment faire avec cette application, du nombre de personnes qui vont l’utiliser, des évolutions que l’on veut y apporter dans le futur, …


La modification des médias : un film a plusieurs acteurs et peut avoir plusieurs réalisateurs, un livre peut avoir plusieurs auteurs, une personne peut aussi bien jouer dans un film et composer aussi une musique.




7) Améliorations effectuées


- Affichage de la date et de l’heure.

- Temps mis pour générer la page.

- Page de présentation

- FAQ pour les visiteurs

- Statistiques (nombre de pages vues, d’utilisateurs, de médias, …)

- Formulaire de contact

- Informations supplémentaires dans les tables Utilisateur, Film, Musique et Livre.

- Mot de passe généré aléatoirement lors de l’inscription et envoyé par email.

- Récupération des informations de connexion par email.

- L’admin peut voir tous les utilisateurs enregistrés avec possibilité de classement.

- L’admin peut modifier le login et l’adresse email d’un utilisateur.

- L’admin peut envoyer un email à un utilisateur par un simple formulaire.
- L’admin dispose d’un moteur de recherche des utilisateurs.

- L’admin peut voir les logs de connexion.

- Classement alphabétique des médias par titre et séparation : 10 médias par page.

- Charte dans l’espace des utilisateurs.

- FAQ pour les utilsateurs.

- Messagerie interne complète pour les utilisateurs avec une limite de 50 messages.



8) Améliorations possibles


Site Web multi-langages : l’astuce consiste à créer un fichier pour chaque langue (fr-lang.php, en-lang.php) et d’utiliser des « define » à l’intérieur des fichiers en séparant bien par des commentaires pour ne pas se perdre ou alors de faire un fichier par page. Ensuite, il suffit en fonction d’une variable lang d’inclure le bon fichier sans oublier de traiter le cas par défaut. Il peut être intéressant d’utiliser un cookie.


Pour plus de sécurité, on pourrait crypter le mot de passe des utilisateurs. (Fonctions md5, crypt)


Un moteur de recherche spécifique aux films, aux musiques et aux livres. Ces moteurs de recherche ne peuvent être vraiment intéressants que si les utilisateurs remplissent les informations des médias.


Ajouter des médias comme les jeux et les logiciels.


Optimiser les requêtes sql afin de pouvoir faire plus de requêtes sql par seconde. Si on est limité en nombre de connexion simultanées, il faut diminuer le temps d'une requête et donc faire plus de requêtes courtes.
Voici quelques astuces :
1. faire des connections sql groupées en un endroit donné.
2. mettre la connexion et la déconnexion juste avant/après la requête, pour minimiser le temps de liaison avec mysql.
3. mettre le résultat dans des variables et les afficher une fois la requête sql finie ou plus tard. C'est-à-dire NE PAS ouvrir la connexion, faire une boucle sql et afficher avec "echo" les résultats dans la boucle, puis fermer seulement la connexion.

Le Web évolue et les besoins aussi. Il y a peu de temps, les normes des langages Web étaient floues. Depuis le HTML4, le langage évolue et impose une séparation entre le contenu et la mise en forme. Les balises sont là pour structurer le document et les feuilles de style pour présenter la page. La DTD strict respecte entièrement cette philosophie tandis que la DTD transitional permet encore l’utilisation de certaines balises qui modifient la présentation de la page, ceci permettant une transition en douceur. Etant donné que de nombreuses balises et attributs deviennent obsolètes et risquent de ne plus être supportés par les nouveaux navigateurs, passer au XHTML devient une nécessité.





ESTIENNE Sébastien

2004