Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

37
Département Technologie de l’Information et de la Communication Module Internet (4) 1 Internet

Transcript of Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Page 1: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)1

Internet

Page 2: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)2

Sommaire

• PHP.

Page 3: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)3

PHP

Page 4: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)4

Historique (1/3)

• 1994: – créé par Rasmus Lerdorf pour contrôler le nombre des

internautes visitant son site.

• Début 1995:– mise en service de la première version de PHP appelée

Personal Home Page :• moteur d'analyse syntaxique,• quelques macros spéciales,• utilitaires communément utilisés dans les pages persos.

• Milieu 1995:– PHP/FI (Form Interpreter) :

• formulaires,• support pour mySQL,

Page 5: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)5

Historique (2/3)

• Fin 1997: – réécriture complète de l'analyseur par Z. Suraski et A. Gutmans

• combinaison avec Apache et MySQL: – grand succès (solution entièrement libre et gratuite)

• support des serveurs IIS et PWS de Microsoft, …

• support des bases de données Oracle, Ingres, Interbase, PostGreSQL,

PHP 3 (PHP Hypertext PreProcessor)

Page 6: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)6

Historique (3/3)

• Fin 1999:– nouvelle version:

PHP 4:– support du type booléen,– support pour Java et XML,– support pour FTP,– …– version la plus répandue dans le monde aujourd'hui.

• Octobre 2001: – plus de 1 000 000 développeurs en PHP.

• 2004: – sortie de la dernière version PHP 5.

Page 7: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)7

Caractéristiques (1/2)

• Les +:– un logiciel libre:

• gratuité.– un langage de script:

• simplicité.– nombreuses fonctions intégrées:

• facilité.– un pré processeur hypertexte exécuté côté serveur:

• non lisibilité du code côté PHP client.– indépendant du système d'exploitation:

• portabilité.– nombreux supports (serveurs Web et BDD):

• ouverture.

Page 8: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)8

Caractéristiques (2/2)

• Les –:

– gestion automatique des types de données (masquage): • incompréhensions et difficultés de débogage.

– débogage algorithmique peu aisé.

Page 9: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)9

PHP face à la concurrence

• Choix d'un langage de script:

CGI

PHP

ASP

Perl

Rapidité

Accessibilité

Facilitéde codage

Page 10: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)10

Qu'est-ce que PHP ? (1/3)

• Un langage de script:– langage de programmation spécialisé dans la génération de

code (HTML principalement) :• bibliothèques de fonctions de manipulation d'images,• outils de traitement de fichiers,• outils d'accès aux bases de données,• création de fichiers PDF,• …

– lignes de programmation insérées dans le source d'un fichier texte et interprétées par la machine qui exécute le script,

– extension des fichiers: • php, php3 ou php4…

Page 11: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)11

Qu'est-ce que PHP ? (2/3)

• Organisation:– fichiers = programmes,– intégration du PHP au cœur des pages HTML:

• transformation des pages HTML sur le serveur,

• ajout d'un comportement dynamique.

– ensemble d'instructions dont les zones non encadrées par une balise particulière sont intégralement recopiées dans le fichier de sortie

• un fichier .php peut très bien ne contenir que du code HTML (aucune modification du code) ou PHP (code entièrement généré).

Page 12: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)12

Qu'est-ce que PHP ? (3/3)

• Le langage de programmation:– écrit en C.

• Fonctionnement:– le client interroge le serveur Web (demande d'une page),– le serveur demande à PHP d'interpréter le code de la page,– PHP renvoie le code HTML généré au serveur qui l'insère dans la

page,– le serveur renvoie la page HTML au client.

Page 13: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)13

Le code

• Syntaxe PHP:– premier code PHP:

<html><head>

<title>Ma page HTML avec du code PHP</title></head><body>

<?echo "Ceci est ma première page PHP !";

?></body></html>

– utilisation des balises <? et ?>.

Page 14: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)14

Le code

• Syntaxe PHP:– les balises délimitant les scripts PHP:

– délimiteur de fin d'instruction: • le caractère ";".

– l'instruction echo affiche le texte présent entre les guillemets.

Ouverture Fermeture

<? ?>

<% %>

<?php ?>

<script language="php"> </script>

Page 15: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)15

Les variables (1/8)

• Règles sur les noms:– 1er caractère:

• le symbole "$".

– 2ème caractère: • alphabétique (minuscule ou majuscule) ou "_" (souligné).

– caractères suivants: • alphanumériques ou "_"

– pertinents et explicites (éviter $a ou $tmp),– pas de limite de longueur.

Page 16: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)16

Les variables (2/8)

• Exemple d'utilisation de variables:<html><head>

<title>Ma page deuxième page PHP</title></head><body>

<?$a = 1;$b = 2;echo 'La somme de '.$a.' + '.$b.' vaut '.($a+$b);

?></body></html>

Page 17: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)17

Les variables (3/8)

• Le ".": – opérateur de concaténation.

• Différence entre les simples quottes ' et les doubles quottes ":– PHP n'analyse pas ce qui est écrit entre simples quottes:

$nom = Dupont;

echo 'bonjour M. $nom'; affichera : bonjour M. $nom

– PHP analyse le contenu entre des doubles quottes:$nom = Dupont;

echo "bonjour M. $nom"; affichera : bonjour M. Dupont

Page 18: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)18

Les variables (4/8)

• Les opérateurs arithmétiques:

• Les opérateurs de comparaison:==, !=, <, >, <=, >=

Opérateur arithmétique

+

-

*

/

%

Page 19: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)19

Les variables (5/8)

• Déclaration et initialisation:– pas de déclaration nécessaire :

• instanciation à la première utilisation,• le type change en fonction du contenu stocké,• types scalaires:

– chaîne, entier, booléen et à virgule flottante.

• types composés: – tableaux et objets.

– exemples d'affectations de valeurs:$Nom = "esigelec";$Compteur = 0;$Solde = 975.50;

Page 20: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)20

Les variables (6/8)

• Suppression de variables:– fonction unset():

• exemple: unset($Nom); //supprime la variable $Nom

Page 21: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)21

Les variables (7/8)

• Les constantes:– exemple:

define("CouleurCiel", "Bleu");

CouleurCiel vaut Bleu.

– remarque:• pas de "$" devant le nom de la constante.

Page 22: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)22

Les variables (8/8)

• Tableaux 1 dimension:$tableau[0] = 1; // création d’un tableau, la première valeur est 1

• Tableaux 2 dimensions:– il suffit de mettre un second indice au moment de l'affectation.

$tableau[0][0] = 1; // création d’un tableau, la première valeur est 1

• Navigation dans les éléments du tableau:next() , prev() et each().

• Nombre d'éléments d'un tableau:count().

• Tri des tableaux:asort(), ksort(), sort(), …

Page 23: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)23

Variables d'environnement (1/2)

• Dans une application, un élément fondamental est l’utilisation des variables d'environnement du serveur:– avec PHP toutes les variables d'environnement du serveur sont

automatiquement reprises dans les scripts PHP en tant que variables globales:

• il suffit de les utiliser directement dans le code.

Page 24: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)24

Variables d'environnement (2/2)

• Variables d'environnement:

PHP 4 / 5 Contenu du tableau

$_GET variables passées par méthode GET

$_POST variables passées par méthode POST

$_COOKIE variables passées via cookies

$_FILES informations fichiers téléchargés par méthode POST

$_SESSION variables de session

Page 25: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)25

Les variables issues de formulaires (1/2)

• Les variables issues de formulaires:– les variables sont issues de formulaires HTML, elles

correspondent aux différents champs positionnés entre les balises <form> et </form> de ce formulaire,

– la page qui reçoit ces variables est celle qui est désignée par l'attribut action de la balise <form>,

– exemple:<html>

<form action="test.php" method="post" >

Nom : <input type="text" name="nom">

<input type="submit" value="Envoyer">

</form>

</html>

Page 26: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)26

Les variables issues de formulaires (2/2)

• Tableaux: $_GET

$_POST

– exemple:

$nom = $_POST[’toto’]

echo $nom

Page 27: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)27

Tests

• Si une condition est vérifiée alors les instructions sont exécutés sinon (alternative facultative) d’autres instructions sont exécutées:– syntaxe:

if ( condition1 ){ Actions 1}elseif ( condition2 ){ Actions 2}else{ Actions 3}

exemple:if ($a==$b) { echo "A est égal à B";}elseif ($a > $b){ echo "A est supérieur à B";}else{ echo "A est inférieur à B";}

Page 28: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)28

Choix multiple

• Plusieurs conditions successives sur la valeur d'une seule variable:– utilisation de l'instruction switch, – l'instruction break est primordiale à la fin de chaque bloc case,

sinon les conditions suivantes sont vérifiées et exécutées,– exemple:

switch ($a){ case $b: echo "A est égal à B"; break; case >$b: echo "A est supérieur à B"; break; default: echo "A est inférieur à B";}

Page 29: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)29

Boucles (1/3)

• La boucle for (nombre d'itérations connu):for (expr1; expr2; expr3){ instructions // éviter de modifier l'indice s'il existe}

• La boucle while (nombre d'itérations inconnu):while ( condition ){ instructions;}

Page 30: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)30

Boucles (2/3)

• La boucle do…while: do

{

instructions;

} while (condition);

Page 31: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)31

Boucles (3/3)

• Exemples:

$i=1;while ($i <= 10){ echo "- $i -"; $i++;}

for ($i = 1; $i <= 10; $i++){ echo "- $i -";}

$i=1;do{ echo "- $i -"; $i++;} while ($i <= 10);

Page 32: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)32

Fonction each()

• Fonctions étroitement liées aux boucles:– permet de parcourir tous les éléments d'un tableau sans se

soucier des bornes,– lorsque la fin du tableau est atteinte, each() retourne false,– retourne la combinaison clé-valeur du tableau passé en

paramètre,– exemple:

while ($var = each($tableau)){ echo "$var[0] : $var[1]";}

l'indice est affecté au premier élément de $var et la valeur au deuxième élément.

Page 33: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)33

Les fonctions

• La syntaxe de déclaration s’appuie sur le mot clé function,– suivi du nom de la fonction, puis les paramètres éventuels,– exemple:

function bonjour(){ echo "Bonjour" ;}

function bonjourbis(){ return "Bonjour" ;}

Affiche simplement le texte. Pas de valeur de retour, c'est une procédure.Appel : bonjour();

Renvoie le texte sans l'afficher. Utilisation de return pour la valeur de retour.Appel : echo bonjourbis();

Page 34: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)34

Fichiers

• Même gestion qu'en C. Utilisation des fonctions: fopen()

feof()

fgets()

fputs()

fclose()

Page 35: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)35

Quelques fonctions …

• Les dates:

date() – exemple:

echo date("d-m-Y"); // affiche : "12-12-2000« 

• Chaîne de caractère:strlen (chaîne) 

• retourne la taille de la chaîne.

strtolower | strtoupper (chaîne)• retourne la chaîne passée en paramètres en minuscules (resp.

majuscules).

Page 36: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)36

Envoyer un mél

• Il existe une méthode PHP permettant d’envoyer un mail directement (sans gestionnaire de courrier):– la fonction mail nécessite au moins trois paramètres :

• le destinataire,• l’objet du message,• le corps du message.

– exemple :<? mail("[email protected]", "Objet du mail","Corps du mail");?>

ce code enverra un mail à [email protected] avec comme sujet Objet du mail, et comme corps Corps du mail.

Page 37: Module Internet (4) 1 Département Technologie de l’Information et de la Communication Internet.

Département Technologie de l’Information et de la Communication Module Internet (4)37

Références

www.php.net