10:59:29 Programmation Web 2012-2013 1 Programmation Web : PHP Jérôme CUTRONA

Slides:



Advertisements
Présentations similaires
PTI n°5: PDO.
Advertisements

Novembre 2005 – Michel Desconnets PHP : théorie Objectif : introduire les concepts globaux permettant d'aborder la programmation en PHP.
CRÉER UNE APPLICATION INTERNET RELIEE A UNE BASE DE DONNEES
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Cours 5 : XML et les architectures N-tier Janvier Version 1.0 -
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.
Conception de Site Webs Interactifs Cours 4
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 8 Patrick Reuter.
Evolutions techniques
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
TP 3-4 BD21.
Programmation Web : Protocole HTTP
11:16:331 Programmation Web Programmation Web : Formulaires HTML Jérôme CUTRONA
Jérôme CUTRONA PHP et bases de données Jérôme CUTRONA 01:07:51 Programmation Web
PhpMyAdmin 01:08:02 Programmation Web
Bases de données Objet singleton pour la connexion
CPI/BTS 2 Programmation Web Introduction au PHP
LES LANGAGES DE PROGRAMMATIONS JAVASCRIPTH.T.M.LP.H.PS.Q.L Reynald Maréchal DI045.
Nouveau blog. WordPress connexion Nommez votre blog.
Rapport de TER 2002 R₫alisation d'un site web dynamique en PHP / MySql
Comprendre l’environnement Web
Développement Rapide dApplications Web avec.NET « Mon premier site »
Lycée Louis Vincent Séance 1
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 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.
Atelier « Créations de sites » : Les techniques de réalisation de sites EPN :...
ISICIL SWEETDEKI Intégration du logiciel Mindtouch Core dans la plate-forme ISICIL Guillaume HUSSON.
Présentation et utilisation du logiciel R Komi Sodoké Université du Québec à Montréal Février 2007.
PHP Géant Aurélien. PHP (Hypertext Preprocessor) Langage de scripts libre Permet produire des pages Web dynamiques dispose d'un très grand nombre d'API(Application.
Web dynamique PhP + MySQL AYARI Mejdi 2006
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Olivier Nocent Programmation Web Olivier Nocent
Les Serveurs WEB.
Wiki pour les nuls le LGI
L3 Module Libre Année universitaire Initiation à la Bioinformatique Jean-Michel RICHER.
Adaptée du cours de Richard Grin
La Programmation CGI Principe Général Traitement des informations
PHP 1° PARTIE : LES BASES © BTS IRIS 2002 [tv] Présentation Historique
Développement Web Open Source haXe et les outils « open source » Première partie.
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Département Technologie de l’Information et de la Communication
Etude comparative JSP, ASP et PHP
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Cours de programmation web
PHP & MySQL Master1 ICD Claire Jacquot Emilie Hot le 24/10/2006.
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.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Développement d’application Web.  Internet  WWW  Client/Serveur  HTTP.
Introduction au socle MEAN
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
PHP SpeedBerg Templates EPFL PHP IIème Conférence des WebMasters EPFL 5/12/2001 Tuan Lam E-PFL
Initiation au JavaScript
Centralisation des sites web d’ELTA & Mise en place d’un serveur NAS
PPE 2 : Val Lamartinien Passion
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.
Séance /10/ Projet de site dynamique avec Dreamweaver : MyCMS
Principes et variables
1 Sommaire Présentation de l’entreprise Présentation du stage Présentation de Scarabée Réalisation Conclusion.
INF2005– Programmation web– A. Obaid Les cartes. INF2005– Programmation web– A. Obaid Images cliquables Outil permettant d'effectuer des liens à partir.
1 CEC A.-CHAVANNE Sites Web et bases de données. 2 UNE BASE DE DONNÉES : POURQUOI ? Manipulation de grandes quantités d’information – représentation des.
Transcription de la présentation:

10:59:29 Programmation Web Programmation Web : PHP Jérôme CUTRONA

210:59:29 Programmation Web PHP: Langage de script pour le Web Quest-ce que PHP ? Quest-ce que PHP ? Langage de script. Utilisé coté serveur Langage de script. Utilisé coté serveur Acronyme récursif : PHP: Hypertext Preprocessor Acronyme récursif : PHP: Hypertext Preprocessor Créé en par Rasmus Lerdorf Créé en par Rasmus Lerdorf Extension utilisée sur certains serveurs Web (33%) Extension utilisée sur certains serveurs Web (33%) Langage multi plate-forme (UNIX / Windows…) Langage multi plate-forme (UNIX / Windows…) Open Source Open Source Versions actuelles (source nexen.net) : Versions actuelles (source nexen.net) : PHP4 (52% en octobre 2008) PHP4 (52% en octobre 2008) PHP5 (48% en octobre 2008) PHP5 (48% en octobre 2008)

310:59:29 Programmation Web Utilité et utilisation de PHP Création de pages HTML « dynamiques », fabriquées à la volée, construite à la demande Création de pages HTML « dynamiques », fabriquées à la volée, construite à la demande Interface entre un serveur Web et des bases de données Interface entre un serveur Web et des bases de données Création dapplications Web Création dapplications Web

410:59:29 Programmation Web Principales fonctionnalités de PHP Manipulation de chaînes et tableaux Manipulation de chaînes et tableaux Calendrier / dates / heures Calendrier / dates / heures Fonctions mathématiques Fonctions mathématiques Accès au système de fichiers Accès au système de fichiers Manipulation dimages Manipulation dimages HTTP / FTP / IMAP HTTP / FTP / IMAP Bases de données (Oracle, MySQL, …) Bases de données (Oracle, MySQL, …) XML XML …

510:59:29 Programmation Web RéseauRéseau Fonctionnement de PHP ServeurServeur Serveur Web MySQL Module PHP.html.php.jpg ClientClient Navigateur HTMLHTML JavaScriptJavaScript CSSCSS <?php echo <<<HTML Hello Hello Hello world Hello world HTML;<?php echo <<<HTML Hello Hello Hello world Hello world HTML; GET /hello.php HTTP/1.0 Exécution dun programme sur le serveur Hello Hello Hello world Hello world Hello Hello Hello world Hello world Protocole HTTP hello.phphello.php Connexion sur le serveur (port 80) Requête HTTP du client (hello.php) Localisation de la ressource Localisation du code PHP dans le fichier Exécution du code PHP Envoi du résultat au client = réponse HTTP Fermeture de la connexion Rendu graphique des données

610:59:29 Programmation Web Fonctionnement de PHP Client Serveur 1.Connexion TCP sur le serveur (port 80) 2.Requête HTTP du client ( mon_fichier.php ) 3.Localisation de la ressource 4.Exécution du code PHP 5.Envoi du résultat de lexécution au client = réponse HTTP 6.Fermeture de la connexion 7.Rendu graphique des données (HTML, image, …)

710:59:29 Programmation Web Programme en PHP Délimitation du code PHP dans le fichier.php : Code PHP </script> Dépend de la configuration du serveur à bannir !! à bannir !! Dépend de la configuration du serveur à bannir !! à bannir !! short_open_tagshort_open_tag asp_tagsasp_tags Confusion avec JavaScript à bannir !! à bannir !! Confusion avec JavaScript à bannir !! à bannir !! Fermeture optionnelle

810:59:29 Programmation Web Eléments de syntaxe PHP La syntaxe de PHP ressemble à celle de famille "C" (C, C++, Java, …) La syntaxe de PHP ressemble à celle de famille "C" (C, C++, Java, …) Chaque instruction se termine par " ; " Chaque instruction se termine par " ; " Commentaires: Commentaires: /* jusquau prochain */ // jusquà la fin de la ligne # jusquà la fin de la ligne

910:59:29 Programmation Web Les variables et les types de données Tout identificateur commence par " $ " Tout identificateur commence par " $ " Les affectations sont réalisées grâce à " = " Les affectations sont réalisées grâce à " = " Numérique entier: 12 ou réel: 1.54 Numérique entier: 12 ou réel: 1.54 Chaîne: "Hello" ouBonjour Chaîne: "Hello" ouBonjour Booléen: true, false (PHP 4) Booléen: true, false (PHP 4) Tableau: $tab[2]=12 Tableau: $tab[2]=12 Objet (PHP4, PHP5) Objet (PHP4, PHP5) Ressource Ressource NULL NULL Le type dune variable est dynamique et est déterminé par la valeur qui lui est affectée Le type dune variable est dynamique et est déterminé par la valeur qui lui est affectée

1010:59:29 Programmation Web Typage faible. Exemple // Pas de déclaration de variable $test = 1.5 ; // Réel $test = 12 ; // Entier $test = array() ; // Tableau $test = "10" ; // Chaîne echo $test ; // 10

1110:59:29 Programmation Web Typage automatique. Exemple $nombre1 = 1.5 ; // Réel $nombre2 = 12 ; // Entier $chaine1 = "10" ; // Chaîne $chaine2 = 'coucou' ; // Chaîne $total = $nombre1 + $nombre2 + $chaine1 + $chaine2 ; $nombre1 + $nombre2 + $chaine1 + $chaine2 ; echo $total ; // 23.5 Réel "10""10"'coucou''coucou'

1210:59:29 Programmation Web Les chaînes de caractères Substitution de variables dans les chaînes Guillemets simples Guillemets simples $a='chaîne' ; $a='chaîne' ; $b='voici une $a'; $b='voici une $a'; Guillemets doubles Guillemets doubles $a="chaîne" ; $a="chaîne" ; $b="voici une $a"; $b="voici une $a"; Syntaxe HereDoc Syntaxe HereDoc $a="chaîne" ; $a="chaîne" ; $b=<<<MARQUE_DE_FIN voici une $a sur deux lignes ;-) MARQUE_DE_FIN; $b=<<<MARQUE_DE_FIN voici une $a sur deux lignes ;-) MARQUE_DE_FIN; chaînechaîne voici une $a chaînechaîne voici une chaîne chaînechaîne sur deux lignes ;-) voici une chaîne sur deux lignes ;-)

1310:59:29 Programmation Web Concaténation de chaînes Permet dassembler plusieurs chaînes Permet dassembler plusieurs chaînes Réalisé grâce à lopérateur point :. Réalisé grâce à lopérateur point :. "Bonjour ". "Marcel" "Bonjour ". "Marcel" vaut "Bonjour Marcel" vaut "Bonjour Marcel" $nb = 6*2 ; "Acheter ". $nb. " oeufs" "Acheter ". $nb. " oeufs" vaut "Acheter 12 oeufs" vaut "Acheter 12 oeufs"

1410:59:29 Programmation Web La commande echo Permet denvoyer du texte au navigateur du client (« écrire » la page au format HTML résultant de linterprétation de PHP) Permet denvoyer du texte au navigateur du client (« écrire » la page au format HTML résultant de linterprétation de PHP) echo "Bonjour" ; echo "Bonjour" ; $nom="Marcel" ; echo "Bonjour $nom" ; $nom="Marcel" ; echo "Bonjour $nom" ; Plus généralement, permet denvoyer des octets au navigateur du client Plus généralement, permet denvoyer des octets au navigateur du client Ficher HTML, XML, CSS, JavaScript, … Ficher HTML, XML, CSS, JavaScript, … Données d'une image Données d'une image Contenu d'un ficher PDF, Flash, etc. Contenu d'un ficher PDF, Flash, etc.

1510:59:29 Programmation Web Hello world ! <?php $debut = <<<HTML hello hello \n \n HTML; $corps = "Hello world!\n"; $fin = <<<HTML HTML; /* Envoi au client */ echo $debut.$corps.$fin ; <?php $debut = <<<HTML hello hello \n \n HTML; $corps = "Hello world!\n"; $fin = <<<HTML HTML; /* Envoi au client */ echo $debut.$corps.$fin ; hello hello Hello world! hello hello Hello world! ServeurNavigateur Impossible de voir le code PHP depuis le navigateur !! Interprétation du code PHP sur le serveur et transmission du résultat au client

1610:59:29Programmation Web Les opérateurs arithmétiques $a + $b$a + $b$a + $b$a + $bSomme $a - $b$a - $b$a - $b$a - $bDifférence $a * $b$a * $b$a * $b$a * $bMultiplication $a / $b$a / $b$a / $b$a / $bDivision $a % $b$a % $b$a % $b$a % $b Modulo (Reste de la division entière)

1710:59:29 Programmation Web Les opérateurs din- et de dé-crémentation pré- et post-fixés $a ++ Retourne la valeur de $a puis augmente la valeur de $a de 1 ++ $a Augmente la valeur de $a de 1 puis retourne la nouvelle valeur de $a $a -- Retourne la valeur de $a puis diminue la valeur de $a de 1 -- $a Diminue la valeur de $a de 1 puis retourne la nouvelle valeur de $a

1810:59:29 Programmation Web Les opérateurs de comparaison $a == $b Vrai si égalité entre les valeurs de $a et $b $a != $b Vrai si différence entre les valeurs de $a et $b $a < $b$a < $b$a < $b$a < $b Vrai si $a inférieur à $b $a > $b$a > $b$a > $b$a > $b Vrai si $a supérieur à $b $a <= $b Vrai si $a inférieur ou égal à $b $a >= $b Vrai si $a supérieur ou égal à $b $a === $b Vrai si $a et $b identiques (valeur et type) $a !== $b Vrai si $a et $b différents (valeur ou type)

1910:59:29 Programmation Web Les opérateurs logiques [Expr1] and [Expr2] Vrai si [Expr1] et [Expr2] sont vraies [Expr1] && [Expr2] idem [Expr1] or [Expr2] Vrai si [Expr1] ou [Expr2] sont vraies [Expr1] || [Expr2] idem [Expr1] xor [Expr2] Vrai si [Expr1] ou [Expr2] sont vraies mais pas les deux ! [Expr1] Vrai si [Expr1] est non vraie

2010:59:29 Programmation Web Les opérateurs sur bits $a & $b$a & $b$a & $b$a & $b ET binaire $a | $b$a | $b$a | $b$a | $b OU binaire $a ^ $b$a ^ $b$a ^ $b$a ^ $b XOR binaire ~ $a~ $a~ $a~ $a Inversion bit à bit $a << $b $a décalé à gauche de $b rangs $a >> $b $a décalé à droite de $b rangs

2110:59:29 Programmation Web Précédence des opérateurs

2210:59:29 Programmation Web Précédence des opérateurs En cas de doute, utilisez les parenthèses ;-) En cas de doute, utilisez les parenthèses ;-)

2310:59:29 Programmation Web Structure de contrôle Si…Alors…Sinon… if ( condition ) { /* Bloc dinstructions exécuté si la condition est vraie */ } [ else { /* Bloc dinstructions exécuté si la condition est fausse */ } ]

2410:59:29 Programmation Web Structure de contrôle Tant que… faire… while ( condition ) { /* Bloc dinstructions répété tant que la condition est vraie */ } do { /* Bloc dinstructions exécuté une fois puis répété tant que la condition est vraie */ } while ( condition ) ;

2510:59:29 Programmation Web Structure de contrôle Tant que… faire… for(avant; condition; fin_chaque_itération) {/* Bloc dinstructions répété tant que la condition est vraie */ } Équivalent à: avant ; while (condition) {/* Bloc dinstructions répété tant que la condition est vraie */ fin_chaque_itération ; }

2610:59:29 Programmation Web Structure de contrôle switch… switch (val) { case v1: instructions exécutées si val==v1 instructions exécutées si val==v1 case v2: instructions exécutées si val==v2 instructions exécutées si val==v2 ou si val==v1 ou si val==v1…default: instructions dans tous les cas instructions dans tous les cas}

2710:59:29 Programmation Web Linstruction break Permet de sortir dune structure de contrôle switch (val) { case v1: instructions exécutées si val==v1 instructions exécutées si val==v1 break ; /* On sort du switch si val==v1 */ break ; /* On sort du switch si val==v1 */ case v2: instructions exécutées si val==v2 instructions exécutées si val==v2 ou si val==v1 ou si val==v1 break ; /* On sort du switch si val==v2 */ break ; /* On sort du switch si val==v2 */…default: instructions exécutées dans tous les cas instructions exécutées dans tous les cas si val!=v1 et val!=v2 si val!=v1 et val!=v2}

2810:59:29 Programmation Web Les tableaux Création / initialisation: Création / initialisation: $tab1=array(12, "fraise", 2.5) ; $tab2[] = 12 ; $tab2[] = "fraise" ; $tab2[] = 2.5 ; $tab3[0] = 12 ; $tab3[1] = "fraise" ; $tab3[2] = 2.5 ; CléValeur 012 1"fraise" 22.5

2910:59:29 Programmation Web Les tableaux « à trous » Les éléments du tableaux ne sont pas forcement dindices consécutifs : Les éléments du tableaux ne sont pas forcement dindices consécutifs : $tab4[0] = 12 ; $tab4[1] = "fraise" ; $tab4[2] = 2.5 ; $tab4[5] = "el5" ; Comment parcourir de tels tableaux ? Comment parcourir de tels tableaux ? CléValeur 012 1"fraise" "el5"

3010:59:29 Programmation Web Les tableaux « à trous » (suite) Parcours classique : for ($i=0; $i < sizeof($tab4); $i++) { echo "tab4[$i]: ". $tab4[$i]. " \n";. $tab4[$i]. " \n";} ?CléValeur012 1"fraise" "el5" 4

3110:59:29 Programmation Web Structure de contrôle Pour chaque… foreach ($tableau as $element) { /* Bloc dinstructions répété pour chaque élément de $tableau */ /* Chaque élément de $tableau est accessible grâce à $element */ }

3210:59:29 Programmation Web Parcours de tableau : foreach … $tab4[0] = 12 ; $tab4[1] = "fraise" ; $tab4[2] = 2.5 ; $tab4[5] = "el5" ; foreach($tab4 as $v) { echo "Val: $v \n"; echo "Val: $v \n";}…… Val:12 \n Val:fraise \n Val:2.5 \n Val:el5 \n … PHPHTML Navigateur

3310:59:29 Programmation Web Tableaux associatifs Tableaux dont laccès aux éléments nest plus réalisé grâce à un index (0,1,…) mais grâce à une clé de type entier ou chaîne. Tableaux dont laccès aux éléments nest plus réalisé grâce à un index (0,1,…) mais grâce à une clé de type entier ou chaîne. Exemples de clés: Exemples de clés: $tab[ 'un' ] = 12 ; $tab[ 'un' ] = 12 ; $tab[ 205 ] = "bonjour" ; $tab[ 205 ] = "bonjour" ; $tab[ "la valeur" ]= 3.0 ; $tab[ "la valeur" ]= 3.0 ; Création Création $tab = array( cle1 => val1, cle2 => val2, cle2 => val2, …); …);

3410:59:29 Programmation Web Tableaux associatifs - Exemples $tab5['un'] = 12 ; $tab5['trois'] = "fraise" ; $tab5["deux"] = 2.5 ; $tab5[42] = "el5" ; $tab6 = array('un' => 12, 'trois' => "fraise", 'trois' => "fraise", "deux" => 2.5, "deux" => 2.5, 42 => "el5") ; 42 => "el5") ; CléValeur "un" 12 "trois""fraise" "deux"2.5 42"el5"

3510:59:29 Programmation Web Structure de contrôle Pour chaque… foreach( $tableau as $cle => $element ) { /* Bloc dinstructions répété pour chaque élément de $tableau */ chaque élément de $tableau */ /* Chaque élément de $tableau est accessible grâce à $element */ accessible grâce à $element */ /* La clé daccès à chaque élément est donnée par $cle */ donnée par $cle */}

3610:59:29 Programmation Web Parcours de tableau <?php $html = <<<HTML foreach clé foreach clé HTML; $tab6 = array('un' => 12, 'deux' => "fraise", 'deux' => "fraise", "trois" => 2.5, "trois" => 2.5, "quatre" => "el5") ; "quatre" => "el5") ; foreach ($tab6 as $cle => $val) { $html.= "tab[$cle]: $val \n" ; $html.= "tab[$cle]: $val \n" ;} echo $html. " \n " ; <?php $html = <<<HTML foreach clé foreach clé HTML; $tab6 = array('un' => 12, 'deux' => "fraise", 'deux' => "fraise", "trois" => 2.5, "trois" => 2.5, "quatre" => "el5") ; "quatre" => "el5") ; foreach ($tab6 as $cle => $val) { $html.= "tab[$cle]: $val \n" ; $html.= "tab[$cle]: $val \n" ;} echo $html. " \n " ;

3710:59:29 Programmation Web Exemple de génération de code HTML <?php $html = <<<HTML <meta http-equiv="Content-Type" <meta http-equiv="Content-Type" content="text/html; charset=iso "> content="text/html; charset=iso "> Boucle Boucle HTML; for ($i=1; $i<20; $i++) { $html.= "Le serveur compte... " $html.= "Le serveur compte... ". $i. " \n" ;. $i. " \n" ;} $html.= <<<HTML HTML; echo $html ; <?php $html = <<<HTML <meta http-equiv="Content-Type" <meta http-equiv="Content-Type" content="text/html; charset=iso "> content="text/html; charset=iso "> Boucle Boucle HTML; for ($i=1; $i<20; $i++) { $html.= "Le serveur compte... " $html.= "Le serveur compte... ". $i. " \n" ;. $i. " \n" ;} $html.= <<<HTML HTML; echo $html ;

3810:59:29 Programmation Web Traitement des données de formulaires PHP permet de traiter les données saisies grâce à un formulaire HTML si le champ ACTION du formulaire désigne une page PHP du serveur. PHP permet de traiter les données saisies grâce à un formulaire HTML si le champ ACTION du formulaire désigne une page PHP du serveur. Après récupération par le serveur Web, les données sont contenues dans l'une des variables superglobales de type tableau associatif $_GET ou $_POST (ou $_REQUEST ). Après récupération par le serveur Web, les données sont contenues dans l'une des variables superglobales de type tableau associatif $_GET ou $_POST (ou $_REQUEST ). La valeur peut être trouvée grâce à une clé qui porte le même nom que le champs du formulaire de la page HTML de saisie. La valeur peut être trouvée grâce à une clé qui porte le même nom que le champs du formulaire de la page HTML de saisie.

3910:59:29 Programmation Web RéseauRéseau Traitement des données de formulaires ServeurServeur Serveur Web Module PHP ClientClient Navigateur HTMLHTML JavaScriptJavaScript CSSCSS bonjour bonjour Bonjour robert ! bonjour bonjour Bonjour robert ! <?php $html = <<<HTML bonjour bonjour HTML; $html.= "Bonjour ".$_GET['nomPers']." !\n" ; echo $html. " \n " ; <?php $html = <<<HTML bonjour bonjour HTML; $html.= "Bonjour ".$_GET['nomPers']." !\n" ; echo $html. " \n " ; nomPers=robertnomPers=robert robertrobert nomPersnomPers

4010:59:29 Programmation Web Exemple – Formulaire HTML formulaire formulaire Nom: Nom: formulaire formulaire Nom: Nom:

4110:59:29 Programmation Web Exemple – Traitement en PHP <?php $html = <<<HTML Validation Validation HTML; if (isset($_GET['nomPers'])) if (isset($_GET['nomPers'])) { if (!empty($_GET['nomPers'])) if (!empty($_GET['nomPers'])) { $html.= "Vous avez saisi '" $html.= "Vous avez saisi '".$_GET['nomPers']."'\n" ;.$_GET['nomPers']."'\n" ; } else else $html.= "Aucune valeur saisie\n"; $html.= "Aucune valeur saisie\n"; } else else $html.= "Utilisation incorrecte\n" ; $html.= "Utilisation incorrecte\n" ; echo $html. " \n " ; <?php $html = <<<HTML Validation Validation HTML; if (isset($_GET['nomPers'])) if (isset($_GET['nomPers'])) { if (!empty($_GET['nomPers'])) if (!empty($_GET['nomPers'])) { $html.= "Vous avez saisi '" $html.= "Vous avez saisi '".$_GET['nomPers']."'\n" ;.$_GET['nomPers']."'\n" ; } else else $html.= "Aucune valeur saisie\n"; $html.= "Aucune valeur saisie\n"; } else else $html.= "Utilisation incorrecte\n" ; $html.= "Utilisation incorrecte\n" ; echo $html. " \n " ; $_GET['nomPers'] est-il défini ? $_GET['nomPers'] est-il défini ? $_GET['nomPers'] est-il vide ? $_GET['nomPers'] est-il vide ?

4210:59:29 Programmation Web Formulaires contenant des champs « SELECT »

4310:59:29 Programmation Web Formulaires contenant des champs « SELECT unique» Formulaire de saisie des fruits Formulaire de saisie des fruits Choisissez des fruits: Fraise Fraise Pomme Pomme Poire Poire Banane Banane Cerise Cerise Formulaire de saisie des fruits Formulaire de saisie des fruits Choisissez des fruits: Fraise Fraise Pomme Pomme Poire Poire Banane Banane Cerise Cerise valide3.php?sel=Pomme EnvoyerEnvoyer

4410:59:29 Programmation Web Formulaires contenant des champs « SELECT multiple» Formulaire de saisie des fruits Formulaire de saisie des fruits Choisissez des fruits: Fraise Fraise Pomme Pomme Poire Poire Banane Banane Cerise Cerise valide3.php?sel=Pomme&sel=Poire EnvoyerEnvoyer ??????

4510:59:29 Programmation Web Formulaires contenant des champs « SELECT multiple» Formulaire de saisie des fruits Formulaire de saisie des fruits Choisissez des fruits: Fraise Fraise Pomme Pomme Poire Poire Banane Banane Cerise Cerise valide3.php?sel[]=Pomme&sel[]=Poire EnvoyerEnvoyer valide3.php?sel%5B%5D=Pomme&sel%5B%5D=Poire

4610:59:29 Programmation Web Traitement des données des champs « SELECT » <?php $html = <<<HTML Liste de fruits Liste de fruits HTML; if (isset($_GET['sel']) && !empty($_GET['sel'])) {/* La variable $_GET['sel'] est définie et elle n'est pas vide */ et elle n'est pas vide */ foreach($_GET['sel'] as $fruit) $html.= "Vous avez choisi $fruit \n" ; $html.= "Vous avez choisi $fruit \n" ;}else $html.= "Vous n'avez pas choisi de fruit\n" ; $html.= "Vous n'avez pas choisi de fruit\n" ; echo $html. " \n " ; <?php $html = <<<HTML Liste de fruits Liste de fruits HTML; if (isset($_GET['sel']) && !empty($_GET['sel'])) {/* La variable $_GET['sel'] est définie et elle n'est pas vide */ et elle n'est pas vide */ foreach($_GET['sel'] as $fruit) $html.= "Vous avez choisi $fruit \n" ; $html.= "Vous avez choisi $fruit \n" ;}else $html.= "Vous n'avez pas choisi de fruit\n" ; $html.= "Vous n'avez pas choisi de fruit\n" ; echo $html. " \n " ; $_GET[sel'] est un tableau $_GET[sel'] est un tableau

4710:59:29 Programmation Web Résultat

4810:59:29 Formulaires contenant des champs « CHECKBOX »

4910:59:29 Programmation Web Formulaires contenant des champs « CHECKBOX » Formulaire de saisie des fruits Formulaire de saisie des fruits Choisissez des fruits : Choisissez des fruits : Fraise Fraise Pomme Pomme Poire Poire Banane Banane Cerise Cerise Formulaire de saisie des fruits Formulaire de saisie des fruits Choisissez des fruits : Choisissez des fruits : Fraise Fraise Pomme Pomme Poire Poire Banane Banane Cerise Cerise

5010:59:29 Programmation Web Résultat

5110:59:29 Références $a = 12 ; $b = $a ; $c = &$a ; $b = "coucou" ; $c = 84 ; echo "\$a : $a\n" ; echo "\$b : $b\n" ; echo "\$c : $c\n" ; unset($c) ; $c = "hello" ; $a$a$a$a $a$a$a$a $b$b$b$b $b$b$b$b $c$c$c$c $c$c$c$c "coucou" 8484 $a : 84 $b : coucou $c : 84 "hello"

5210:59:29 Programmation Web Fonctions utilisateur Description dune fonctionnalité dépendant éventuellement de paramètres et retournant éventuellement un résultat Description dune fonctionnalité dépendant éventuellement de paramètres et retournant éventuellement un résultat Définition Définition function moyenne($a,$b) { return ($a+$b)/2. ; return ($a+$b)/2. ;} Utilisation Utilisation $resultat = moyenne(2,4) ; echo $resultat ; // vaut 3

5310:59:29 Programmation Web Fonctions utilisateur Valeur de retour Valeur de retour function moyenne($a,$b) { … } Arguments Arguments function moyenne( $a, $b) { … } Typage faible de PHP : Aucune information Typage faible de PHP : Aucune information Typage faible de PHP : Aucune information Typage faible de PHP : Aucune information Typage faible de PHP : Aucune information Typage faible de PHP : Aucune information

5410:59:29 Programmation Web Mode de passage des arguments (types natifs) <?php function permutation($x, $y) { echo "permutation..." ; $t = $x ; $x = $y ; $y = $t ; } $a = 12 ; $b = 210 ; echo "\$a = $a" ; echo "\$b = $b" ; permutation($a, $b) ; echo "\$a = $a" ; echo "\$b = $b" ; ?> $a = 12 $b = 210 permutation... $a = 12 $b = 210 $a = 12 $b = 210 permutation... $a = 12 $b = 210 Permutation impossible : Passage des arguments des fonctions par valeur Permutation impossible : Passage des arguments des fonctions par valeur

5510:59:29 Programmation Web Mode de passage des arguments (types natifs) <?php function permutation(&$x, &$y) { echo "permutation..." ; $t = $x ; $x = $y ; $y = $t ; } $a = 12 ; $b = 210 ; echo "\$a = $a" ; echo "\$b = $b" ; permutation($a, $b) ; echo "\$a = $a" ; echo "\$b = $b" ; ?> $a = 12 $b = 210 permutation... $a = 210 $b = 12 $a = 12 $b = 210 permutation... $a = 210 $b = 12 Permutation réussie

5610:59:29 Programmation Web Arguments par défaut des fonctions Valeur par défaut dun argument sil na pas été défini lors de lappel de la fonction Valeur par défaut dun argument sil na pas été défini lors de lappel de la fonction function bonjour($nom="inconnu") { echo "Bonjour cher $nom" ; } Utilisation Utilisation bonjour() ; bonjour("Marcel") ; Bonjour cher inconnu Bonjour cher Marcel

5710:59:29 Programmation Web Définition de fonctions fréquemment utilisées Certaines fonctions sont utilisées dans plusieurs scripts PHP Certaines fonctions sont utilisées dans plusieurs scripts PHP Comment faire pour ne pas les définir dans chacune des pages ? Comment faire pour ne pas les définir dans chacune des pages ? Utilisation de : Utilisation de : include("fichier") ; include("fichier") ; require("fichier") ; require("fichier") ; include_once("fichier") ; include_once("fichier") ; require_once("fichier") ; require_once("fichier") ; Permet d inclure le contenu de fichier dans le script courant Permet d inclure le contenu de fichier dans le script courant

5810:59:29 Programmation Web include et require Fichier mafonction.php <? function mafonction($arg) { if (isset($arg)) if (isset($arg)) { echo ("Vrai") ; echo ("Vrai") ; } else else { echo ("Faux") ; echo ("Faux") ; }}?> Fichier utilisation1.php … require("mafonction.php") mafonction(true) ; … Fichier utilisation2.php … include("mafonction.php") … $var=false ; mafonction($var) ; … Fichier utilisation3.php … require("mafonction.php") …

5910:59:29 Programmation Web Définition de constantes <?php define("ma_constante", "Bonjour à tous") ; echo ma_constante ; ?> Définition d'une constante Utilisation de la constante nomnom valeurvaleur

6010:59:29 Programmation Web Gestion des erreurs Dans certains cas, il nest ni possible ni utile de poursuivre lexécution du code PHP (variables non définies, valeurs erronées, échec de connexion, …) Dans certains cas, il nest ni possible ni utile de poursuivre lexécution du code PHP (variables non définies, valeurs erronées, échec de connexion, …) Arrêt brutal de lexécution du code: Arrêt brutal de lexécution du code: die(message) die(message) exit(message) exit(message) Envoie message au navigateur et termine lexécution du script courant

6110:59:29 Programmation Web Gestion des erreurs – (Mauvais) Exemple <?php $html = <<<HTML die-exit die-exit HTML; if (!isset($val)) { die($html."problème val") ; die($html."problème val") ; /* Au delà de ce point, /* Au delà de ce point, fin du script */ fin du script */} $html.= <<<HTML Choix: $val die-exit die-exit problème val PHPHTML Navigateur HTML non valide …

6210:59:29 Programmation Web php.iniphp.ini Gestion de l'affichage des erreurs int error_reporting ( [int level] ) int error_reporting ( [int level] )ConstanteE_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_ALL E_STRICT Ancien niveau d'erreur Sur un serveur en production, toute erreur affichée donne des indices sur les scripts et rend le site vulnérable display_errors boolean boolean display_errors boolean boolean Débogage

6310:59:29 Programmation Web Opérateur de contrôle d'erreur $v = file("dummy.txt") or die("Problème de lecture") ; or die("Problème de lecture") ; Warning: file(dummy.txt): failed to open stream: No such file or directory in dummy.php on line 68 Problème de lecture Problème de lecture $v or die("Problème de lecture") ; or die("Problème de lecture") ; Fichier absent