PHP. Introduction à la programmation web serveur. Université Nice Sophia-Antipolis. Découverte et pratique avec PHP. Fabien Givors

Documents pareils
Programmation Web. Madalina Croitoru IUT Montpellier

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Développement des Systèmes d Information

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

TP 1. Prise en main du langage Python

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

STAGE IREM 0- Premiers pas en Python

Algorithmique et Programmation, IMA

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Programmer en JAVA. par Tama

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Présentation du langage et premières fonctions

Les chaînes de caractères

Hébergement de site web Damien Nouvel

Utilisation d objets : String et ArrayList

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP


Introduction à MATLAB R

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Introduction au langage C

ALGORITHMIQUE ET PROGRAMMATION En C

Devenez un véritable développeur web en 3 mois!

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Module http MMS AllMySMS.com Manuel d intégration

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

as Architecture des Systèmes d Information

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Plan du cours. Historique du langage Nouveautés de Java 7

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Mysql avec EasyPhp. 1 er mars 2006

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Plateforme PAYZEN. Définition de Web-services

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

AWS avancé. Surveiller votre utilisation d EC2

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

TP JAVASCRIPT OMI4 TP5 SRC

Application Web et J2EE

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Les structures. Chapitre 3

Algorithmique et programmation : les bases (VBA) Corrigé

Java Licence Professionnelle CISII,

Diffuser un contenu sur Internet : notions de base... 13

Notions fondamentales du langage C# Version 1.0

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

2 Formation utilisateur

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4

TP1. Outils Java Eléments de correction

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

SUPPORT DE COURS. Langage C

Cours Informatique Master STEP

UE Programmation Impérative Licence 2ème Année

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

INF 321 : mémento de la syntaxe de Java

Dans l'article précédent, vous avez appris

Comment développer et intégrer un module à PhpMyLab?

Mise en œuvre des serveurs d application

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Introduction à l algorithmique et à la programmation M1102 CM n 3

Administration de Parc Informatique TP03 : Résolution de noms

Définition des Webservices Ordre de paiement par . Version 1.0

Environnements informatiques

Programmation Web. Introduction

Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012

Programmation en Java IUT GEII (MC-II1) 1

Apprendre Java en 154 minutes

Pratique et administration des systèmes

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Recherche dans un tableau

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Publication dans le Back Office

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Introduction à la Programmation Parallèle: MPI

Corrigé des TD 1 à 5

STID 2ème année : TP Web/PHP

Stockage du fichier dans une table mysql:

TD3: tableaux avancées, première classe et chaînes

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Module BD et sites WEB

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

HTML, CSS, JS et CGI. Elanore Elessar Dimar

L informatique en BCPST

Les outils de création de sites web

CREATION WEB DYNAMIQUE

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Transcription:

Introduction à la programmation web serveur Découverte et pratique avec PHP Fabien Givors d après les cours de Philippe Renevier Gonin Université Nice Sophia-Antipolis Année universitaire 2014-2015 PHP

Programme de l option Cours Introduction à la programmation côté serveur avec php Éléments de php, passage de paramètre d une page à une autre Notion de session Manipulation de fichier Les fonctions en php Les formulaires Introduction à la POO, notion d architecture Génération de données php, recherche Contrôle d accès (redirection) TP Réalisation d un mini-site (échelonné sur les séances) Exercices enseignant les bonnes pratiques (programmation, sécurité) 0. Intro UE 2/15

Calendrier et évaluation Cours et TP Début le jeudi 18 septembre Cours les jeudi après-midi, tant que possible TP les lundi et jeudi après-midi (Groupes de TP à faire en fin de séance) Évaluation 30% : Note de TP 30% : Contrôle continu 40% : Contrôle final 0. Intro UE 3/15

1. présentation et problématiques

Vue d ensemble Le navigateur affiche une page Web. Cette page Web est en fait un fichier HTML. Elle est transmise au navigateur par le serveur via le protocole HTTP. Le HTML transmis est le résultat de l interprétation d un fichier PHP. Notes : Le navigateur ne voit jamais le PHP Le PHP n agit que sur le HTML envoyé (pas de dynamisme pendant la consultation d une page) 1. présentation et problématiques 4/15

PHP : Hypertext Pre Processor Langage et interpréteur Un Pré-processeur pour HTML (HTTP) Langage impératif avec couche objet Typage dynamique Créé par Rasmus Lerdorf en 1994 Déjà 5 versions majeures (actuelle 5.6.0) Interpréteur libre http://php.net 1. présentation et problématiques 5/15

Langage exécuté par le serveur Le code est situé sur le serveur (ex : fichier index.php). Le navigateur fait une requête sur une page php /index.php?num=1. Le serveur identifie le fichier de script et ses arguments (en fonction de la requête.) Le serveur interprète (exécute) le fichier de script (c est à dire le code entre balise «<?php» et «?>» Le serveur renvoie le résultat au navigateur. 1. présentation et problématiques 6/15

Exemple de fonctionnement Le navigateur demande la ressource à l adresse GET / index. php?num=1 HTTP / 1. 1 Host : example. com http://example.com/index.php?num=1 Requête HTTP : Code PHP exécuté : <?php $numero = $_GET [ num ] ;?><p>le <span s t y l e = f ont - weight : bold ; >numéro </ span> e n t r é e s t l e <?php echo $numero ;? >. </p> Données (HTML) transmises en retour par HTTP : <p>le <span s t y l e = font - weight : bold ; >numéro< / span> e n t r é e s t l e 1.</ p> Affichage navigateur : «Le numéro entré est le 1.» 1. présentation et problématiques 7/15

Intérêt Un unique script PHP peut : analyser et traîter les données fournies avant de les afficher; afficher un très grand nombre de pages similaires mais différentes; effectuer des opérations privilégiées côté serveur : envoi de fichiers de données, édition de données, interraction avec des bases de données, etc. etc. 1. présentation et problématiques 8/15

2. programmer en php echo Hello World! ;

Éléments syntaxiques Exemple de code 1 <?php / * comptecars compte l e nombre d o c c u r r e n c e s du c a r a c t è r e $car dans l a c h a î n e $ c h a i n e. * / f u n c t i o n comptecars ( $chaine, $car ) { $compteur =0; f o r ( $ i =0; $i < s t r l e n ( $chaine ) ; $ i ++) { / / n i t è r e s u r chaque c a r a c t è r e de $ c h a i n e v i a $ i i f ( $chaine { $ i == $car ) / / n a t r o u v é un $car { $compteur ++; r e t u r n $compteur ; $phrase= abracadabra ; $nba=comptecars ( $phrase, a ) ; echo I l y a $nba occurrence ( s ) de a dans «. $phrase.» \ n ; 2. programmer?> en php 9/15

Éléments syntaxiques Exemple de code 1 <?php / * comptecars compte l e nombre d o c c u r r e n c e s du c a r a c t è r e $car dans l a c h a î n e $ c h a i n e. * / f u n c t i o n comptecars ( $chaine, $car ) { Début d une portion de code PHP : $compteur =0; <?php f o r ( $ i =0; $i < s t r l e n ( $chaine ) ; $ i ++) { / / Fin n d une i t è r eportion s u r chaque de codecphp a r a c: t è r e de $ c h a i n e v i a $ i i f ( $chaine { $ i == $car ) / / n a t r o u v é un $car {?> $compteur Autant de portions ++; de code que vous voulez dans un fichier r e t u r n $compteur ; $phrase= abracadabra ; $nba=comptecars ( $phrase, a ) ; echo I l y a $nba occurrence ( s ) de a dans «. $phrase.» \ n ;?> PHP Tags 2. programmer en php 9/15

Éléments syntaxiques Exemple de code 1 <?php / * comptecars compte l e nombre d o c c u r r e n c e s du c a r a c t è r e $car dans l a c h a î n e $ c h a i n e. * / f u n c t i o n comptecars ( $chaine, $car ) Commentaire multi-ligne entre /* et */ { $compteur / * comptecars =0; compte l e nombre d o c c u r r e n c e s du f o r ( $ i =0; c a $i r a < c tsè tr re l n $car ( $chaine dans ) l; a $ ci ++) h a î n e $ c h a i n e. * / { / / n i t è r e s u r chaque c a r a c t è r e de $ c h a i n e v i a $ i i f ( Commentaire $chaine { $ i mono-ligne == $car ) après / / n // a t r o u v é un $car { { / / n i t è r e s u r chaque c a r a c t è r e de $ c h a i n e v i a $ i $compteur ++; Un commentaire doit être informatif et ne pas répéter le code. r e t u r n $compteur ; $phrase= abracadabra ; $nba=comptecars ( $phrase, a ) ; echo I l y a $nba occurrence ( s ) de a dans «. $phrase.» \ n ;?> Commentaires 2. programmer en php 9/15

Éléments syntaxiques Exemple de code 1 <?php / * comptecars compte l e nombre d o c c u r r e n c e s du c a r a c t è r e $car dans l a c h a î n e $ c h a i n e. * / f u n c t i o n comptecars ( $chaine, $car ) { $compteur Suite d instructions =0; f o r ( $ Une i =0; instruction $i < s t r l ese n ( termine $chaine par ) ; un $ i point-virgule ++) : ; { / / Un n bloc i t è d instructions r e s u r chaque s écritc a r entre a c t è r accolades e $ c h : a i { n e v i a $ i i f ( Nombreuses $chaine { $ i fonctions == $car internes ) / / n et mots-clés a t r o u v é : un echo, $car strlen, { À apprendre sur le tas. $compteur ++; r e t u r n $compteur ; $phrase= abracadabra ; $nba=comptecars ( $phrase, a ) ; echo I l y a $nba occurrence ( s ) de a dans «. $phrase.» \ n ;?> Langage impératif 2. programmer en php 9/15

Éléments syntaxiques Exemple de code 1 <?php / * comptecars compte l e nombre d o c c u r r e n c e s du c a r a c t è r e $car dans l a c h a î n e $ c h a i n e. * / Les noms de variables commencent toujours par $. f u n c t i o n comptecars ( $chaine, $car ) Déclaration et initialisation avec = { $compteur $compteur =0; =0; f o r ( $ i =0; $i < s t r l e n ( $chaine ) ; $ i ++) Portée : une variable n est pas accessible en dehors du bloc { { / / n i t è r e s u r chaque c a r a c t è r e de $ c h a i n e v i a $ i i f ( dans $chaine lequel { $ elle i == est$car déclarée. ) / / n a t r o u v é un $car { Réutilisation de la valeur d une variable $compteur ++; $phrase= abracadabra ; $nba=comptecars ( $phrase, a ) ; r e t u r n $compteur ; $phrase= abracadabra ; $nba=comptecars ( $phrase, a ) ; echo I l y a $nba occurrence ( s ) de a dans «. $phrase.» \ n ;?> Variables 2. programmer en php 9/15

Éléments syntaxiques Exemple de code 1 <?php / * comptecars compte l e nombre d o c c u r r e n c e s du c a r a c t è r e $car dans l a c h a î n e $ c h a i n e. * / f u n c t i o n comptecars ( $chaine, $car ) { Vérifier si deux termes sont égaux avec == $compteur =0; i f ( $chaine { $ i == $car ) / / n a f o r ( $ i =0; $i < s t r l e n ( $chaine ) ; $ i ++) t r o u v é un $car { / / Vérifier n i t èsi r euns terme u r chaque est plus c apetit r a c t qu un è r e de autre $ c havec a i n e < v i a $ i i f ( $chaine { $ i == $car ) / / n a t r o u v é un $car { f o r ( $ i =0; $i < s t r l e n ( $chaine ) ; $ i ++) $compteur ++; Un test renvoie un booléen true ou false. r e t u r n $compteur ; $phrase= abracadabra ; $nba=comptecars ( $phrase, a ) ; echo I l y a $nba occurrence ( s ) de a dans «. $phrase.» \ n ;?> Tests et comparaisons 2. programmer en php 9/15

Éléments syntaxiques Exemple de code 1 <?php / * comptecars compte l e nombre d o c c u r r e n c e s du Permettent d organiser et factoriser le code (éviter les répétitions). c a r a c t è r e $car dans l a c h a î n e $ c h a i n e. * / Déclaration avec le nom et les arguments de la fonction : f u n c t i o n comptecars ( $chaine, $car ) { f u n c t i o n comptecars ( $chaine, $car ) $compteur =0; La définition suit ensuite entre {. f o r ( $ i =0; $i < s t r l e n ( $chaine ) ; $ i ++) { / / La nvaleur i t è r ecalculée s u r chaque par la fonction c a r a c t èest r e renvoyée de $ c h a par i n e return v i a $ i i f ( $chaine r e t u r n { $ $compteur i == $car ; ) / / n a t r o u v é un $car { $compteur La fonction++; est appelée par son nom et avec ses arguments. $nba=comptecars ( $phrase, a ) ; r e t u rla n valeur $compteur de retour ; est récupérée en la stockant dans une variable. $phrase= abracadabra ; $nba=comptecars ( $phrase, a ) ; echo I l y a $nba occurrence ( s ) de a dans «. $phrase.» \ n ;?> Fonction 2. programmer en php 9/15

Éléments syntaxiques Les chaînes de caractères Définition et affectation : Texte entre guillemet : ceci est une chaîne Affectation à une variable : $machaine = ornythorinque ; Substitution de variable : Mon animal préféré est l $machaine Accéder au i + 1ème caractère : $machaine{1 (== r ) Concaténation : B. A (== BA ) Comparaisons lexicographiques : <, <=, ==, >=, >,!= Opérations : Affichage : echo chaîne de caractère ; Calcul de la longueur : $l = strlen( chaîne de caractère ); Caractères d échappement : \n : saut de ligne \t : tabulation \$ : symbole «$» \ : symbole 2. programmer en php 10/15

Éléments syntaxiques Les entiers et les flottants Définition et affectation : Nombre avec ou sans virgule : $monnum = 42; Comparaisons : <, <=, ==, >=, >,!= Type forçable (cast) : (double) 4 Type forçable (cast) : (int) 0.0 Affichage : echo 42; Arithmétique : $a=2**3+2*(10/0.5)-6; Et aussi : modulo : 10%4 (==2) Opérations : parties entières : ceil(0.4) (==1), floor(0.4) (==0) etc. 2. programmer en php 11/15

Éléments syntaxiques Variables Variables globales accessibles et modifiables depuis toute la page accessibles depuis les fonctions et autres pages via le mot clé global. 2. programmer en php 12/15

Éléments syntaxiques Variables Variables globales accessibles et modifiables depuis toute la page accessibles depuis les fonctions et autres pages via le mot clé global. Tip À éviter à tout prix. Considéré comme une très mauvaise pratique. 2. programmer en php 12/15

Éléments syntaxiques Variables Variables globales accessibles et modifiables depuis toute la page accessibles depuis les fonctions et autres pages via le mot clé global. Variables locales variables définies à l intérieur d une fonction ; arguments d entrée d une fonction ; accessibles uniquement depuis cette fonction. 2. programmer en php 12/15

Éléments syntaxiques Variables Variables globales accessibles et modifiables depuis toute la page accessibles depuis les fonctions et autres pages via le mot clé global. Variables locales variables définies à l intérieur d une fonction ; arguments d entrée d une fonction ; accessibles uniquement depuis cette fonction. f u n c t i o n comptecars ( $chaine, $car ) { $compteur =0; 2. programmer en php 12/15

Éléments syntaxiques Tableaux et dictionnaires Initialiser un tableau vide : $t = array() Initialiser un tableau simple : $t = array(42, meuh, -1667) Initialiser un tableau avec étiquettes : $t = array( num => 10, nom => frites ) Ajouter un élément à la fin d un tableau : $t[] = bla Accéder au i + 1-ème élément : $t[0] Accéder à l élément d étiquette num : $t[ num ] Vérifier si un tableau a un élément d étiquette num : has_key Compter le nombre d éléments d un tableau : len($t) 2. programmer en php 13/15

Éléments syntaxiques Tableaux et dictionnaires <?php $formules = a r r a y ( 1 1. 9 0, 18.90, 22.50) ; $ s p e c i a l i t e s = a r r a y ( ) ; $ s p e c i a l i t e s [ ] = a r r a y ( Initialiser nom un tableau => Salade vide : $t n i = ç array() o i s e, Initialiser p r iun x tableau => 6.50 simple : $t = array(42, meuh, -1667) ) ; Initialiser un tableau avec étiquettes : $t = array( num => 10, nom => frites ) $ s p e c i a l i t e s [ ] = a r r a y ( Ajouter nom un élément => Socca à la fin, d un tableau : $t[] = bla Accéder p rau i x i + => 1-ème 3.00 élément : $t[0] ) ; Accéder à l élément d étiquette num : $t[ num ] $ s p e c i a l i t e s [ ] = a r r a y ( Vérifier nom si un tableau => P ias sun a lélément a d i è r e d étiquette, num : has_key p r i x => 5.50 Compter le nombre d éléments d un tableau : len($t) ) ; Exemple $formules [ 0 ] = 15.90; $ s p e c i a l i t e s [ 1 ] [ p r i x ] = 4. 5 0 ; 2. programmer en php 13/15

Éléments syntaxiques Structures de contrôle if i f ( $saison == été ) { / / Les p r i x de c e r t a i n s p r o d u i t s augmentent en é t é $formules [ 0 ] = 15.90; $ s p e c i a l i t e s [ 1 ] [ p r i x ] = 4. 5 0 ; if else for while foreach 2. programmer en php 14/15

Éléments syntaxiques Structures de contrôle if if else i f ( $saison == été ) { / / Les p r i x de c e r t a i n s p r o d u i t s augmentent en é t é $formules [ 0 ] = 15.90; $ s p e c i a l i t e s [ 1 ] [ p r i x ] = 4. 5 0 ; e l s e { for while foreach 2. programmer en php 14/15

Éléments syntaxiques Structures de contrôle if if else for <h2>formules </h2> <ol > <?php f o r ( $ i =0; $i <count ( $formules ) ; $ i ++) { echo \ t < l i >Formule à. $formules [ $ i ]. euros. </ l i >\n ;?> </ ol > while foreach 2. programmer en php 14/15

Éléments syntaxiques Structures de contrôle if if else for while Plus tard. foreach 2. programmer en php 14/15

Éléments syntaxiques Structures de contrôle if if else for while foreach <h2> S p é c i a l i t é s </h2> <ul > <?php foreach ( $ s p e c i a l i t e s as $ s p e c i a l i t e ) { echo \ t < l i >La. $ s p e c i a l i t e [ nom ]. ; echo e s t à. $ s p e c i a l i t e [ p r i x ]. euros. </ l i >\n ; 2. programmer en php 14/15

Éléments syntaxiques Opérations logiques Notion de booléen : $a < $b : Vrai si $a est inférieur à $b true : Vrai false : Faux 0 : Faux non-0 integer : Faux 2. programmer en php 15/15

Éléments syntaxiques Opérations logiques Notion de booléen : $a < $b : Vrai si $a est inférieur à $b true : Vrai false : Faux 0 : $a Faux === $b : Vrai si $a et $b sont le même objet non-0 (0 == integer false) est : Faux vrai. (0 === false) est faux. == vs === 2. programmer en php 15/15

Éléments syntaxiques Opérations logiques Notion de booléen : $a < $b : Vrai si $a est inférieur à $b true : Vrai false : Faux 0 : Faux non-0 integer : Faux Opérations booléennes :! $a non $a $a && $b $a et $b $a $b $a ou $b $a xor $b ($a et non $b) ou ($b et non $a) 2. programmer en php 15/15