Passer au contenu

Créez un site d’informations personnalisées avec PHP

PHP sert à créer des sites à partir de composants que l’on imbrique les uns dans les autres, comme un jeu de Lego. Le site est ainsi plus facile à administrer et il devient alors possible de concevoir presque autant de pages sur mesure qu’il existe d’internautes.

L’approche par composant facilite l’administration d’un site web, augmente sa modularité et accepte la factorisation du code redondant. Cette mise en ?”uvre explique comment concevoir une page sur mesure en fonction du profil de l’internaute, à partir de composants qui séparent traitement et présentation. Ainsi, chaque composant utilise la présentation désignée par l’utilisateur.

1. Concevez la base de données

Lancez mySQL et créez une nouvelle base intitulée “info”. Ajoutez les 3 tables “membres”, “articles” et “modèles”. Un membre lira les articles correspondant à son niveau (expert ou débutant). L’administrateur affectera un modèle de présentation à chaque composant. Une fois la nouvelle base conçue, copiez-collez le code de chaque requête SQL et exécutez-le afin de créer les tables. Vous pouvez ajouter des données de test à chaque table.

2. Factorisez le code redondant

Dans votre éditeur de code, factorisez les variables qui servent à se connecter à la base de données. Ainsi, la mise à jour d’une information dans ce fichier se répercutera dans toutes les pages. Ouvrez ensuite la connexion entre le serveur d’application et la base de données à l’aide de l’instruction “$db=mysql_connect($host, $login, $password);”. Enfin, positionnez-vous sur la bonne base à l’aide de “mysql_select_db(“$base”,$db);”

3. Créez les composants

Vous allez maintenant construire 2 composants presque identiques, destinés à afficher un article donné en fonction du niveau de compétence en programmation de l’internaute. Pour cela, sélectionnez tous les articles correspondant au niveau de l’utilisateur à l’aide d’une instruction SQL “SELECT”. La clause “Where” utilise le paramètre “$niveau”, qui sera passé au composant dans la session après ouverture et exécution de “index.php”. Exécutez la requête à l’aide de l’instruction “mysql_query()”, puis stockez les résultats dans un tableau ($res). Il ne vous reste plus qu’à piocher le titre et le texte de l’article dans le tableau pour les affecter aux variables “$titre” et “$texte”. Appelez ensuite le composant “$smfichier”, chargé de la présentation des données. Notez que “$smfichier” est également une variable de session, renseignée lors de l’ouverture de “index.php” en fonction du profil de l’internaute. En dissociant la présentation des données, un composant peut posséder autant de présentations différentes que nécessaire, sans avoir à maintenir les traitements qui y sont liés. Un simple changement de nom de fichier suffit. Vous pouvez créez autant de composants que vous le souhaitez.

4. Mettez en forme les données

Affichez les données dans des modèles HTML standard en les insérant là où elles doivent apparaître. Utilisez pour cela une chaîne du type ““. Vous pouvez soit recourir à des modèles statiques (ils empêchent de modifier les informations de mise en forme [couleur du texte…]), soit stocker une partie des paramètres dans une base et les insérer comme les données. Créez, par exemple, un modèle au format HTML, un autre qui générera un fichier XML, etc.

5. Stockez les informations en session

“Index.php” sert à récupérer toutes les informations indispensables à la composition de la page en fonction du profil de l’internaute. Cette page fonctionne à partir du paramètre “idmembre” passé en ligne de commande. Selon l’identité du membre, récupérez son profil (1 pour expert et 2 pour débutant) et ses données personnelles (nom, prénom…). Ces informations vous serviront tout au long de la création des pages ; vous devez donc les stocker en session à l’aide des instructions “session_start()” pour les initialiser et “session_register(“mavariable”)” pour chacune d’entre elles. Notez que le signe “$” ne doit pas être présent devant la variable.

6. Définissez un utilisateur par défaut

Vous pouvez, bien sûr, définir un profil par défaut pour les démonstrations de votre page, sans oublier d’insérez les variables de connexion à la base de façon à exécuter ensuite les requêtes.

7. Récupérez les informations concernant l’utilisateur

Les données consacrées à l’utilisateur sont stockées dans la table “membres” et celles concernant la mise en page dans “modeles”. Plutôt que d’effectuer une requête lourde et complexe (et éviter ainsi une instruction “INNER JOIN”), exécutez-les l’une après l’autre en utilisant les mêmes objets “$result”, “$query” et “$res”.

8. Composez la page

Une fois les paramètres des utilisateurs et de présentation récupérés, insérez les composants spécifiques au profil de l’internaute. Utilisez pour cela l’inclusion d’un modèle de page. Ainsi, la page appelle des composants (traitements) qui appellent eux-mêmes des modèles (présentation). Cela facilite, par exemple, la création d’une page publique incluant les informations gratuites, une page “membres” incluant des données supplémentaires, etc. Cette technique se révèle très pratique pour afficher, à partir d’un même profil d’internaute, une page au format HTML, XML ou WML.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Frédéric Bordage