SlideShare une entreprise Scribd logo

.php1 : les fondamentaux du PHP

objectif général : Acquérir les compétences nécessaires pour développer des sites Web dynamiques. objectifs opérationnels : Stocker et utiliser des données à l’aide des variables et des opérateurs. Manipuler des tableaux et des chaînes de caractères. Contrôler le flux d’exécution des instructions. Définir et utiliser des fonctions. Transférer des données. Interfacer PHP avec MySQL.

1  sur  32
Langage PHP 
les fondamentaux 
M. DIENG Abdoulaye Juillet 2014
Objectif général 
Acquérir les compétences nécessaires pour 
développer des sites Web dynamiques.
Objectifs opérationnels 
 Stocker et utiliser des données à l’aide des variables 
et des opérateurs. 
 Manipuler des tableaux et des chaînes de caractères. 
 Contrôler le flux d’exécution des instructions. 
 Définir et utiliser des fonctions. 
 Transférer des données. 
 Interfacer PHP avec MySQL.
Le Sommaire 
1. Présentation de PHP. 
2. Principe de 
fonctionnement. 
3. Exemple introductif. 
4. Les types de base. 
5. Les constantes. 
6. Les tableaux. 
7. Les opérateurs. 
8. Les structures de contrôle. 
9. Les fonctions. 
10. Le transfert de données. 
11. La gestion de sessions 
12. PHP ↔ MySQL.
Présentation de PHP 
 PHP est un langage de script exécuté du côté serveur et utilisé 
essentiellement pour créer des pages Web dynamiques. 
 A la différence des pages statiques, les pages dynamiques 
doivent s'adapter (besoin de l'heure, accès à des bases de 
données, réponse personnalisée, traitement de formulaire, etc.).
Principe de fonctionnement 
1. Requête de données. 
2. Activation du moteur PHP. 
3. Connexion au serveur BDD. 
4. Extraction des données. 
5. Formatage en HTML. 
6. Réponse. 
2 
4 
3 
6 
5 
1 
serveur BDD 
moteur PHP 
serveur Web 
client Web

Recommandé

Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Fabio Hernandez
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 
Modificateurs d'accès en java
Modificateurs d'accès en javaModificateurs d'accès en java
Modificateurs d'accès en javaMohamed Bah
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objetAmir Souissi
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siNarûtö Bàl'Sèm
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 

Contenu connexe

Tendances

Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximationmohamed_SAYARI
 
FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM)
 FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM) FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM)
FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM)Mansi Tyagi
 
Programming Fundamentals Functions in C and types
Programming Fundamentals  Functions in C  and typesProgramming Fundamentals  Functions in C  and types
Programming Fundamentals Functions in C and typesimtiazalijoono
 
C Programming : Pointers and Strings
C Programming : Pointers and StringsC Programming : Pointers and Strings
C Programming : Pointers and StringsSelvaraj Seerangan
 
Fundamental of C Programming Language and Basic Input/Output Function
  Fundamental of C Programming Language and Basic Input/Output Function  Fundamental of C Programming Language and Basic Input/Output Function
Fundamental of C Programming Language and Basic Input/Output Functionimtiazalijoono
 
Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++Fabio Hernandez
 
Cours c#
Cours c#Cours c#
Cours c#zan
 
16717 functions in C++
16717 functions in C++16717 functions in C++
16717 functions in C++LPU
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
Correction de td poo n2
Correction de td poo n2Correction de td poo n2
Correction de td poo n2yassine kchiri
 
Tp1 compte rendu en langage c
Tp1 compte rendu en langage cTp1 compte rendu en langage c
Tp1 compte rendu en langage cEbrima NJIE
 

Tendances (20)

bac info : série récursivité
bac info : série récursivitébac info : série récursivité
bac info : série récursivité
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximation
 
FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM)
 FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM) FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM)
FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM)
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Programming Fundamentals Functions in C and types
Programming Fundamentals  Functions in C  and typesProgramming Fundamentals  Functions in C  and types
Programming Fundamentals Functions in C and types
 
TP C++ : enoncé
TP C++ : enoncéTP C++ : enoncé
TP C++ : enoncé
 
C Programming : Pointers and Strings
C Programming : Pointers and StringsC Programming : Pointers and Strings
C Programming : Pointers and Strings
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Fundamental of C Programming Language and Basic Input/Output Function
  Fundamental of C Programming Language and Basic Input/Output Function  Fundamental of C Programming Language and Basic Input/Output Function
Fundamental of C Programming Language and Basic Input/Output Function
 
Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++
 
Cours c#
Cours c#Cours c#
Cours c#
 
16717 functions in C++
16717 functions in C++16717 functions in C++
16717 functions in C++
 
Cours php
Cours phpCours php
Cours php
 
Function in C
Function in CFunction in C
Function in C
 
Cours de c
Cours de cCours de c
Cours de c
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Correction de td poo n2
Correction de td poo n2Correction de td poo n2
Correction de td poo n2
 
Tp1 compte rendu en langage c
Tp1 compte rendu en langage cTp1 compte rendu en langage c
Tp1 compte rendu en langage c
 
Method overriding
Method overridingMethod overriding
Method overriding
 
C function presentation
C function presentationC function presentation
C function presentation
 

En vedette

Atelier école : recherche d'information, ressources et outils collaboratifs
Atelier école : recherche d'information, ressources et outils collaboratifsAtelier école : recherche d'information, ressources et outils collaboratifs
Atelier école : recherche d'information, ressources et outils collaboratifschauvinclo
 
Clase2 metodos exacavacion_1
Clase2 metodos exacavacion_1Clase2 metodos exacavacion_1
Clase2 metodos exacavacion_1Jorge Lujan
 
Plaquette de la plateforme Deucalion
Plaquette de la plateforme DeucalionPlaquette de la plateforme Deucalion
Plaquette de la plateforme DeucalionStéphane Gasser
 
Présentation is power point
Présentation is power pointPrésentation is power point
Présentation is power point0dboss0
 
DECLARACIÓN DE BIENES Y DE LA RENTA DE MANOLO LOZANO
DECLARACIÓN DE BIENES Y DE LA RENTA DE MANOLO LOZANODECLARACIÓN DE BIENES Y DE LA RENTA DE MANOLO LOZANO
DECLARACIÓN DE BIENES Y DE LA RENTA DE MANOLO LOZANORafa Valdivia
 
Plaquette de presentation green roof
Plaquette de presentation green roofPlaquette de presentation green roof
Plaquette de presentation green roofdemellethomas
 
À la découverte du bilan électrique 2013 de nos régions
À la découverte du bilan électrique 2013 de nos régionsÀ la découverte du bilan électrique 2013 de nos régions
À la découverte du bilan électrique 2013 de nos régionsRTE
 
Le fils de l'autre
Le fils de l'autreLe fils de l'autre
Le fils de l'autreTxaruka
 
Sites de réseautage social, un petit monde où la confiance est aveugle
Sites de réseautage social, un petit monde où la confiance est aveugleSites de réseautage social, un petit monde où la confiance est aveugle
Sites de réseautage social, un petit monde où la confiance est aveugleISACA Chapitre de Québec
 
Parcours professionnels : vers une mise en oeuvre opérationnelle - Bruggeman ...
Parcours professionnels : vers une mise en oeuvre opérationnelle - Bruggeman ...Parcours professionnels : vers une mise en oeuvre opérationnelle - Bruggeman ...
Parcours professionnels : vers une mise en oeuvre opérationnelle - Bruggeman ...Anact
 
Diaporama livret-personnel-de-competences
Diaporama livret-personnel-de-competencesDiaporama livret-personnel-de-competences
Diaporama livret-personnel-de-competencesFranck Dupont
 
Tutorial slideshare
Tutorial slideshareTutorial slideshare
Tutorial slideshareDani Torres
 
Vandenyno bangos
Vandenyno bangosVandenyno bangos
Vandenyno bangosSofija J.
 

En vedette (20)

Atelier école : recherche d'information, ressources et outils collaboratifs
Atelier école : recherche d'information, ressources et outils collaboratifsAtelier école : recherche d'information, ressources et outils collaboratifs
Atelier école : recherche d'information, ressources et outils collaboratifs
 
Clase2 metodos exacavacion_1
Clase2 metodos exacavacion_1Clase2 metodos exacavacion_1
Clase2 metodos exacavacion_1
 
Wcms 154234
Wcms 154234Wcms 154234
Wcms 154234
 
8vo lenguaje
8vo lenguaje8vo lenguaje
8vo lenguaje
 
Plaquette de la plateforme Deucalion
Plaquette de la plateforme DeucalionPlaquette de la plateforme Deucalion
Plaquette de la plateforme Deucalion
 
Présentation is power point
Présentation is power pointPrésentation is power point
Présentation is power point
 
DECLARACIÓN DE BIENES Y DE LA RENTA DE MANOLO LOZANO
DECLARACIÓN DE BIENES Y DE LA RENTA DE MANOLO LOZANODECLARACIÓN DE BIENES Y DE LA RENTA DE MANOLO LOZANO
DECLARACIÓN DE BIENES Y DE LA RENTA DE MANOLO LOZANO
 
Plaquette de presentation green roof
Plaquette de presentation green roofPlaquette de presentation green roof
Plaquette de presentation green roof
 
Articles
ArticlesArticles
Articles
 
Portafolio unidad 3
Portafolio unidad 3Portafolio unidad 3
Portafolio unidad 3
 
À la découverte du bilan électrique 2013 de nos régions
À la découverte du bilan électrique 2013 de nos régionsÀ la découverte du bilan électrique 2013 de nos régions
À la découverte du bilan électrique 2013 de nos régions
 
Le fils de l'autre
Le fils de l'autreLe fils de l'autre
Le fils de l'autre
 
Sites de réseautage social, un petit monde où la confiance est aveugle
Sites de réseautage social, un petit monde où la confiance est aveugleSites de réseautage social, un petit monde où la confiance est aveugle
Sites de réseautage social, un petit monde où la confiance est aveugle
 
Parcours professionnels : vers une mise en oeuvre opérationnelle - Bruggeman ...
Parcours professionnels : vers une mise en oeuvre opérationnelle - Bruggeman ...Parcours professionnels : vers une mise en oeuvre opérationnelle - Bruggeman ...
Parcours professionnels : vers une mise en oeuvre opérationnelle - Bruggeman ...
 
Diaporama livret-personnel-de-competences
Diaporama livret-personnel-de-competencesDiaporama livret-personnel-de-competences
Diaporama livret-personnel-de-competences
 
Cpp2
Cpp2Cpp2
Cpp2
 
Jobb french
Jobb frenchJobb french
Jobb french
 
Tutorial slideshare
Tutorial slideshareTutorial slideshare
Tutorial slideshare
 
Vandenyno bangos
Vandenyno bangosVandenyno bangos
Vandenyno bangos
 
resumen
 resumen resumen
resumen
 

Similaire à .php1 : les fondamentaux du PHP

Développement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfDéveloppement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfYasushiTsubakik
 
seance4-1 php.ppt
seance4-1 php.pptseance4-1 php.ppt
seance4-1 php.pptAmineReal
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP EL JAOUARI Ahmed
 
introJavaScript.ppt
introJavaScript.pptintroJavaScript.ppt
introJavaScript.pptMarwenJAZI
 
initiation au javascript
initiation au javascriptinitiation au javascript
initiation au javascriptAbdoulaye Dieng
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptAbdoulaye Dieng
 
PHP - get started
PHP - get startedPHP - get started
PHP - get startedmazenovi
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptAbdoulaye Dieng
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
Programmation web cours php -- sahmi academy
Programmation web   cours php -- sahmi academyProgrammation web   cours php -- sahmi academy
Programmation web cours php -- sahmi academySoufiane SAHMI
 
Bases de php - Partie 4
Bases de php - Partie 4Bases de php - Partie 4
Bases de php - Partie 4Régis Lutter
 
DataDrill EXPRESS: Les équations dans DataDrill
DataDrill EXPRESS: Les équations dans DataDrill DataDrill EXPRESS: Les équations dans DataDrill
DataDrill EXPRESS: Les équations dans DataDrill Olivier Pinette
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1Régis Lutter
 

Similaire à .php1 : les fondamentaux du PHP (20)

Développement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfDéveloppement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdf
 
Php1
Php1Php1
Php1
 
seance4-1 php.ppt
seance4-1 php.pptseance4-1 php.ppt
seance4-1 php.ppt
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
 
Php cours
Php coursPhp cours
Php cours
 
introJavaScript.ppt
introJavaScript.pptintroJavaScript.ppt
introJavaScript.ppt
 
Cours php
Cours php Cours php
Cours php
 
initiation au javascript
initiation au javascriptinitiation au javascript
initiation au javascript
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
PHP - get started
PHP - get startedPHP - get started
PHP - get started
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
 
Cours php
Cours phpCours php
Cours php
 
Cours3 gdm sql
Cours3 gdm sqlCours3 gdm sql
Cours3 gdm sql
 
Programmation web cours php -- sahmi academy
Programmation web   cours php -- sahmi academyProgrammation web   cours php -- sahmi academy
Programmation web cours php -- sahmi academy
 
Bases de php - Partie 4
Bases de php - Partie 4Bases de php - Partie 4
Bases de php - Partie 4
 
DataDrill EXPRESS: Les équations dans DataDrill
DataDrill EXPRESS: Les équations dans DataDrill DataDrill EXPRESS: Les équations dans DataDrill
DataDrill EXPRESS: Les équations dans DataDrill
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1
 

Plus de Abdoulaye Dieng

Fondamentaux du Référencement naturel
Fondamentaux du Référencement naturelFondamentaux du Référencement naturel
Fondamentaux du Référencement naturelAbdoulaye Dieng
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobilesAbdoulaye Dieng
 
Prise en main de WordPress
Prise en main de WordPressPrise en main de WordPress
Prise en main de WordPressAbdoulaye Dieng
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API RESTAbdoulaye Dieng
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchronesAbdoulaye Dieng
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 

Plus de Abdoulaye Dieng (20)

Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
Fondamentaux du Référencement naturel
Fondamentaux du Référencement naturelFondamentaux du Référencement naturel
Fondamentaux du Référencement naturel
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobiles
 
Prise en main de WordPress
Prise en main de WordPressPrise en main de WordPress
Prise en main de WordPress
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API REST
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchrones
 
Introduction à jQuery
Introduction à jQueryIntroduction à jQuery
Introduction à jQuery
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Introduction à HTML 5
Introduction à HTML 5Introduction à HTML 5
Introduction à HTML 5
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 

.php1 : les fondamentaux du PHP

  • 1. Langage PHP les fondamentaux M. DIENG Abdoulaye Juillet 2014
  • 2. Objectif général Acquérir les compétences nécessaires pour développer des sites Web dynamiques.
  • 3. Objectifs opérationnels  Stocker et utiliser des données à l’aide des variables et des opérateurs.  Manipuler des tableaux et des chaînes de caractères.  Contrôler le flux d’exécution des instructions.  Définir et utiliser des fonctions.  Transférer des données.  Interfacer PHP avec MySQL.
  • 4. Le Sommaire 1. Présentation de PHP. 2. Principe de fonctionnement. 3. Exemple introductif. 4. Les types de base. 5. Les constantes. 6. Les tableaux. 7. Les opérateurs. 8. Les structures de contrôle. 9. Les fonctions. 10. Le transfert de données. 11. La gestion de sessions 12. PHP ↔ MySQL.
  • 5. Présentation de PHP  PHP est un langage de script exécuté du côté serveur et utilisé essentiellement pour créer des pages Web dynamiques.  A la différence des pages statiques, les pages dynamiques doivent s'adapter (besoin de l'heure, accès à des bases de données, réponse personnalisée, traitement de formulaire, etc.).
  • 6. Principe de fonctionnement 1. Requête de données. 2. Activation du moteur PHP. 3. Connexion au serveur BDD. 4. Extraction des données. 5. Formatage en HTML. 6. Réponse. 2 4 3 6 5 1 serveur BDD moteur PHP serveur Web client Web
  • 7. Exemple introductif <? /* la variable titre stocke le titre du script */ $titre = ' Script introductif ' ?> <html> <head> <?php # affiche le titre de la page echo (" <title> $titre </title>") ?> </head> <body> <% // affiche le contenu de la page echo ('Hello, world !'); %> </body> </html> Les syntaxes d’intégration : • <?php … ?> • <? … ?> : à activer via short_open_tag • <% … %>: à activer via asp_tags Les commentaires: • // ou # : une seule ligne. • /* … */ : plusieurs lignes. Les variables sont précédées du signe $. La variable est "déclarée" à son utilisation. La valeur qui lui est affectée détermine son type. echo affiche une chaîne de caractères : • telle quelle, si ' … ' est utilisés ; • en interprétant les variables, sinon. Toute instruction se termine par (;) sauf si elle est suivie de ?>.
  • 8. Types de base numériques et booléen  Type entier: • un entier ou integer représente un entier relatif (32 bits) • généralement entre –2 147 843 648 et 2 147 843 647  Type réel: • Un réel ou double représente un nombre à virgule. • de -1,7e308 à 1,7e308 avec 14 chiffres après la virgule.  Type booléen: • exprime la valeur TRUE ou la valeur FALSE • seuls les constantes FALSE et NULL, les nombres 0 et 0.0, les chaînes "0" et vide, le tableau vide et l’objet vide valent FALSE. • TRUE convertit en entier donne 1 et FALSE donne 0 • TRUE convertit en chaine donne "1" et false donne ""
  • 9. Types de base chaîne de caractères  Une string représente une suite de caractères.  Il y a 256 caractères, mais une string est illimitée.  Une constante string est délimitée par des guillemets ( ' ou " ).  Les guillemets doubles permettent d’interpréter d’éventuels caractères d’action ou variables présents dans la chaîne qu’ils délimitent.  l’anti-slash () permet d’échapper ou de déspécialiser les caractères (', ", , $). App1
  • 10. Types de base quelques fonctions  gettype($var) : retourne le type de $var.  settype($var, "type_désiré") : renvoie true si le type de $var est modifiée.  intval($var), doubleval($var), strval($var) : permettent de convertir.  is_string($var), is_bool($var), is_int($var), is_double($var), is_numeric($var), is_array($var) : permettent de tester un type.  isset($var) : renvoie false si $var n’est pas initialisée ou vaut NULL.  empty($var) : renvoie true si $var n’est pas initialisée ou vaut NULL, 0, 0.0, "" ou "0".  unset($var) : détruit la variable $var.
  • 11. Types de base quelques fonctions sur les strings  strlen($str) : renvoie la longueur de $str.  strcmp($str1, $str2): compare alphabétiquement $str1 et $str2.  trim($str): supprime des espaces de début et de fin de chaîne.  addslashes($str): déspécialise les caractères (', ", ).  stripslashes($str): supprime les antislashs.  substr($str,$i,$j) : retourne une sous chaîne de $str de taille $j et débutant à la position $i.  explode ($sep , $str) retourne un tableau de chaînes, chacune d'elle étant une sous-chaîne du paramètre $str extraite en utilisant le séparateur $sep.
  • 12. Notion de constante  Une constante est un identificateur qui représente une valeur restant inchangée durant l’exécution d’un script.  Cet identificateur est en majuscules (fortement recommandé) et n’est pas préfixée par $.  Syntaxe de définition d’une constante : define("NOM_CTE", val_cte);  Exemple : define ("TVA", 0.18);  Une constante ne doit pas être redéfinie.
  • 13. Tableaux présentation  Un tableau est un regroupement de données de types distincts ou non, désignées par un identificateur unique.  Chaque donnée est repérée par une clé (ou indice) de type entier positif ou de type string.  Syntaxe de création d’un tableau numéroté : $nomTab=array(valeur1,valeur2,valeur3,...)  Syntaxe de création d’un tableau associatif : $nomTab=array(cle1=>valeur1, cle2=>valeur2,...)  Syntaxe d’accès à un élément : $nomTab[cle] App2
  • 14. Tableaux quelques fonctions  reset($tab) : déplace le pointeur de $tab au début et retourne la première valeur de celui-ci.  count($tab) : retourne le nombre d’élément d’un tableau.  each($tab) : retourne le couple clé/valeur courant.  extract($tab) : reçoit un tableau associatif $tab et crée des variables dont les noms sont les clés de $tab, et leur affecte les valeurs associées.  list($var1, $var2, …): assigne une liste de variables en une seule instruction.  sort($tab) et rsort($tab) : la première permet le tri alphanumérique des éléments de $tab, et le second fait l’inverse.  array_merge($tab1, $tab2, …): concatène les tableaux passés en argument.
  • 15. Opérateurs  Opérateurs arithmétiques +, -, *, /, % (modulo), ++(incrément), --(décrément)  Opérateurs d’assignation = (affectation), += (ajouter à), *=, /=, -=, %=  Opérateurs de comparaison == (égalité), <, <=, >, >=, !=  Opérateurs logiques AND, && (et), OR, || (ou), ! (non)  Opérateur de concaténation Noté par un point (.), il « fusionne » deux strings App3
  • 16. Structures conditionnelles Elles permettent d'exécuter un traitement en fonction d’une (ou de plusieurs) condition(s).  if (condition_1) {traitement_1} [else {traitement_2}]  if (condition_1) {traitement_1} elseif (condition_2) {traitement_2} … // suite de elseif else {traitement_n}
  • 17. Structures itératives Elles permettent la répétition d’un traitement en fonction d’une condition.  while(condition) { traitement }  do { traitement } while(condition);  for (exp1 ; condition ; exp2 ) { traitement }  foreach ($tableau as $valeur){traitement}  foreach ($tableau as $cle => $valeur) {traitement} App4&5
  • 18. Fonctions syntaxe  Syntaxe de la définition d’une fonction function nomDeLaFonction( [arg_1[, arg_2, …] ]) { corpsDeLaFonction }  Un argument (ou paramètre) permet à la fonction de communiquer avec son environnement.  return dans le corps de la fonction lui permet de retourner une valeur résultat.  A défaut de return, une fonction peut utiliser un argument pour renvoyer une valeur.
  • 19. Fonctions rappel sur les paramètres  La communication entre la fonction appelée et le code appelant se fait par l'intermédiaire de variables particulières et locales à la fonction appelée que l’on nomme paramètres formels.  Lors de l’appel, tout paramètre formel est associé à une variable ou constante de même type nommée paramètre effectif.  Il existe deux types d'association ou de passage de paramètre : • passage par valeur : oCopie de la valeur du param eff dans le param formel oLa fonction accède au param eff uniquement en lecture • passage par référence : oLe param eff et le param formel « se confondent » oLa fonction accède au param eff en lecture et en App6
  • 20. Transfert de données donnée interne transmise d’une page à une autre  L’URL (Uniform Ressource Location ou adresse) d’une page permet le transfert de données d’une page à une autre  Ajouter à l’URL le caractère ? suivi des couples nom/valeur des données à transférer. Séparer les couples par le caractère &.  Exemple : <a href="page2.php?id=3&montant=10000"> Aller à la page 2 en transmettant l’identifiant du client et le montant de sa commande </a>  La page2 accède aux données transmises par le biais du tableau associatif $_GET. Exemple : echo $_GET['montant']; // affiche 10000 App7
  • 21. Transfert de données données transmises via formulaire  Principaux attributs de l’élément form : • action="adresse_script_cible" script côté serveur qui traitera les données du formulaire. • method="get|post" méthode HTTP employée pour envoyer les données  Tout champ du formulaire doit avoir un nom • Attribut name="nomChamp" • Choix multiple : name="nomChamp[]"  Le script cible accède aux données transmises comme suit : • $_GET['nomChamp'] si method="get" • $_POST['nomChamp'] si method="post" • $_REQUEST['App8&9 nomChamp'] dans tous les cas
  • 22. Transfert de données fichier uploadé via formulaire  Pour joindre un fichier à un formulaire : • attribut enctype="multipart/form-data" de l’élément form • méthode d’envoi : post • champ input de type file muni de l’attr name="nomChamp"  Le script destinataire accède aux infos (nom, type, taille, … ) sur un fichier joint par le biais du tableau super global $_FILES['nomChamp'].  Tout fichier uploadé est placé dans un répertoire temporaire  move_uploaded_file($nom_temporaire,$nom_definitif) déplace un fichier uploadé et retourne un booléen. App10
  • 23. Gestion de sessions présentation  La gestion d’une session permet d'enregistrer (côté serveur) des infos sur un internaute afin de les réutiliser durant toute sa visite.  Ces informations doivent être explicitement enregistrées dans le tableau associatif $_SESSION.  Ce qui permet ainsi de suivre un internaute de page en page, de sauvegarder un caddie, de sécuriser un site, etc.  Tout visiteur se voit assigner un "identifiant de session" permettant de retrouver des informations sur lui.  Cet identifiant est stocké dans un cookie (chez le client) ou propagé dans l'URL des pages visitées (méthode à risques).  Dans les versions récentes de PHP, réactiver la propagation par l’URL en modifiant, dans le fichier php.ini, les directives : • session.use_only_cookies = 0 • session.use_trans_sid = 1  Une session doit obligatoirement démarrer avant l’envoi de toute information au navigateur.
  • 24. Gestion de sessions exemple  Stockage d’une information dans une variable $total = 35000; // Montant d’une commande par exemple  Création ou prolongement d’une session session_start();  Enregistrement de la variable ‘total’ dans la session $_SESSION[‘total’] = $total ;  Test de l’enregistrement de la variable ‘total’ dans la session if ( isset( ($_SESSION[‘total']) )  Affichage de l’information (dans une autre page) echo $_SESSION[‘total’];  Suppression de la variable de session associée à ‘total’ unset($_SESSION[‘total']);  Destruction de toutes les variables de session $_SESSION = array(); // Tableau vide  Destruction de la session session_destroy(); App11
  • 25. PHP ↔ MySQL présentation de MySQL  Le SGBDR (Système de Gestion de Bases de données Relationnelles) open source le plus utilisé sur le Web.  Logiciel permettant de créer des bases de données, de les exploiter (en y effectuant notamment des recherches des modifications ou des tris) et de contrôler l’accès aux données.  Ses principaux concurrents sont PostgreSQL, Microsoft SQL Server, DB2 et Oracle mais ses atouts majeurs sont :  performances élevées ;  coût réduit ;  simplicité de configuration et d’apprentissage ;  portabilité ;  accessibilité du code source ;  disponibilité du support (www.mysql.com).
  • 26. PHP ↔ MySQL étapes de la communication Pour que PHP travaille avec MySQL, il faut une : 1. connexion au serveur  authentification  création d'un objet ou d’un identifiant 1. sélection d’une base de données 2. utilisation des tables  Lecture  écriture 4. déconnexion du serveur (facultative si la connexion et non persistante) NB : Dans ce cours, l’extension mysqli (i pour improved çàd amélioré) est choisie du fait d’une forte recommandation du « The PHP group ».
  • 27. PHP ↔ MySQL Connexion/Déconnexion • Connexion à l’aide du constructeur de la classe mysqli qui reçoit les 4 chaînes : $serveur, $user, $passwd et $dbname. • Retourne, en cas de succès, un objet qui représente la connexion au serveur MySQL. • Il est recommandé de vérifier la réussite de la connexion via l’attribut mysqli::$connect_error. • Pour une connexion persistante, préfixer l’adresse IP ou le nom du serveur par p: . • La déconnexion se fait soit automatiquement à la fin de l'exécution du script (si la connexion n’est pas persistante), soit explicitement en appelant la méthode : bool mysqli::close ( void )
  • 28. PHP ↔ MySQL Connexion/Déconnexion : exemple //Définition des paramètres de connexion define('SERVER','localhost'); define('USER','toto'); define('PASSWD','secret'); define('DBNAME','mabdd'); //Connexion $cnx = new mysqli(SERVER, USER, PASSWD,DBNAME) or die('Erreur de connexion : ' . $cnx->connect_error); … //Déconnexion explicite $cnx->close(); App12
  • 29. PHP ↔ MySQL exécution d’une requête de lecture ou d’écriture mixed mysqli::query (string $req)  Invoquer sur un objet mysqli  Reçoit $req, une requête écrite en SQL  Retourne un jeu de résultats ou objet mysqli_result pour une requête select.  Retourne TRUE pour les requêtes insert, update et delete.  retourne FALSE en cas d’échec de n’importe quelle requête.  Il est recommandé de vérifier la réussite de l’exécution de la requête via l’attribut mysqli::$error.
  • 30. PHP ↔ MySQL exploitation d’une select via tableau associatif mixed mysqli_result::fetch_assoc( )  Invoquer sur un objet mysqli_result  Retourne une ligne de ce résultat sous la forme d’un tableau associatif dont les clés sont les noms des attributs (de la clause SELECT) et leurs valeurs associées étant leurs valeurs ds la BDD ;  Chaque nouvel appel à fetch_assoc() retournera la prochaine ligne dans le jeu de résultats, ou NULL s'il n'y a plus de lignes. Exemple : consultation sur la table membres(id, nom, prenom) $liste= $cnx->query("select prenom, nom from membres"); while($ligne = $liste->fetch_assoc() ){ echo 'Prenom :'.$ligne['prenom'].' Nom : '.$ligne['nom'].'<br />'; }
  • 31. PHP ↔ MySQL exploitation d’une select via objet mixed mysqli_result::fetch_object( )  Invoquer sur un objet mysqli_result  Retourne une ligne de ce résultat sous la forme d’un objet dont les attributs sont les noms des attributs (de la clause SELECT) et leurs valeurs associées étant leurs valeurs dans la BDD ;  Chaque nouvel appel à fetch_object() retournera la prochaine ligne dans le jeu de résultats, ou NULL s'il n'y a plus de lignes. Exemple : consultation sur la table membres(id, nom, prenom) $liste= $cnx-> query("select prenom, nom from membres"); while($ligne = $liste->fetch_object() ){ echo 'Prenom :'.$ligne->prenom.' Nom: '.$ligne->nom.'<br />'; } App13
  • 32. PHP ↔ MySQL autres méthodes  mysqli_result::free_result() Libère la mémoire associée à l'objet mysqli_result.  mysqli::$insert_id retourne le dernier identifiant généré par un champs de type AUTO_INCREMENT.  mysqli_result::$num_rows retourne le nombre de lignes d'un résultat d’une SELECT.  mysqli_stmt::$affected_rows retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE.  string mysqli::real_escape_string($chaine_a_echapper) ajoute un slash à tout caractère spécial de la chaîne à échapper. Cette fonction doit toujours (avec quelques exceptions) être utilisée pour protéger les données à insérer dans la BDD. App14