Permet de simplifier la maintenance d’un site Le PHP Permet de simplifier la maintenance d’un site
Ce que l’on va voir Ce cours va essayer de montre comment utiliser PHP pour simplifier la vie d’un webmaster On verra plus tard qu’il est possible De protéger une section par mot de passe D’utiliser une base de donnée (liste des utilisateurs par ex.) Compter les utilisateurs qui visitent le site …
Simplifier la maintenance En général, dans un site il y a plusieurs pages qui partagent des éléments qui ne changent pas : Un entête Un sommaire Un pied de page
Simplifier la maintenance Principe Mettre dans un fichier le code HTML de ces 3 parties Utiliser chacune de ces parties facilement dans d’autres pages HTML Avantages : Modifier le fichier des définitions change toutes les pages d’un seul coup !
Mise en place 1 ère étape : Créer une page HTML avec les 3 parties bien mises en page Utiliser des div pour bien séparer les 4 parties (Entête, sommaire, contenu et pied de page)
Code associé à l’exemple <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Titre de la page</title> </head> <body> <div style="width:750px;position:relative;margin-left:auto;margin-right:auto;"> <div style="width:100%;height:128px;background-color:#F88;"> </div> <div style="width:100%;background-color:#CCC;"> <div style="float:left;height:300px;width:180px;background-color:#8F8;"> <div style="width:auto;height:300px;background-color:#88F;"> <div style="width:100%;height:20px;background-color:#FF8;"> <div> </body> </html>
Mise en pratique Il faut découper le fichier HTML pour le mettre dans un nouveau fichier .php Dans le fichier .php, nous aurons donc 3 fonctions avec à l’intérieur le code HTML. (nous l’appellerons fonctions.php) Une fonction est un ensemble de commandes que l’on peut appeler en utilisant son nom…
Comment découper ? Copier le code de l’entête : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Titre de la page</title> </head> <body> <div style="width:750px;position:relative;margin-left:auto;margin-right:auto;"> <div style="width:100%;height:128px;background-color:#F88;"> </div> <div style="width:100%;background-color:#CCC;"> <div style="float:left;height:300px;width:180px;background-color:#8F8;"> <div style="width:auto;height:300px;background-color:#88F;"> <div style="width:100%;height:20px;background-color:#FF8;"> </body> </html>
Comment découper ? Ajouter autour du code PHP pour créer une fonction Function entete(){ ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Titre de la page</title> </head> <body> <div style="width:750px;position:relative;margin-left:auto;margin-right:auto;"> <div style="width:100%;height:128px;background-color:#F88;"> </div> <div style="width:100%;background-color:#CCC;"> }
Comment découper ? Copier le code du sommaire : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Titre de la page</title> </head> <body> <div style="width:750px;position:relative;margin-left:auto;margin-right:auto;"> <div style="width:100%;height:128px;background-color:#F88;"> </div> <div style="width:100%;background-color:#CCC;"> <div style="float:left;height:300px;width:180px;background-color:#8F8;"> <div style="width:auto;height:300px;background-color:#88F;"> <div style="width:100%;height:20px;background-color:#FF8;"> </body> </html>
Comment découper ? Ajouter autour du code PHP pour créer une fonction Function sommaire(){ ?> <div style="float:left;height:300px;width:180px;background-color:#8F8;"> </div> }
Comment découper ? Copier le code de l’entête : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Titre de la page</title> </head> <body> <div style="width:750px;position:relative;margin-left:auto;margin-right:auto;"> <div style="width:100%;height:128px;background-color:#F88;"> </div> <div style="width:100%;background-color:#CCC;"> <div style="float:left;height:300px;width:180px;background-color:#8F8;"> <div style="width:auto;height:300px;background-color:#88F;"> <div style="width:100%;height:20px;background-color:#FF8;"> </body> </html>
Comment découper ? Ajouter autour du code PHP pour créer une fonction Function contenu(){ ?> <div style="width:auto;height:300px;background-color:#88F;"> </div> }
Comment découper ? Copier le code du pied de page : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Titre de la page</title> </head> <body> <div style="width:750px;position:relative;margin-left:auto;margin-right:auto;"> <div style="width:100%;height:128px;background-color:#F88;"> </div> <div style="width:100%;background-color:#CCC;"> <div style="float:left;height:300px;width:180px;background-color:#8F8;"> <div style="width:auto;height:300px;background-color:#88F;"> <div style="width:100%;height:20px;background-color:#FF8;"> </body> </html>
Comment découper ? Ajouter autour du code PHP pour créer une fonction Function piedDePage(){ ?> </div> <div style="width:100%;height:20px;background-color:#FF8;"> </body> </html> }
En résumé Le fichier fonctions.php doit être de ce type : <?php Function entete(){ ?> ...code HTML... } Function sommaire(){ Function piedDePage(){
Utilisation des fonctions Il est maintenant possible de faire une page qui utilise ces fonctions Créer un fichier (par exemple index.php) Utiliser le fichier précédemment créé Require("/fonctions.php"); Appeler les fonctions les unes après les autres : <?php Entete(); Sommaire(); ?> Code HTML de la page... piedDePage();
Améliorer l’organisation Il peut être utile de passer des informations aux fonction Par exemple, pour l’entête, donner le nom de la page ! Il faut alors utiliser des variables : C’est un nom précédé d’un $ : $variable, $nom, $total, $repertoire ... Il y a une valeur enregistré dedans Un nombre, un mot, une phrase...
Nouvelle fonction entete() <?php Function entete($nom){ ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?php echo $nom; ?></title> </head> <body> <div style="width:750px;position:relative;margin-left:auto;margin-right:auto;"> <div style="width:100%;height:128px;background-color:#F88;"> </div> <div style="width:100%;background-color:#CCC;"> }
Explication Dans le fichier fonctions.php, il faut ajouter $nom entre les parenthèse de la fonction entete C’est le nom du paramètre Permet d’utiliser la valeur caché à l’intérieur dans la fonction Le mot clef echo permet d’inserer du code HTML mais aussi de récupérer la valeur caché dans une variable : echo $nom; Affiche la valeur caché dans la variable nom
Utilisation Grâce aux paramètres, il est possible de créer deux pages différentes rapidement : <?php Entete("page 1"); Sommaire(); ?> Code HTML de la page... piedDePage(); <?php Entete("page 2 !!!"); Sommaire(); ?> Code HTML de la page... piedDePage();
Des tests Il est aussi possible de tester le contenu des variables pour prendre des décisions Par exemple, on veux afficher « section privée » si le contenu de la variable $utilisateur est égale à "toto" if($utilisateur=="toto"){ echo "<i>section privée</i>"; }else{ echo "<i>pas privé du tout</i>"; } Peut être utile pour la fonction sommaire par exemple…