Module : Pages Web Dynamiques (Production Électronique Avancée) Objectif: Créer des pages Web dynamiques en utilisant le langage PHP
PLAN I- Introduction : 1. Qu’est ce qu’un Site Web dynamique? 2. Principe de Fonctionnement II- Le Langage Php: 1. Présentation 2. Environnement de développement 3. Syntaxe de base du langage Php 4. Les structures de données 5. Les types de données structurés en Php 6. Les structures de contrôle 7.Les fonctions en Php 8. Utiliser MySQL avec Php Exercices Recommandation
I- Introduction : I-1. Qu’est ce qu’un Site Web dynamique? Un site web dynamique est un site dont les pages peuvent être générées à «la volée» (dynamiquement) en fonction d’une demande d’un utilisateur.
I- Introduction : I-2. Principe de Fonctionnement Consultation d’une page html statique
I-2. Principe de Fonctionnement Consultation d’une page qui contient du code Php
II- Le Langage Php: II-1. Présentation À sa création, en 1994, PHP signifiait Personal Home Page. Maintenant il traduit une désignation plus générale : PHP Hypertext Preprocessor. Spécialement conçu pour le développement d'application Web. Il peut être intégré facilement au HTML. PHP est un langage de scripts et non un langage de programmation, car il est conçu pour faire quelque chose à la suite un événement ou lorsqu'un utilisateur soumet un formulaire à un serveur Web.
II-2. Environnement de développement Il existe un utilitaire très pratique (EasyPhP) qui installera Apache, Php, MySQL et aussi phpMyAdmin (une interface conviviale gratuite pour la gestion des bases de données MySQL). Lancer l'exécution de easyphp1-8_setup.exe. Un dossier EasyPHP sera créé dans Program Files.
Au démarrage d'EasyPHP, une icône apparaît à côté de l'heure. testez le fonctionnement du serveur web Supprimer le fichier index.php du dossier www
NB. Configurer le navigateur afin de « ne pas utiliser le Proxy pour les adresses locales » démarrer « Internet explorer », menu « outils », « options Internet », onglet «Connections », bouton « Paramètre réseau.
II-3. Syntaxe de base du langage Php <html> <head> <title>ma première page en php</title> </head> <body> <? echo ("<b>Bienvenue au langage PHP</b>"); // echo permet d’afficher un message $x=255; echo ("<center> la valeur de x est $x</center>"); ?> </body></html> NB. Le fichier contenant le code Php doit avoir l’extension .php Le script Php contenu dans le code HTML doit être délimité par les balises <? Et ?> Le fichier Php doit être enregistré dans le dossier www Pour commenter une seule ligne on utilise une double barre oblique (//)
II-4. Les structures de données II-4-a. Les constantes <? define("SOCIETE","Société internationale d’import Export"); echo ("<b>je travaille à la Société:".SOCIETE."</b>"); define("max",100); $min=5; echo ("<b>la valeur de min est $min</b>"); echo ("<b>la valeur de max est".max</b>"); ?> NB. Pour définir une constante, on fait appel à la fonction definie(). L’opérateur « . » permet la concaténation des contenus des objets.
II-4-b. Les variables <html> NB. Les variables sont représentées par le signe dollar $ suivi du nom de la variable. Le nom est sensible à la casse ($x<>$X). Un nom de variable doit commencer par une lettre ou le caractère (_). Activité : <html> <head><title> Les variables en PHP</title></head> <body> <? // utilisation des variables $libp="disque dur " ; $pu=158.5; $descp= " "; Echo (gettype($libp). "<br>".gettype($pu). "<br>"); //Convertion de types echo ("la variable pu est de type:".gettype($pu)." et contenant la valeur : $pu <br>"); Settype($pu, "integer"); $pu=(string)$pu; // Test d'existence de variables echo ("lib variable non définie $lib<br>"); echo ("test1 :".isset($pu)."<br>"); //retourne 1, pu est une variable définie echo ("test2 :".isset($lib)."<br>"); //retourne 0, lib est une variable non définie ?> </body></html> activité exercice n°5 page 139
II-4-c. Les opérateurs : Les opérateurs de calcul : (+,-,*, /,%,=) % Opérateur Modulo $x=18%4 donne 2 = Opérateur d’affectation $y=2.3; Les opérateurs de comparaison : (==,<,<=,>,>=,!=) if ($x==3) {…….} if ($x!=3) {…….} Les opérateurs logiques : (OR ou ||, AND ou &&, XOR, !) ! Est le NON logique.
II-5. Les Entrées/Sorties Les entrées en Php : Pour récupérer des données à partir d’une page Php, deux solutions Possibles : Récupérer des informations à travers les objets graphiques des formulaires : on utilise $_GET[‘nomobjet’] ou $_POST[‘nomobjet‘], dépendamment de la valeur de la propriété METHOD de la balise FORM. Activité 1 : Créer le formulaire suivant En cliquant sur envoyer le message suivant s'affiche Bienvenue « votre nom » Récupérer des informations envoyées en paramètres à un fichier Php. L’envoi des données se fait à travers la syntaxe: http://localhost/nomfichier.php? var1=val1 &var2=val2… la récupération au niveau du fichier nomfichier.php se fait grâce à la syntaxe: $var1=$_GET[‘var1’] Activité 2 : passez le paramètre nom dans l’url et afficher : Bienvenue « nom » Activité 3 : faire l’activité 5 du livre page 126 Activité 4 : faire l’application du livre page 128 Les sortie en Php: echo
II-6. Les structures de contrôles II-6-a Les structures conditionnelles L’instruction if : If (condition) {expression vrai} Else {expression faux} Les structures de branchement : Switch (expression) { Case resultat1 : //instruction à exécuter si l’expression vaut resultat1 break; Case resultat2 : //instruction à exécuter si l’expression vaut resultat2 …. default : //instruction à exécuter en dernier recours } Switch ($type) Case "Femme" : echo " bonjour Madame"; Case "Homme" : echo " bonjour Monsieur"; default : echo "Femme";
II-6-b Les structures itératives La boucle While : While (Condition) { //Instructions } La boucle do …While : Do } While (Condition); La boucle For : For (expr1;expr2;expr3) Exemple : For ($i=0;$i<10;$i++) Echo ("$i <br>"); Application : écrivez un script Php permettant d’afficher tous les nombres premiers compris entre 3 et 100.
II-7. Les types de données Structurées en Php II-7-a. Les Tableaux Un tableau est composé d’un certain nombre d’éléments possédant chacun une valeur propre ainsi q’une clé ou indice. En Php, deux types de tableaux sont utilisés et deux méthodes de déclarations: exemples de déclarations. $tab[]="Pomme"; // ou $tab[0]="Pomme"; $tab[]="Poire"; // ou $tab[1]=" Poire "; $tab[]="Abricot"; // ou $tab[2]="Abricot"; $tab[]=5; // ou $tab[3]=5; $tab[]="Pêche"; //ou $tab[4]="Pêche"; Dans ce cas, un indice de 0 à 4 est crée. NB. Les éléments d’un tableau peuvent être crées à la volée. Un tableau peut stocker des éléments de types différents Un tableau peut être crée avec la fonction Array(). Array([key=>] valeur, ….) Key est soit une chaîne soit un entier positif) Valeur peut être de n’importe quel type(y compris un autre tableau). $tab=Array(0=>"P",1=>" Po",2=>"A",3=>"Pê",4=>"C"); Ou $tab=Array("P"," Po","A","Pê","C"); Le tableau $tab est un tableau à indices de type entier. Un tableau peut être à indices de type chaîne. Exemples
Le parcours d’un tableau: exemples $vect=array("nom"=>"Belhassen","prenom"=>"ali","profession"=>"enseignant"); $r=array("animal"=>"chien","fruit"=>"orange","mineral"=>"crystal"); NB. $v=$vect; // permet de recopier un tableau Le parcours d’un tableau: exemples <? $vente_hebdo=array("lu"=>1742,"mar"=>1562,"mer"=>1920,"jeu"=>1239,"ve"=>2012,"sa"=>720) ; $vente_totale = 0; reset($vente_hebdo); // la fonction reset() remet le pointeur au début du tableau while (list($k, $v) =each($vente_hebdo)) // le deux fonctions each() et list() peuvent { // être utilisées conjointement afin echo ("<BR> Vente de $k : $v unités\n"); // de parcourir un tableau $vente_totale += $v; } echo "<BR>Vente sur la semaine : $vente_totale unités<BR>"; ?>
Exemples des Fonctions sur le tableau Description reset(nomt) Recale le pointeur au début du tableau et renvoie le 1er élément du tableau end(nomt) Recale le pointeur à la fin du tableau et renvoie le dernier élément du tableau current(nomt) Renvoie l'élément courant du tableau next(nomt) Fait avancer le pointeur courant de façon qu'il pointe l'élément suivant dont elle renvoie la valeur prev(nomt) Fait reculer le pointeur courant de façon qu'il pointe l'élément précédent dont elle renvoie la valeur key(nomt) Renvoie l'indic de l'élément courant du tableau each(nomt) Extrait l'élément courant et fait avancer le pointeur d'une unité list($indice,$valeur) Associée à each(), elle affecte indice et valeur de l'élément courant à 2 variables qcq
Activité : Afficher le tableau après chaque tri? Tri d’un tableau : deux types Tri par valeur sort(nomt) et rsort(nomt) et tri par indice ksort(nomt) et krsort(nomt) <? $t=array("fruit"=>"orange","animal"=>"chien","mineral"=>"crystal"); … Reset($t); sort($t); // le tableau devient ("animal"=>"chien","mineral"=>"crystal", "fruit"=>"orange"); …. rsort($t); // le tableau devient ("fruit"=>"orange", "mineral"=>"crystal","animal"=>"chien"); ksort($t); // le tableau devient ("animal"=>"chien", "fruit"=>"orange","mineral"=>"crystal"); …… Activité : Afficher le tableau après chaque tri?
II-7-a. Les chaînes de caractères: <? echo(substr("informatique",-3)."<br>");// la chaîne que sera affiché echo(substr("informatique",-7,3)."<br>"); // la chaîne mat sera affiché echo(substr("informatique",1,3)."<br>"); // la chaîne nfo sera affiché (le 1èr indice est 0) echo(substr("informatique",0,3)."<br>"); // la chaîne inf sera affiché echo(substr("informatique",2)."<br>"); // la chaîne formatique sera affiché echo("les"." Ordinateurs "."P"); // la chaîne les ordinateurs P sera affiché echo("les".trim(" Ordinateurs ")."P"); // la chaîne lesordinateursP sera affiché //la fonction trim retire les espaces blancs de début et de fin de la chaîne. echo(strlen("informatique")."<br>"); // la longueur 12 sera affiché $ch="informatique"; $ch=str_replace("i","*",$ch); echo("$ch <br>"); la chaîne *nformat*que sera affiché ( i sera remplacer par *) ?>
Fonction Explode(séparateur,Chaîne) et implode(séparateur,tableau) <? $ch="45|65|96|12|13|40|25|89|10|62|23"; $tab=explode("|",$ch); // la fonction explode retourne un tableau qui contient les éléments de la chaîne $ch $vect=array("orange","chien","crystal"); $ch=implode("|",$vect); Echo ("<br> $ch"); // la chaîne orange|chien|crystal sera affiché // la fonction implode retourne une chaîne constituée de tous les éléments du tableau // séparés par le séparateur "|" Activité : écrivez un formulaire qui permet de saisir une chaîne formée par des chiffres et d’afficher la plus grand chaîne formé par tous les chiffres de la chaîne initiale. Exemple (voir activitexplode.php) Si la chaîne initiale = "26598549" la chaîne "99865542" sera affiché
II-8. Les fonctions en Php Syntaxe <? Function nomFonction($arg1,$arg2,…,$arg3) { corps de la fonction..; [return $valeur_de_retour;] } …… nomfonction($p1,$p2,….,$pn); //appel de la fonction echo nomfonction($p1,$p2,….,$pn); //si la fonction retourne une valeur ?> Exemple : <? function affiche($x) { echo ("la valeur de x est $x"); } function multiplier($a,$b) { $p=$a*$b; return $p;} ……. affiche(5); // appel de la fonction affiche Echo multiplier(4,8); // 32 sera affiché NB: en Php toute fonction doit être préalablement définie avant d’être utilisée.
II-9. Utiliser MySQL avec Php MySQL est un Système de Gestion de bases de données relationnelles basé sur le langage d’interrogation SQL(Structured Query Language). L’utilisation de MySQL avec Php s’effectue en quatre étapes : 1ère étape : Connexion au serveur de données : Mysql_Connect("Localhost", "root",""); la fonction Mysql_Connect() retourne un entier permettant de vérifier la connexion. 2ème étape :Sélection de la base de données : Mysql_select_db(database_name); la fonction Mysql_select_db() retourne true ou false selon que l’opération réussit ou non Exemple : soit la base de donnée Gclasse contenant une table eleve ayant la structure suivante : Code_el, Nom_el, Classe, Moy_ann. Mysql_select_db(gclasse);
3ème étape :Exécution d’une requête SQL: Mysql_Query(requête); requête est une chaîne de caractères représentant une requête SQL : Exemples : $rq="Select * from eleve"; $resultat= Mysql_Query($rq);// les données se trouvent maintenant //dans la mémoire dans la variable $resultat 4ème étape :Exploitation des résultats: La fonction Mysql_fetch_array() permet la lecture du résultat enregistrement par enregistrement. Elle met l’enregistrement sous forme d’un tableau associatif : exemple : $enreg est un tableau associatif d’indices les nom de colonnes du table eleve. Tantque la fonction Mysql_fetch_array dans le tableau $enreg echo $enreg["code_el"]; echo $enreg["nom_el"]; echo $enreg["classe"]; echo $enreg["moy_ann]; Fin Tantque
Activité : Utilisé PhpMyadmin pour créer la base de données gclasse Activité : Utilisé PhpMyadmin pour créer la base de données gclasse. Bouton droite sur Option « Administration » Choisir « Gestion BDD » Nommer la base et valider nommer la table eleve et mettez le nombre de champs 4 et valider nommer le champs et les paramètres (taille de champs de type varchar, clé primaire …) et valider en cliquant sur le bouton « sauvegarder » choisir le menu « Insérer » pour insérer les enregistrements.
saisir les données suivantes
Recommandation Contenu Recommandation Pages Web Dynamiques Introduction (2 h) Syntaxe de Base du langage Php (2 h) Utilisation de MySQL avec Php (4 h) 1. L’introduction présentera l’environnement de travail client/Serveur du Php ainsi que les scripts coté serveur. 2. La partie syntaxe de base du langage Php traitera les points suivants : Les structures de données, les types de données, les structures de contrôles en Php.