Jean-Paul Dècle
Créer des pages web dynamiques avec
PHP/MySQL
Des clés pour comprendre
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
1 Site statique et site dynamique On appelle site statique un site web constitué de pages HTML créées une fois pour toutes à l'aide d'un éditeur HTML. Le contenu des pages est fixe.
Plus un site statique est volumineux et plus sa mise à jour est fréquente, plus celle-ci sera lourde à gérer ; Le site statique représente un risque de dépendance forte vis-à-vis du webmaster (problème de transmission des compétences et de goulot d'étranglement lié à sa charge de travail).
Un site dynamique est un site dont les pages HTML se construisent lors de sa consultation par un internaute. Les informations dynamiques sont placées dans la structure graphique de la page.
Les mises à jour sont facilitées grâce à une meilleure séparation entre le fond et la forme. Ces mises à jour ne demandent pas de compétences techniques particulières se font à l’aide de formulaires HTML ou avec des outils de gestion de contenu.
Un site d’actualités théâtrales Les affiches peuvent changer plusieurs fois par semaine
jpdecle@hotmail.com Page 2 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
Envoi d’une page HTML statique par le serveur Dans le cas d’une demande de page HTML statique : 1. Le client envoie l’adresse de la page demandée (URL) au serveur 2. Le serveur renvoie la page au navigateur du client qui interprète le code HTML et affiche la page à l’écran
Dans le cas d’une demande de page dynamique : 1. Lorsqu'un internaute envoie l'URL d’une page dynamique (ayant pour extension .php3 ou .php ou asp ou jsp,...), le serveur fait appel à un programme de traduction qui génère d'abord le code HTML 2. Ce code HTML est alors envoyé vers le navigateur de l'internaute, qui affiche le résultat
jpdecle@hotmail.com Page 3 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
Ce qu'il faut pour exécuter des scripts PHP Si vous déposez d'un site chez un hébergeur qui supporte le PHP, vous pouvez placer votre page sur le serveur et l'afficher dans votre navigateur. Vous pouvez également exécuter du PHP en local sur votre ordinateur. Pour cela, vous devez configurer votre ordinateur en serveur Web. L'utilisation de PHP nécessite les logiciels suivants:
phpMyAdmin
Apache Transforme votre ordinateur en serveur Web. Il est gratuit. http://www.apache.org PHP C'est le pré-processeur lui-même. Il sera appelé par Apache pour interpréter les scripts PHP MySQL Pour gérer vos bases de données phpMyAdmin phpMyAdmin n'est pas nécessaire pour faire tourner votre serveur web local avec PHP et MySQL, mais il est tellement pratique !
La façon la plus simple d'installer ces logiciels est d'utiliser un des kits gratuits suivants EasyPhp, XAMPP, WAMP ou MAMP (pour le Mac) qui nécessitent très peu d'interventions manuelles.
jpdecle@hotmail.com Page 4 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
Les structures de contrôle Les structures de contrôle permettent essentiellement de programmer des tests et des boucles. IF
<? $nombre1=123; $nombre2=456; if ($nombre1 > $nombre2) { echo $nombre1." est plus grand que ".$nombre2; } else { echo $nombre1." est plus petit ou égal à ".$nombre2; } ?> Exercice 2 Créez un script contenant 2 variables : $grande de valeur 100 $petite de valeur 50. Rédigez une structure de contrôle qui permette d'afficher les variables dans l'ordre croissant : la plus grande en premier, la plus petite en dernier.
SWITCH L'instruction switch équivaut à une série d'instructions if. Les deux exemples suivants présentent deux manières différentes d'écrire la même chose, l'une en utilisant une série de if , l'autre en utilisant l'instruction switch :
<? if ($i == 0) { echo "i égale 0"; } elseif ($i == 1) { echo "i égale 1"; } elseif ($i == 2) { echo "i égale 2"; } switch ($i) case 0: echo "i break; case 1: echo "i break; case 2: echo "i break; } ?>
{ égale 0"; égale 1"; égale 2";
jpdecle@hotmail.com Page 5 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
3 Création d'une page dynamique présentant un formulaire Etape 1: création du formulaire On commence par créer une page HTML présentant le formulaire suivant à l'écran:
Le code HTML est le suivant:
<form name="form1" method="post" action="reception.php3"> Tapez votre message: <input type="text" name="montexte"> <p> <input type="submit" name="envoyer" value="Envoyer"> </p> </form> Les zones du formulaire HTML seront être transmises à un programme PHP. Dans le formulaire, toutes les zones ont un nom (name="montexte"). Quand un script PHP est exécuté (type="submit") des variables seront initialisées avec les valeurs et les noms des zones du formulaire dans le script PHP qui reçoit le formulaire. Le nom du script PHP auquel sont envoyées les informations du formulaire est indiqué dans l'attribut action de la balise form:
<form name="form1" method="post" action="reception.php3">
Etape 2: création du script PHP qui traitera les informations du formulaire Le script reception.php3 reçoit et traite les données du formulaire:
<? $message=$_POST["montexte"]; echo "Vous avez envoyé le message suivant : $message" ; ?>
Exercice Tapez et exécutez le programme et le script précédents.
jpdecle@hotmail.com Page 6 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
Atelier 1 Objectif: Réalisation d'une page dynamique: sélection d'un produit dans une liste et affichage en retour du prix du produit demandé
1- Afficher toutes les informations sur les baladeurs : Type Prix Vignette
2- L'utilisateur sélectionne un produit dans la liste et clique sur le bouton Envoyer:
3- Le prix du produit sélectionné est affiché à l'écran:
4- Compléter la page précédente pour afficher également l’image du baladeur
jpdecle@hotmail.com Page 7 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
4 Utilisation des fichiers en PHP Ouvrir un fichier: fopen() La fonction fopen() permet d'ouvrir un fichier:
<? fopen("c:/JP/monfichier.txt", "r") ?> Les modes d'accès sont les suivants: r Ouvrir en lecture seule r+ Ouvrir en lecture et écriture w Ouvrir en écriture, si le fichier existe déjà il sera effacé w+ Ouvrir en lecture et écriture, si le fichier existe déjà il sera effacé! a Ouvrir en écriture, si le fichier existe les données seront ajoutées à la suite des autres. Sinon le fichier sera créé. a+ Ouvrir en lecture et écriture, si le fichier existe les données seront ajoutées à la suite des autres. Sinon le fichier sera créé.
Lire un fichier: fgets() La fonction fgets() permet de lire ligne après ligne le fichier. La fin de fichier est détectée par feof (file end of file).
<? $fichier=fopen("C:/JP/monfichier.txt", "r"); while (!feof($fichier)){ $ligne=fgets($fichier,255); print("$ligne<br>"); } fclose($fichier); ?> Exercice 5 Utilisez le bloc-notes pour créer un fichier texte de quelques lignes. Créez un script PHP qui affichera dans la fenêtre du navigateur le contenu du fichier:
jpdecle@hotmail.com Page 8 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
5 Utilisation des cookies en PHP C'est quoi un cookie?
Un cookie est un fichier texte qui est écrit par le serveur sur l'ordinateur du visiteur. Un cookie contient des informations sur l'utilisateur (un identifiant, par exemple ou un compteur du nombre de visites effectuées...). A chaque chargement d'une page du site, le serveur vérifie automatiquement la présence ou non de ce cookie. Créer un cookie: setcookie()
<? $fin=600; setcookie("jpd","mp3",time()+$fin); ?>
jpd: nom du cookie mp3: valeur du cookie time()+$fin: date d'expiration du cookie (ici 600 secondes)
Le cookie a été créé:
Le contenu du fichier texte est le suivant:
Lire le contenu d'un cookie
<?php // Afficher un cookie echo $_COOKIE["jpd"]; // Une autre méthode pour afficher tous les cookies print_r($_COOKIE); //Pour supprimer un cookie, créer le cookie sans paramètre setcookie("jpd"); ?>
jpdecle@hotmail.com Page 9 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
6 Les sessions en PHP C'est quoi une session?
Créer une session consiste à stocker sur le serveur des informations concernant les visiteurs de votre site. Un identifiant est attribué à chaque visiteur. Chaque fois que le visiteur revient en annonçant cet identifiant, PHP récupérera toutes les informations qu'il avait sauvegardées et qui sont relatives à ce visiteur. Les sessions sont utilisées pour: authentifier un visiteur; garder des informations sur un utilisateur tout au long de sa présence dans une application; gérer le panier d’achat d’un internaute sur un site marchand; mettre en place des formulaires en plusieurs parties et donc retenir les informations fournies dans les pages précédentes; affecter un cache par utilisateur pour certaines actions coûteuses en ressources.
Créer d'une variable de session: session_start() Une session s'initialise avec session_start(). PHP essaie alors de lire l'identifiant fourni par l'utilisateur, va chercher le fichier correspondant, et met à disposition toute les informations sauvegardées dans le tableau $_SESSION[]:
<? session_start() ; $_SESSION["organisme"] = "Efficom"; ?> Après cette affectation, il sera possible sur toutes les pages suivantes d'afficher la valeur de la variable de session $_SESSION["organisme"].
Lire une variable de session
<? session_start() ; if ( isset( $_SESSION["organisme"] ) ) { echo 'organisme existe dans la session et sa valeur est ' ; echo $_SESSION["organisme"] ; } else { echo 'organisme n\'existe pas dans la session' ; } ?>
jpdecle@hotmail.com Page 10 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
7 Utilisation d'une base de données MySQL avec phpMySQL C'est quoi MySQL?
MySQL est un langage de consultation et de mise à jour de base de données; MySQL peut être contrôlé depuis PHP; MySQL peut être téléchargé et utilisé gratuitement; il est également disponible dans le kit EasyPhp.
C'est quoi une base de données? Une base de données contient des données organisées dans une ou plusieurs tables. Chaque table est composée de champs. Les champs contiennent les enregistrements : les données. Les enregistrements sont accessibles à l'aide de requêtes. C'est quoi phpMyAdmin? phpMyAdmin est un utilitaire conçu en PHP qui permet de manipuler une base de données MySQL à partir d'une interface graphique. Pour accéder à phpMyAdmin
jpdecle@hotmail.com Page 11 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
8 Utilisation d'une base de données MySQL avec PHP Connexion à la base de données MySQL Avant de pouvoir utiliser une base de données MySQL, vous devez d'abord ouvrir une connexion au serveur MySQL et sélectionner la base de données. Pour cela, vous avez besoin de connaître: le nom du serveur MySQL votre nom d'utilisateur votre mot de passe Une fois connecté au serveur MySQL, sélectionnez la base de données avec laquelle vous voulez travailler:
<? mysql_connect("localhost","root",""); mysql_select_db("nom_de_la_bdd"); ?> Exemple
<? mysql_connect( "localhost" , "root" , "" ); mysql_select_db( "mercredi" ); ?>
jpdecle@hotmail.com Page 12 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
9 Traitement des images PHP permet de créer des images au format GIF, JPG et PNG à l'aide d'une librairie de fonctions prévue à cet effet. La librairie GD permet de créer et de manipuler des fichiers graphiques; Pour savoir si la librairie GD est installée, exécutez le script suivant:
<? echo phpinfo(); ?> Pour activer la librairie GD:
L'activation de la librairie GD peut se faire aussi depuis le fichier apache\php.ini Création d'une image simple L'image est créée dynamiquement par un script PHP avant d'être insérée dans la page :
<html> <head> <title>Image</title> </head> <body> <img src="monimage.php"> </body> </html> Le script monimage.php:
<?php // Spécifier le type de document que l'on va créer header ("Content-type: image/png"); // Dessiner une image vide de 200 pixels sur 100 $image = @ImageCreate (200, 100); // Appliquer à cette image une couleur de fond (RVB) $couleur_fond = ImageColorAllocate ($image, 255, 0, 0); // Dessiner l'image PNG ImagePng ($image); ?>
jpdecle@hotmail.com Page 13 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
10 La programmation orientée objet avec PHP C'est quoi la programmation orientée objet?
On appelle classe la structure d'un objet, c'est-à-dire la déclaration de l'ensemble des caractéristiques qui composeront un objet. Un objet est issu d'une classe (c'est l'exemplaire qui sort d'un moule); On dit qu'un objet est une instanciation d'une classe. Une classe est composée de trois parties: Le nom Les attributs: il s'agit des données représentant l'état de l'objet; Les méthodes: il s'agit des opérations applicables aux objets
Création d'une classe
class Personne { // définition des attributs var $nom, $prenom; // définition du constructeur function Personne ($n, $p) { $this->nom = $n; $this->prenom = $p; } // définition d'une méthode function afficher() { echo $this->prenom . " " . $this->nom ."\n"; } }
jpdecle@hotmail.com Page 14 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
11 Utilisation des templates C'est quoi un template?
Un template (ou modèle) est un squelette de page. Les templates permettent de bien séparer le code HTML et les scripts PHP; Les templates facilitent notamment le travail du graphiste et permettent à celui-ci d'intervenir sur des sites dynamiques tout en conservant ses outils habituels. Il existe actuellement de nombreuses librairies de scripts gérant les templates. Les plus connues sont les librairies PhpBB, Smarty, FastTemplate, Pear Flexy, PHPLib,…
Installer la librairie PhpBB La librairie template de PhPBB peut être téléchargée à l'adresse suivante: http://genova.developpez.com/dl/template.zip Décompressez l’archive dans un répertoire du serveur (local ou distant). Créer et utiliser un template Le squelette HTML (que nous appelons test.tpl) est le suivant:
<html> <head></head> <body> Bonjour {NOM} ! <br> Votre adresse IP est {IP} </body> </html>
jpdecle@hotmail.com Page 15 sur 16
Créer des pages dynamiques avec PHP Documentation Php en ligne: http://www.nexen.net/docs/
Exercice de synthèse Objectif: Créer un site d'informations sur les spectacles 1. Créez la page suivante qui affiche la liste des théâtres stockés dans la base de données
2. Lorsqu'on clique sur le nom d'un théâtre, les informations sur le spectacle sont affichées:
jpdecle@hotmail.com Page 16 sur 16