Langage PHP : Chapitre 1 Pr. Aissam MESRAR Ecole ESIAM.

Slides:



Advertisements
Présentations similaires
Novembre 2005 – Michel Desconnets PHP : théorie Objectif : introduire les concepts globaux permettant d'aborder la programmation en PHP.
Advertisements

CRÉER UNE APPLICATION INTERNET RELIEE A UNE BASE DE DONNEES
Conception de Site Webs dynamiques Cours 6
Conception de Site Webs dynamiques Cours 5
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 8 Patrick Reuter.
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
Chapitre 2 :Tableaux Pr. Aissam MESRAR Ecole ESIAM.
Internet.
Exposé de Système - Informatique et Réseau
Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 (X)HTML / Pages Web Statiques.
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
Objectifs Présentation et utilisation du langage PERL
HTML Les types de balises
10:59:29 Programmation Web Programmation Web : PHP Jérôme CUTRONA
Architecture de machines Principes généraux
Cours Visual Basic pour Application
2 ième édition 1 Introduction aux systèmes dinformation Un outil essentiel pour lentreprise branchée Chapitre James A. OBrien © 2003 Les Éditions de la.
1. Sommaire Quest-ce que PHP ? Les structures de base Traitements de base Traitements de chaînes Utilisation des tableaux Fonctions usuelles Formulaires.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
2006/2007Denis Cabasson – Programmation Web Cours de programmation web ENSAE
CPI/BTS 2 Programmation Web Introduction au PHP
LES LANGAGES DE PROGRAMMATIONS JAVASCRIPTH.T.M.LP.H.PS.Q.L Reynald Maréchal DI045.
Les instructions PHP pour l'accès à une base de données MySql
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Introduction à la programmation (Java)
Introduction au langage PHP Réfs : Chap 3 p 49. Présentation PHP (Hypertext PreProcessor) est un langage de développement Web créé en 1994 par Rasmus.
Programmation Initiation Aux Langages C et C++ Bruno Permanne 2006.
Atelier « Créations de sites » : Les techniques de réalisation de sites EPN :...
Les langages majeurs du Web dynamique
Clients riches RIA (Rich Internet Application) / RDA
Web dynamique PhP + MySQL AYARI Mejdi 2006
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Module 8 : Maintenance des logiciels à l'aide des services SUS
Introduction : Présentation de Linux Choix d’une distribution
L3 Module Libre Année universitaire Initiation à la Bioinformatique Jean-Michel RICHER.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Initiation au web dynamique
Animateur : Med HAIJOUBI
PHP 1° PARTIE : LES BASES © BTS IRIS 2002 [tv] Présentation Historique
LES CLIENTS WEB RICHES Tuteur : Olivier CARON LEFEBVRE Benoit
PHP & My SQL.
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
Département Technologie de l’Information et de la Communication
Module Internet (3) 1 Département Technologie de l’Information et de la Communication Internet.
Etude comparative JSP, ASP et PHP
JavaScript.
Cours de programmation web
PHP & MySQL Master1 ICD Claire Jacquot Emilie Hot le 24/10/2006.
T ECHNOLOGIES WEB CHAPITRE IV : L E LANGAGE PHP 1 Mme Amani JARRAYA & Mohamed MOHSEN.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
S'initier au HTML et aux feuilles de style CSS Cours 5.
Module : Pages Web Dynamiques (Production Électronique Avancée)
Programmation Web : PHP
S'initier au HTML et aux feuilles de style CSS Cours 5.
Programmation Web : PHP
Initiation au JavaScript
Les langages de programmation
Initiation au web dynamique Licence Professionnelle.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Installation et gestion d'un site Web avec Linux et Apache
Introduction à PHP TOURNADRE Guillaume - Informatique Réseaux URL :
Séance /10/2005 CSS et Dreamweaver. CSS : principes Cascading Style Sheet = feuille de style en cascade Norme du W3C :
Séance /01/2006 Les technologies des sites dynamiques.
Les évolutions du WEB Des technologies,... et un peu plus...
Les Java Server Pages Dans ce chapitre, nous allons :
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Principes et variables
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

Langage PHP : Chapitre 1 Pr. Aissam MESRAR Ecole ESIAM

Plan général du cours Introduction Eléments de base du langage PHP Fonctions Tableaux Formulaires PHP et MySQL Cookies Sessions Expressions régulières Ecole ESIAM

Plan Introduction Eléments de base du langage PHP Fonctions Ecole ESIAM

Introduction Ecole ESIAM

Schéma statique du web Serveur Client Réseau Demande page 2 P2 P1 P2 P3 Pn Le serveur abrite un certain nombre de pages web statiques que les clients peuvent consulter à n’importe quel moment Le résultat de consultation d’une page sera le même chez tous les clients et à tout moment Ecole ESIAM

Limites du Schéma statique du web Serveur Client Réseau P1 P2 P3 Pn Peut-on réaliser un site web qui diffuse les infos instantanées avec des pages web statiques ? Peut–on réaliser un site web qui donne les prévisions météorologique dans toutes les villes du monde ? Requête : Météo de la ville de Fès le 10 Mars 2006 à 15h Ecole ESIAM

Limites du Schéma statique du web Schéma statique non convenable Impossible de prévoir des pages statiques instantanées, On ne sait pas à quel instant l’info sera mise à jour, c’est aléatoire. Difficile de prévoir des pages web pour chaque ville et à n’importe quelle date Web dynamique et interactif Ecole ESIAM

Web dynamique et interactif Serveur Réseau Client Demande page 2 P2 P1 P2 P3 Pn Après un moment Les pages web sur le serveur sont dynamiques Le résultat de consultation d’une page peut changer d’un moment à l’autre pour le même client ou clients différents La mise à jour de la page ne dépend pas des clients Le résultat de consultation d’une page peut changer selon les critères du client (formulaire) Ecole ESIAM

Web dynamique et interactif Moteur PHP Page web générée sur le serveur à la demande Critères du client (formulaires,…) Interaction avec des fichiers ou des Bases de Données Ecole ESIAM

Web dynamique et interactif Serveur Réseau Pn.html Client Moteur PHP Demande p1.html P3.php P2.php P1.html P1.html La page p1.html a été envoyée au client sans le moindre traitement Ecole ESIAM

Web dynamique et interactif Serveur Réseau Pn.html Client Moteur PHP Demande p2.php P3.php P2.php P1.html P2.html P2.html La page p2.php est traitée (interprétée) par le Moteur PHP Le résultat de ce traitement (p2.html) est envoyé au client La page p2.html n’est pas stockée chez le serveur Ecole ESIAM

Web dynamique et interactif Autres moteurs CGI Common Gateway Interface ASP Active Server Pages JSP Java Server Pages CFM Cold Fusion Macromédia PERL Ecole ESIAM

Langages compilés/Interprétés Langages interprétés PHP, Perl, Python, JAVA, JavaScript Langages compilés C, C++, JAVA, Pascal Ecole ESIAM

Langages compilés/Interprétés Avantages Conversion en binaire : 1e seule fois Plus rapide Inconvénients Incompatibilité / plates_formes Ecole ESIAM

Langages compilés/Interprétés Langages interprétés Avantages Portabilité Inconvénients Relativement lent Code source divulgué Script : un programme écrit dans un langage interprété Ecole ESIAM

Domaines d’application des langages PHP, ASP, JSP,CFM : WEB C : Applications Systèmes JAVA : Applications pour systèmes embarqués (tél portable, carte à puce) PERL : Administration système C++ : Applications avec interfaces graphiques Ecole ESIAM

Performances des langages Un langage est performant dans son domaine d’application. Pour un même PB : 10 lignes de codes ( langage i)  300 lignes (langage j) Ecole ESIAM

PHP : Raisons de succès Langage interprété conçu dès son origine pour le web Intégré avec l’HTML Dans le même fichier, on peut trouver du code HTML et PHP Ecole ESIAM

PHP : Raisons de succès Performances Rapidité Stabilité : ne plante pas Scalabilité : comportement normal avec un nombre important de visiteurs Sécurité : pas de défaillance Sécurité de PHP  Sécurité d’application écrite en PHP Ecole ESIAM

PHP : Raisons de succès Open source Portabilité Projet planétaire (meilleurs compétences) Gratuit Bibliothèque riche de scripts sources gratuits sur le web Portabilité Toutes les plates-formes (matérielles et logicielles) disposent d’interpréteur PHP Serveur web : Apache, IIS, AOL server, Roxen Environnement préféré : Apache/Linux Apache : le plus utilisé (yahoo, google) Linux : deuxième système d’exploitation après Windows Ecole ESIAM

Concurrents de PHP : ASP Avantages Compatibilité avec les outils Microsoft (IIS,Frontpage, Visuel Studio, Access, SQL Server) Outils avec interface simple : Pas besoin d’être ingénieur système pour administrer le serveur web Inconvénients Limité au serveur IIS IIS : Pb de sécurité Logiciel payant, de plus, il faut acheter tous les outils accompagnants Ecole ESIAM

Concurrents de PHP : JSP Avantages Utilise un langage totalement Orienté Objets Portabilité (JAVA) Meilleure sécurité Inconvénients Relativement difficile (il faut maîtriser Java) Nécessite beaucoup de ressources (JVM ) Ecole ESIAM

Concurrents de PHP : Cold Fusion Macromédia Avantages Environnement de développement central intégrant tous les outils Interface graphique simple : facile pour les débutants Inconvénients Langage lourd, mal conçu, évolue lentement  ne convient pas aux développeurs initiés Hébergeurs CFM : Pas nombreux et payants Environnement payant Ecole ESIAM

Concurrents de PHP : PERL Avantages PERL : vieux  bibliothèque d’extension très riche Open source : langage gratuit Inconvénients Le web n’était pas l’objectif du PERL à l’origine Installation sur machine cliente relativement compliquée Ecole ESIAM

PHP : Historique Créé en 1994 par Rasmus Lerdorf pour conserver la trace des utilisateurs venus consulter son CV PHP signifie alors Personal Home Page Version 2.0 en 1995 Récupération de données soumises par Formulaire Interfaçage avec les SGBD Possibilité d'effectuer des calculs mathématiques Ecole ESIAM

PHP : Historique 1996 : 15 000 sites Web 1997 1998 moteur Zend : + de performances, + de bibliothèques Zend provient des noms de ses concepteurs : Andi Gutmans et Zeev Suraski 50 000 sites Web 1998 version 3.0 : + d'extensions, + d'interfaçage, syntaxe objet PHP signifie : PHP Hypertext Prepocessor Ecole ESIAM

PHP : Historique 1999 : 100 000 sites Web 2000 : version 4.0, basée sur le moteur Zend (+de sécurité, + de performances) 2001 : 5 100 000 sites Web 2003 : versions 4.3.4 et 5.0B2 On estime que 20% des domaines d'Internet utilisent PHP 2005 : version 5 Orienté Objet Ecole ESIAM

Eléments de base de PHP Ecole ESIAM

Structure d’un script PHP Code PHP entre les balises <?php et ?> Syntaxe très proche du langage C et C++ Sensible à la casse fait la différence entre minuscule et majuscule Chaque instruction se termine par un point virgule : ; Exemple : simple.php <?php print "Mon premier essai avec PHP"; ?> print est une fonction prédéfinie qui affiche son paramètre Ecole ESIAM

Génération de page à partir d’un script <?php …. ………. …….. ?> <html> …. ………. …….. </html> Moteur PHP Ecole ESIAM

Structure d’un fichier PHP Possibilité d’intégrer un script avec du code HTML dans le même fichier (extension .php, .php3, .phtml) Code HTML <?php …. ………. …….. ?> <html> …. ………. …….. </html> Moteur PHP Ecole ESIAM

Structure d’un fichier PHP Possibilité d’intégrer plusieurs scripts dans le même fichier Exemple : plusieurs_scripts.php Ecole ESIAM

Commentaire Trois manières d’écrire le commentaire // Commentaire de ligne #Commentaire de ligne /* commentaire sur plusieurs lignes */ Ecole ESIAM

Types de données Types de base prédéfinis : Numérique Entier Réels Chaînes de caractères Booléen Défini implicitement avec des expressions numériques ou/et des chaînes de caractères Ecole ESIAM

Types de données Types Numériques Opérateurs Entiers Réels Exemples : 4, -6, 102 Réels 10.25, -14.369 Opérateurs Opérateurs arithmétiques : +,-,*,/,% Opérateurs d’incrémentation/ decrémentation : ++,-- Ecole ESIAM

Types de données Chaînes de caractères Suite de caractères délimitée par " " ou ‘’ Exemples : "bonjour" ou ‘bonjour’ Concaténation des chaînes de caractère : opérateur . "bonjour " . "ami" équivalent à "bonjour ami" Ecole ESIAM

Types de données Type booléen Opérateurs N’est pas défini explicitement Cas particulier des types numériques et chaînes de caractères Convention Vrai : ≠ de 0 (numérique) ou non vide (chaîne de caractère) Faux : =0 (numérique) ou vide (chaîne d caractère) Opérateurs Opérateurs de comparaison ==, !=,>,>=,<,<= Opérateurs logiques && , and, || , or, Ecole ESIAM

Identifiants Identifiant de variables ou de constantes est une suite de caractères qui : Ne contient pas d’espace Commence par une lettre ou le caractère souligné ‘_’ Différent des mots clés Exemples Nom, n1, _prix, … 2n, prix ttc, define Ecole ESIAM

Constantes Objets dont la valeur ne change pas au cours de l’exécution du script Déclaration define("nom_constante" ,"valeur"); Exemples define("PI",3.14); define("Langue","Français"); Ecole ESIAM

Variables Pas besoin de déclaration explicite La variable est précédée par le caractère ‘$’ lors de l’utilisation Exemple $a=10; print($a); Ecole ESIAM

Variables La variable peut changer de type au cours de l’exécution Exemple: $a=10; print ($a); $a="bonjour"; Print($a); Tester l’initialisation d’une variable Fonctions isset() et empty() Ecole ESIAM

Expressions Expressions numériques Exemple $a=10; $x=2.67; $b=$a+5; $c=($a+$b)*$x; Ecole ESIAM

Expressions Expressions de chaînes de caractères Différence entre " " et ’ ’: entre " " les variables seront remplacées par leurs valeurs $b=" ami" ; $a="bonjour $b" ; $a sera bonjour ami Entre ’ ’ les variables dans la chaîne ne sont pas interprétées $b=" ami" ; $a=’bonjour $b’ ; $a sera bonjour $b Ecole ESIAM

Expressions Expressions de chaînes de caractères Concaténation des chaînes : opérateur point ‘.’ Exemple $a="bonjour " ; $b=" ami " ; $c=$a.$b; $c sera "bonjour ami" Ecole ESIAM

Tests Ecole ESIAM

Test Forme 1 Permet de choisir entre deux alternatives selon la valeur d’une expression logique Notation if(exp_log) bloc1 else bloc2 Où bloc1 et bloc2 sont des suites d’instructions Exemple : test.php Ecole ESIAM

Test Forme 2 Permet d’exécuter une seule alternative si une condition est vérifiée. Dans ce cas la deuxième alternative n’existe pas. Notation if(exp_log) bloc1 Ecole ESIAM

Test Imbrication de if/else if(exp1) if(exp11) else if(exp21) bloc11 Ecole ESIAM

Test Imbrication de if/else : 2ème notation if(exp1) elseif(exp21) bloc11 else bloc12 elseif(exp21) bloc21 bloc22 Ecole ESIAM

Choix multiple Permet de choisir une alternative parmi plusieurs C’est la généralisation du test Notation switch(exp) { case val1 : bloc1; case val2 : bloc2; … case valn : blocn; [default : bloc_dfaut;] } Un bloci est exécuté si exp == vali default est optionnel Exemple :switch.php Ecole ESIAM

Les boucles Ecole ESIAM

Les boucles Permettent de répéter l’exécution d’un ensemble d’instructions plusieurs fois Trois types de boucles while do .. while for Ecole ESIAM

Les boucles Boucle while Notation : while (exp_log) { Bloc } Ecole ESIAM

Les boucles Boucle do … while Notation : do { Bloc } while (exp_log); Ecole ESIAM

Les boucles Boucle for Notation : for(init;exp_log;int_fin) { Bloc } Ecole ESIAM

Les boucles Exemple : boucle.php <?php $s=0; for($i=1;$i<=100;$i++) $s=$s+$i; print("<br> la somme des entiers de 1 à 100 est: $s"); ?> Ecole ESIAM

Les boucles Instruction break/continue break continue Quitte la boucle immédiatement Avortement de la boucle continue Arrête l’itération en cours et passe à l’itération suivante Avortement de l’itération en cours Toutes les deux doivent être protégées par une condition Ecole ESIAM

Fonctions Ecole ESIAM

Pourquoi les fonctions ? Modularité Diviser le problème à résoudre en petits Pbs et résoudre chacun d’eux par un module (facile à composer), appelé fonction pour la plupart des langages Réutilisabilité Possibilité de réutiliser certaines fonctions dans un autre problème MAJ facile La mise à jour d’une fonction n’affecte pas les autres fonctions Ecole ESIAM

Fonctions Déclaration Appel de la fonction function nom_fonction($param1,$param2,…) { Corps de la fonction } $Param1, $param2, … sont dits paramètres formels de la fonction Appel de la fonction nom_fonction($eff1,$eff2,…) $eff1,$eff2,… sont dits paramètres effectifs Ecole ESIAM

Fonctions Fonction qui retourne une valeur Appel de la fonction L’instruction return dans le corps de la fonction permet de retourner une valeur et de quitter la fonction. function nom_fonction($param1,$param2,…) { Corps de la fonction return($resultat); } $Param1, $param2, … sont dits paramètres formels de la fonction Appel de la fonction $r = nom_fonction($eff1,$eff2,…); Ecole ESIAM

Fonctions Exemple : fonction1.php fonction factorielle <?php function fact($a) { $f=1; for($i=1;$i<=$a;$i++) $f=$f*$i; return($f); } $b=5; $c=fact($b); print($c); ?> Ecole ESIAM

Fonctions Utilisation des fonctions Une fonction définie dans un script peut être utilisée dans les autres scripts du même fichier. Exemple : fonction2.php Ecole ESIAM

Fonctions Modes de passage des paramètres Par valeur Par référence Par référence ponctuelle Ecole ESIAM

Fonctions Passage Par valeur Mode par défaut Les paramètres effectifs gardent leur valeurs après l’appel de la fonction, même si cette dernière les modifie à l’intérieur de son corps. => la fonction travaille sur une copie des paramètres Ecole ESIAM

Fonctions Exemple : fonction_pass_val.php <?php function doubler($a) { $a=$a*2; print("valeur du paramètre dans la fonction:$a<br>"); } $b=5; print("valeur du paramètre avant l'appel:$b<br>"); doubler($b); print("valeur du paramètre après l'appel:$b<br>"); ?> Ecole ESIAM

Fonctions Passage par référence Le changement d’un paramètre effectif sera perceptible de l’extérieur. => la fonction travaille sur le paramètre et non sur sa copie Notation : précéder le paramètre formel par & function nom_fonction(&$param1,&$param2,…) Ecole ESIAM

Fonctions Exemple :fonction_passage_ref.php <?php function doubler(&$a) { $a=$a*2; print("valeur du paramètre dans la fonction:$a<br>"); } $b=5; print("valeur du paramètre avant l'appel:$b<br>"); doubler($b); print("valeur du paramètre après l'appel:$b<br>"); ?> Ecole ESIAM

Fonctions Passage par référence ponctuel Lors de la définition de la fonction les paramètres sont passés par valeur Lors de l’appel de la fonction les paramètres effectifs sont précédés par & Attention : Risque d’incohérence Ecole ESIAM

Fonctions Exemple : fonction_passage_ponc.php fonction factorielle function doubler($a) { $a=$a*2; print("valeur du paramètre dans la fonction:$a<br>"); } $b=5; print("valeur du paramètre avant l'appel:$b<br>"); doubler(&$b); print("valeur du paramètre après l'appel:$b<br>"); ?> Ecole ESIAM

Fonctions Paramètres par défaut Attribuer une valeur par défaut à un (des) paramètre(s) omis lors de l’appel d’une fonction Notation : affecter la valeur par défaut au paramètre formel function nom_fonction($param1,$param2 = val ) Le 2ème paramètre a une valeur par défaut Appel de la fonction nom_fonction($eff); nom_fonction($eff1,$eff2); Ecole ESIAM

Fonctions Paramètres par défaut Exemple : fonction_par_def1.php function conversion($init=0,$fin=180,$pas=20) { for($i=$init;$i<=$fin;$i+=$pas) $grade = $i*200/180; print("$i : $grade <br>"); } conversion(); conversion(10); conversion(20,90,10); ?> Ecole ESIAM

Fonctions Paramètres par défaut : Attention ! Seuls les derniers paramètres peuvent avoir des valeurs par défaut Exemple : fonc_par_def2.php function f_ambigue($p1=0, $p2, $p3=5) Erreur lors de l’interprétation Ambiguité lors de l’appel de la fonction Comment interpréter f_ambigue(1,5) ? f_ambigue(0,1,5) ou f_ambigue(1,5,5) Ecole ESIAM

Fonctions Nombre de paramètres indéfini Dans ce cas les paramètres sont extraits par deux fonctions : func_num_arg() : retourne le nombre de paramètres passés à la fonction func_get_arg ($i) : retourne le paramètre d’indice $i dans la liste des paramètres Le premier paramètre a l’indice 0 Ecole ESIAM

Fonctions Nombre de paramètres indéfini Exemple : fonction_par_indef.php afficher les paramètres reçus par une fonction <?php function sansparam() { $nb_par = func_num_args(); for($i=0;$i<$nb_par;$i++) $param = func_get_arg($i); print("param $i : $param <br>"); } sansparam("bonjour","mon","ami"); ?> Ecole ESIAM

Fonctions Fonctions récursives Dans le corps d’une fonction on peut trouver un appel à elle-même Exemple : fonction_recursive.php factorielle <?php function fact($a) { if ($a==1) return(1); else return($a*fact($a-1)); } $b=5; $c=fact($b); print("$b ! = $c"); ?> Ecole ESIAM

Fonctions Variables globales Les paramètres locales à une fonction ne sont pas visibles de l’extérieur Une variable globale peut être accédée ou modifiée à partir de n’importe quelle fonction du même fichier Pour utiliser une variable globale (déclarée à l’extérieur de la fonction) nous devons la déclarer par la ligne suivante : global $nom_var; Exemple : fonction_var_global.php Ecole ESIAM