Upload
mohsentn
View
10
Download
0
Embed Size (px)
Citation preview
PHPLPRO ISVD Olivier FlauzacUniversit de Reims Champagne-Ardenne
[email protected] http://cosy.univ-reims.fr/auzac
Olivier Flauzac (URCA)
LPRO ISVD
PHP
1 / 64
Plan1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
Olivier Flauzac (URCA)
LPRO ISVD
PHP
2 / 64
Plan1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
Olivier Flauzac (URCA)
LPRO ISVD
PHP
3 / 64
Principe du client serveur
Principe gnralExcution bas sur un principe de "question / rponse"
ActeursServeurSystme dtenant des ressources particulire mises disposition
ClientSystme accdant des ressources
Olivier Flauzac (URCA)
LPRO ISVD
PHP
4 / 64
Excutions client/serveurPrincipe1 2 3 4 5 6
le client met une requte au serveur le serveur reoit la requte le serveur traite la requte le serveur envoie la rponse au client le client reoit la rponse le client exploite la rponse1 6 2
3
5
4
Olivier Flauzac (URCA)
LPRO ISVD
PHP
5 / 64
Excution sur le WEB
Possibilits dexcutionsexcution sur le serveur excution sur le client
Indpendance des excutionspas daccs entre les mmoirespas de lecture des tats entre client et serveur pas dinterfrences des excutions
Olivier Flauzac (URCA)
LPRO ISVD
PHP
6 / 64
Le HTML
Hypertext Markup Languagelangage de description et de structuration de document exploitation de balises interprtation uniquement sur le client gestion de la mise en forme pas de calcul
Olivier Flauzac (URCA)
LPRO ISVD
PHP
7 / 64
Quelques balises 1/3
Structure de la page .. ... ... dnition dun document en-tte du document corps dun document
Informations relatives la page author keywords auteur de la page mot-cls de la page
Olivier Flauzac (URCA)
LPRO ISVD
PHP
8 / 64
Quelques balises 2/3Texte ...
... ... paragraphe liste non ordonne liste ordonne lment de liste
Insertions ... lien hypertexte image
Sauts
passage la ligne afchage dune ligneLPRO ISVD PHP 9 / 64
Olivier Flauzac (URCA)
Quelques balises 3/3Tableaux ... ... ... dnition ligne dun tableau cellule dune ligne
Formulaires .. ... dnition entre en ligne liste choix de liste
Sauts
passage la ligne afchage dune ligneLPRO ISVD PHP 10 / 64
Olivier Flauzac (URCA)
Exemple
< t i t l e > Ma Page Ma Page WEB Ceci e s t ma page WEB
< l i > 1 < l i > 2
Olivier Flauzac (URCA)
LPRO ISVD
PHP
11 / 64
Serveurs WEB
ServeursIIS Apache
Possibilits dexcutionexcutions externesappel un programme extrieur au serveur
excutions gres par le serveurncessite lutilisation dun moteur associ au serveur
Olivier Flauzac (URCA)
LPRO ISVD
PHP
12 / 64
Excutions
Rsultats des excutionstraitement des informations collectes (formulaire) code HTML/javascript interprtable par le client excution de calcul accs des informations sur le serveur (chiers) accs des informations extrieures (bases de donnes)
Olivier Flauzac (URCA)
LPRO ISVD
PHP
13 / 64
Plan1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
Olivier Flauzac (URCA)
LPRO ISVD
PHP
14 / 64
Un peu dhistoire
Versions successive1994 cration par par Rasmus Lerdorf (bibliothque Perl) 1995 publication et diffusion de PHP/FI (Personal Home Page Tools/Form Interpreter) 1997 redveloppement du noyau par Andi Gutmans et Zeev Suraski, naissance du Zend Engine 1998 naissance de PHP 3 (Hypertext Preprocessor) 2004 sortie de PHP 5.0
Olivier Flauzac (URCA)
LPRO ISVD
PHP
15 / 64
Mise en uvre
Plateformeexiste sur toutes les plateformes ncessite :un serveur WEB (Apache, IIS ...) un moteur PHP
Solutions logiciellesLinux : Apache + PHP disponible en standard WindowsIIS + PHP Apache + PHP EasyPHP (http://www.easyphp.org/)
Olivier Flauzac (URCA)
LPRO ISVD
PHP
16 / 64
Excution de script
Fonctionnementcode HTML pur non modi code PHP valu et interprt
Evaluation dune requte1 2 3
rception de la requte par le serveur recherche du chier valuation et interprtation du chierCration dun chier rsultat virtuel ! pas de sauvegarde sur le disque du chier rsultat
4
envoie du chier virtuel au client
Olivier Flauzac (URCA)
LPRO ISVD
PHP
17 / 64
Test et excution de script
Accs aux scriptsncessite le serveur WEB lanc ncessite une interprtation pas daccs par fichier ouvrir du navigateur accs par lurl :http://server/chemin/page.php en test local http://localhost/chemin/page.php
Olivier Flauzac (URCA)
LPRO ISVD
PHP
18 / 64
Fonctionnement interne
Rsultat des valuationsHTML HTML Javascript Javascript PHP HTML PHP Javascript PHP contenu autre de text/htmlimage PDF ...
PHP rien dans le chier virtuel, un calcul est effectu
Olivier Flauzac (URCA)
LPRO ISVD
PHP
19 / 64
Plan1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
Olivier Flauzac (URCA)
LPRO ISVD
PHP
20 / 64
Scripts
inclusion de script entre les balises (ou ) instructions termines par ; pas de limites aux zones de scriptnombre taille
Olivier Flauzac (URCA)
LPRO ISVD
PHP
21 / 64
Exemple de script
Script PHP < t i t l e > PHP 1 paragraphe 3
Rsultat < t i t l e > PHP < / t i t l e > < / head> 1 paragraphe < / p> 2 paragraphe < / p> 3 paragraphe < / p> < / body> < / html>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
22 / 64
Gnration
Afchageecho printv o i d echo ( s t r i n g arg1 [ , s t r i n g i n t p r i n t ( s t r i n g arg ) echo " Bonjour " ; print " Hello " ; ...] )
Olivier Flauzac (URCA)
LPRO ISVD
PHP
23 / 64
Commentaires
Types de commentairessur une ligne // ... sur plusieur lignes /* ... *// / un s i m p l e commentaire s u r une l i g n e / un commentaire s u r plusieurs lignes /
Olivier Flauzac (URCA)
LPRO ISVD
PHP
24 / 64
Exemple 1, script PHP < t i t l e > PHP paragraphe f a i t en HTML
Exemple 1, rsultat < t i t l e > PHP < / t i t l e >< / head> paragraphe f a i t en HTML < / p> paragraphe f a i t en PHP < / p> < / body> < / html>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
25 / 64
Exemple 2, Script PHP < t i t l e > PHP paragraphe f a i t en HTML r e t o u r en HTML
Olivier Flauzac (URCA)
LPRO ISVD
PHP
26 / 64
Exemple 2, rsultat < t i t l e > PHP < / t i t l e > < / head> paragraphe f a i t en HTML < / p> paragraphe f a i t en PHP < / p> r e t o u r en HTML < / p> < s c r i p t language= " j a v a s c r i p t " > a l e r t ( " a l e r t f a i t en PHP" ) ; < / script> < / body> < / html>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
27 / 64
Exemple 3, script PHP PHP < t a b l e border=" 1 " >
Olivier Flauzac (URCA)
LPRO ISVD
PHP
28 / 64
Exemple 3, rsultat PHP < / t i t l e > < / head> < t a b l e border= " 1 " > < t r > c e l l u l e 1 < / td>< / t r > < / table> < / body> < / html>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
29 / 64
InclusionPrincipeinclusion en un point du code detexte balis ou non rsultat dvluation
Inclusions possibleschier HTML et Javascript chier PHP
Prototypev o i d include ( s t r i n g r e s s o u r c e )
Olivier Flauzac (URCA)
LPRO ISVD
PHP
30 / 64
Inclusion, exemple 1
chier html inclus (fic.html) Bonjour < / p>
< l i > elem 1 < / l i > < l i > elem 2 < / l i > < / ul>
chier php ralisant linclusion < / head> < / body> < / html>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
31 / 64
Inclusion, exemple 1
Rsultat < / head> Bonjour < / p>
< l i > elem 1 < / l i > < l i > elem 2 < / l i > < / ul> < / body> < / html>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
32 / 64
Inclusion, exemple 2chier php inclus (fic.php)
chier php ralisant linclusion < / head> < / body> < / html>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
33 / 64
Inclusion, exemple 2
Rsultat < / head> H e l l o < / p> < / body> < / html>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
34 / 64
Plan1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
Olivier Flauzac (URCA)
LPRO ISVD
PHP
35 / 64
Les variables
Variables en PHPcommence par un $ non types non dclares$a $b $a $b = = = = 15; " hello " ; " salut " ; True ;
Olivier Flauzac (URCA)
LPRO ISVD
PHP
36 / 64
Les variables boolennesReprsentation des valeurs logiquesTrue False$a = True ; $b = False ;
Oprationsgalit, diffrence == , ===, != oprations logiques && , || ngation !
Olivier Flauzac (URCA)
LPRO ISVD
PHP
37 / 64
BoolensSource PHP$a = $b = echo echo True ; $a && False ; " V a l e u r de a : $a " ; " V a l e u r de b : $b " ;
Code HTML V a l e u r de a : 1 < / p> V a l e u r de b : 0 < / p>
Conclusion !True et False assimils 1 et 0 !Olivier Flauzac (URCA) LPRO ISVD PHP 38 / 64
Les variables numriques
Reprsentation des nombresentiers virgule$a = 1 5 ; $b = 1 9 . 5 ;
Olivier Flauzac (URCA)
LPRO ISVD
PHP
39 / 64
Oprations numriquesOprationsaffectation : = oprations mathmatiques : +,-,/,*,%
Code PHP$a = echo $b = echo $c = echo 15; " a = $a " ; 19.5; " b = $b " ; $a + $b ; " c = $c " ;
Code gnr a = 15 < / p> b = 19.5 < / p> c = 34.5 < / p>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
40 / 64
ComparaisonComparaisongalit, diffrence : == , != ordre : >,=, b = 19.5 < / p> c = 0 < / p>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
41 / 64
Chanes de caractresConcatnationutilisation du caractre .
Code PHP$c1 = " Bonjour " ; $c2 = " t o u t l e monde " ; $c3 = $c1 . $c2 ; $c4 = " $c1 $c2 " ; echo " c3 : $c3 " ; echo " c4 : $c4 " ;
Code HTML c3 : Bonjour t o u t l e monde < / p> c4 : Bonjour t o u t l e monde < / p>Olivier Flauzac (URCA) LPRO ISVD PHP 42 / 64
Comparaison de chanesutilisation de linstruction strcmpi n t strcmp ( s t r i n g s t r 1 , s t r i n g s t r 2 )
Code PHP$a = strcmp ( " s a l u t " , " Bonjour " ) ; echo " comparaison : $a " ;
Code HTML comparaison : 0 < / p>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
43 / 64
Tableaux en PHP
Tableauxpas de dclaration obligatoire htrognes dynamiques
Olivier Flauzac (URCA)
LPRO ISVD
PHP
44 / 64
Cration de tableaux
Cration impliciteimplicite :$tab [ 0 ] = 1 5 ; $tab [ 1 ] = " Bonjour " ; $tab [ 7 ] = 564;
explicite :$tab1 = array ( ) ; $tab2 = array ( 1 5 , " Bonjour " , 5 6 4 ) ;
Olivier Flauzac (URCA)
LPRO ISVD
PHP
45 / 64
Fonctions associes aux tableaux
Quelques fonctionstaille du tableau : counti n t count ( mixed v a r [ , i n t mode ] ) $ t a i l l e = count ( $tab ) ;
ajout dlment$tab [ count ( $tab ) ] = 1 5 ; $tab [ ] = 1 6 ;
Olivier Flauzac (URCA)
LPRO ISVD
PHP
46 / 64
Plan1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
Olivier Flauzac (URCA)
LPRO ISVD
PHP
47 / 64
Diffrentes structures
Structures itrativeswhile , do...while for
Structures alternativesif , if ... else switch
Olivier Flauzac (URCA)
LPRO ISVD
PHP
48 / 64
whilePrototypewhile ( c o n d i t i o n ) { ... }
Code PHP$ i =0; echo " < u l > " ; while ( $ i < 5 ) { echo " < l i > i : $ i " ; $ i ++; } echo " " ;Olivier Flauzac (URCA) LPRO ISVD
Code HTML
i < / ul> : : : : : 0 1 2 3 4
PHP
49 / 64
forPrototypef o r ( i n i t , cond , i n c r ) { ... }
Script PHPecho " < u l > " ; f o r ( $ i =0; $ i : : : : : 0 1 2 3 4
Olivier Flauzac (URCA)
LPRO ISVD
PHP
50 / 64
ifPrototypei f ( cond ) { ... }
Code PHP$ i =0; i f ( $i 2 < / p> h e l l o < / p> 45 < / p>
Olivier Flauzac (URCA)
LPRO ISVD
PHP
53 / 64
Plan1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
Olivier Flauzac (URCA)
LPRO ISVD
PHP
54 / 64
Principe
Les acteursla clientzone de formulaire HTML collecte dinformations envoie des informations au serveur
le serveurtraitement des informations reues
Transfert des informationsPOST GET
Olivier Flauzac (URCA)
LPRO ISVD
PHP
55 / 64
POST et GETMthode POSTmthode de transfert dinformations du client au serveur donnes incluses dans la requte HTTP
Mthode GETmthode de transfert dinformations du client au serveur donnes ajoutes la requte HTTP constructionadresse du script de traitement caractre ? triplet nom du champ , = , valeur sparation des triplets avec le caractre &h t t p : / / www. monsite . f r / form1 . php? t 1 = o l i v i e r &t 2 = f l a u z a c
Olivier Flauzac (URCA)
LPRO ISVD
PHP
56 / 64
Formulaires HTMLDnitionbalise form commutateursname action method
Champsutilisation des commutateurs name des champs inputtext, password submit, button, reset radio, checkbox hiddenOlivier Flauzac (URCA) LPRO ISVD
textarea selectsimple multiple
PHP
57 / 64
Accs aux donnes
$register_globals$register_globals = Oncration dune variable pour chaque champ utilisation des tableaux globaux $_POST, $_GET, $_REQUEST pas de diffrenciation sur la mthode de transmission
$register_globals = Off utilisation des tableaux globaux $_POST, $_GET, $_REQUEST diffrenciation possible de la mthode de transmission
Olivier Flauzac (URCA)
LPRO ISVD
PHP
58 / 64
Entre de texte
Balisestextarea< t e x t a r e a name=" t " > votre texte i c i
inputtext< i n p u t t y p e =" t e x t " name=" t " / >
password< i n p u t t y p e =" password " name=" p " / >
Olivier Flauzac (URCA)
LPRO ISVD
PHP
59 / 64
Entre de texte : la page HTMLLa mthode POST < i n p u t t y p e =" t e x t " name=" t 1 " / > < t e x t a r e a name=" t 2 " > v o t r e t e x t e i c i < i n p u t t y p e =" submit " v a l u e =" c l i c k " / >
La requteh t t p : / / www. monsite . f r / form1 . php
Olivier Flauzac (URCA)
LPRO ISVD
PHP
60 / 64
Scripts de traitement
Accs direct aux donnes transmises
Enregistrement des donnes transmises
Olivier Flauzac (URCA)
LPRO ISVD
PHP
61 / 64
Entre de texte : la page HTMLLa mthode GET < i n p u t t y p e =" t e x t " name=" t 1 " / > < t e x t a r e a name=" t 2 " > v o t r e t e x t e i c i < i n p u t t y p e =" submit " v a l u e =" c l i c k " / >
La requteh t t p : / / www. monsite . f r / form1 . php? t 1 =aaa&t 2 =bbbbb
Olivier Flauzac (URCA)
LPRO ISVD
PHP
62 / 64
Scripts de traitement
Accs direct aux donnes transmises
Enregistrement des donnes transmises
Olivier Flauzac (URCA)
LPRO ISVD
PHP
63 / 64
Scripts de traitement
Accs direct aux donnes transmises
Enregistrement des donnes transmises
Olivier Flauzac (URCA)
LPRO ISVD
PHP
64 / 64