Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
olivier.auzac@univ-reims.fr http://cosy.univ-reims.fr/auzac
LPRO ISVD
PHP
1 / 64
Plan
1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
LPRO ISVD
PHP
2 / 64
Plan
1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
LPRO ISVD
PHP
3 / 64
Principe gnral
Excution bas sur un principe de "question / rponse"
Acteurs
Serveur
Systme dtenant des ressources particulire mises disposition
Client
Systme accdant des ressources
LPRO ISVD
PHP
4 / 64
Excutions client/serveur
Principe
1 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 rponse
1 6 2
LPRO ISVD
PHP
5 / 64
Possibilits dexcutions
excution sur le serveur excution sur le client
LPRO ISVD
PHP
6 / 64
Le HTML
LPRO ISVD
PHP
7 / 64
Structure de la page
<html> .. </html> <head> ... </head> <body> ... </body> dnition dun document en-tte du document corps dun document
LPRO ISVD
PHP
8 / 64
Insertions
<a href="..."> ... </a> <img src="..."/> lien hypertexte image
Sauts
<br/> <hr/> passage la ligne afchage dune ligne
LPRO ISVD PHP 9 / 64
Formulaires
<form ... > .. </form> <input type=".." name=".."/> <select name=".."> </select> <option> ... </option> dnition entre en ligne liste choix de liste
Sauts
<br/> <hr/> passage la ligne afchage dune ligne
LPRO ISVD PHP 10 / 64
Exemple
<html > <head> < t i t l e > Ma Page </ t i t l e > </ head> <body> <h1> Ma Page WEB </ h1> <p> Ceci e s t ma page WEB </p> <ul > < l i > 1 </ l i > < l i > 2 </ l i > </ u l > </ body> </ html >
LPRO ISVD
PHP
11 / 64
Serveurs WEB
Serveurs
IIS Apache
Possibilits dexcution
excutions externes
appel un programme extrieur au serveur
LPRO ISVD
PHP
12 / 64
Excutions
LPRO ISVD
PHP
13 / 64
Plan
1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
LPRO ISVD
PHP
14 / 64
Un peu dhistoire
Versions successive
1994 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
LPRO ISVD
PHP
15 / 64
Mise en uvre
Plateforme
existe sur toutes les plateformes ncessite :
un serveur WEB (Apache, IIS ...) un moteur PHP
Solutions logicielles
Linux : Apache + PHP disponible en standard Windows
IIS + PHP Apache + PHP EasyPHP (http://www.easyphp.org/)
LPRO ISVD
PHP
16 / 64
Excution de script
Fonctionnement
code HTML pur non modi code PHP valu et interprt
LPRO ISVD
PHP
17 / 64
LPRO ISVD
PHP
18 / 64
Fonctionnement interne
LPRO ISVD
PHP
19 / 64
Plan
1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
LPRO ISVD
PHP
20 / 64
Scripts
inclusion de script entre les balises <? et ?> (ou <?php et ?>) instructions termines par ; pas de limites aux zones de script
nombre taille
LPRO ISVD
PHP
21 / 64
Exemple de script
Script PHP
<html > <head> < t i t l e > PHP </ t i t l e > </ head> <body> <p> 1 paragraphe </p> <? echo " <p> 2 paragraphe </p> " ; ?> <p> 3 <? echo " paragraphe </p> " ; ?> </ body> </ html >
Rsultat
<html> <head> < t i t l e > PHP < / t i t l e > < / head> <body> <p> 1 paragraphe < / p> <p> 2 paragraphe < / p> <p> 3 paragraphe < / p> < / body> < / html>
LPRO ISVD
PHP
22 / 64
Gnration
Afchage
echo print
v 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 " ; ...] )
LPRO ISVD
PHP
23 / 64
Commentaires
Types de commentaires
sur 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 /
LPRO ISVD
PHP
24 / 64
Exemple 1, rsultat
<html> <head>< t i t l e > PHP < / t i t l e >< / head> <body> <p> paragraphe f a i t en HTML < / p> <p> paragraphe f a i t en PHP < / p> < / body> < / html>
LPRO ISVD
PHP
25 / 64
LPRO ISVD
PHP
26 / 64
Exemple 2, rsultat
<html> <head> < t i t l e > PHP < / t i t l e > < / head> <body> <p> paragraphe f a i t en HTML < / p> <p> paragraphe f a i t en PHP < / p> <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>
LPRO ISVD
PHP
27 / 64
LPRO ISVD
PHP
28 / 64
Exemple 3, rsultat
<html><head> <title> PHP < / t i t l e > < / head> <body> < t a b l e border= " 1 " > < t r ><td> c e l l u l e 1 < / td>< / t r > < / table> < / body> < / html>
LPRO ISVD
PHP
29 / 64
Inclusion
Principe
inclusion en un point du code de
texte balis ou non rsultat dvluation
Inclusions possibles
chier HTML et Javascript chier PHP
Prototype
v o i d include ( s t r i n g r e s s o u r c e )
LPRO ISVD
PHP
30 / 64
Inclusion, exemple 1
LPRO ISVD
PHP
31 / 64
Inclusion, exemple 1
Rsultat
<html> <head>< / head> <body> <p> Bonjour < / p> <ul> < l i > elem 1 < / l i > < l i > elem 2 < / l i > < / ul> < / body> < / html>
LPRO ISVD
PHP
32 / 64
Inclusion, exemple 2
chier php inclus (fic.php)
<? echo " <p> H e l l o </ p> " ; echo " < h r / > " ; ?>
LPRO ISVD
PHP
33 / 64
Inclusion, exemple 2
Rsultat
<html> <head>< / head> <body> <p> H e l l o < / p> <hr / > < / body> < / html>
LPRO ISVD
PHP
34 / 64
Plan
1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
LPRO ISVD
PHP
35 / 64
Les variables
Variables en PHP
commence par un $ non types non dclares
$a $b $a $b = = = = 15; " hello " ; " salut " ; True ;
LPRO ISVD
PHP
36 / 64
Oprations
galit, diffrence == , ===, != oprations logiques && , || ngation !
LPRO ISVD
PHP
37 / 64
Boolens
Source PHP
$a = $b = echo echo True ; $a && False ; " <p> V a l e u r de a : $a </ p> " ; " <p> V a l e u r de b : $b </ p> " ;
Code HTML
<p> V a l e u r de a : 1 < / p> <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
LPRO ISVD
PHP
39 / 64
Oprations numriques
Oprations
affectation : = oprations mathmatiques : +,-,/,*,%
Code PHP
$a = echo $b = echo $c = echo 15; " <p> a = $a </ p> " ; 19.5; " <p> b = $b </p> " ; $a + $b ; " <p> c = $c </ p> " ;
Code gnr
<p> a = 15 < / p> <p> b = 19.5 < / p> <p> c = 34.5 < / p>
LPRO ISVD
PHP
40 / 64
Comparaison
Comparaison
galit, diffrence : == , != ordre : >,<,>=,<=,
Code PHP
$a = echo $b = echo $c = echo 15; " <p> a 19.5; " <p> b ( $a == " <p> c = $a </ p> " ; = $b </ p> " ; $b ) ; = $c </ p> " ;
Code HTML
<p> a = 15 < / p> <p> b = 19.5 < / p> <p> c = 0 < / p>
LPRO ISVD
PHP
41 / 64
Chanes de caractres
Concatnation
utilisation du caractre .
Code PHP
$c1 = " Bonjour " ; $c2 = " t o u t l e monde " ; $c3 = $c1 . $c2 ; $c4 = " $c1 $c2 " ; echo " <p> c3 : $c3 </p> " ; echo " <p> c4 : $c4 </p> " ;
Code HTML
<p> c3 : Bonjour t o u t l e monde < / p> <p> c4 : Bonjour t o u t l e monde < / p>
Olivier Flauzac (URCA) LPRO ISVD PHP 42 / 64
Comparaison de chanes
utilisation de linstruction strcmp
i 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 " <p> comparaison : $a </p> " ;
Code HTML
<p> comparaison : 0 < / p>
LPRO ISVD
PHP
43 / 64
Tableaux en PHP
Tableaux
pas de dclaration obligatoire htrognes dynamiques
LPRO ISVD
PHP
44 / 64
Cration de tableaux
Cration implicite
implicite :
$tab [ 0 ] = 1 5 ; $tab [ 1 ] = " Bonjour " ; $tab [ 7 ] = 564;
explicite :
$tab1 = array ( ) ; $tab2 = array ( 1 5 , " Bonjour " , 5 6 4 ) ;
LPRO ISVD
PHP
45 / 64
Quelques fonctions
taille du tableau : count
i 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 ;
LPRO ISVD
PHP
46 / 64
Plan
1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
LPRO ISVD
PHP
47 / 64
Diffrentes structures
Structures itratives
while , do...while for
Structures alternatives
if , if ... else switch
LPRO ISVD
PHP
48 / 64
while
Prototype
while ( c o n d i t i o n ) { ... }
Code PHP
$ i =0; echo " < u l > " ; while ( $ i < 5 ) { echo " < l i > i : $ i </ l i > " ; $ i ++; } echo " </ u l > " ;
Olivier Flauzac (URCA) LPRO ISVD
Code HTML
<ul> <li> i <li> i <li> i <li> i <li> i < / ul> : : : : : 0 1 2 3 4 </ </ </ </ </ li> li> li> li> li>
PHP
49 / 64
for
Prototype
f o r ( i n i t , cond , i n c r ) { ... }
Script PHP
echo " < u l > " ; f o r ( $ i =0; $ i <5; $ i + + ) { echo " < l i > i : $ i </ l i > " ; } echo " </ u l > " ;
Code HTML
<ul> <li> i <li> i <li> i <li> i <li> i < / ul> : : : : : 0 1 2 3 4 </ </ </ </ </ li> li> li> li> li>
LPRO ISVD
PHP
50 / 64
if
Prototype
i f ( cond ) { ... }
Code PHP
$ i =0; i f ( $i <10){ echo " <p> i < 10 </ p> " ; }
Code HTML
<p> i < 10 </p>
LPRO ISVD
PHP
51 / 64
if ... else
Prototype
i f ( cond ) { ... } else { ... }
Code PHP
$ i =0; i f ( $i <10){ echo " <p> i < 10 </p> " ; } else { echo " <p> i >= 10 </p> " ; }
Code HTML
<p> i < 10 </p>
LPRO ISVD
PHP
52 / 64
LPRO ISVD
PHP
53 / 64
Plan
1
Programmation sur le WEB Sur le client Sur le serveur PHP ? Scripts PHP Les variables Structures de contrle Formulaires
2 3 4 5 6
LPRO ISVD
PHP
54 / 64
Principe
Les acteurs
la client
zone de formulaire HTML collecte dinformations envoie des informations au serveur
le serveur
traitement des informations reues
LPRO ISVD
PHP
55 / 64
POST et GET
Mthode POST
mthode de transfert dinformations du client au serveur donnes incluses dans la requte HTTP
Mthode GET
mthode de transfert dinformations du client au serveur donnes ajoutes la requte HTTP construction
adresse 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
LPRO ISVD
PHP
56 / 64
Formulaires HTML
Dnition
balise form commutateurs
name action method
Champs
utilisation des commutateurs name des champs input
text, password submit, button, reset radio, checkbox hidden
Olivier Flauzac (URCA) LPRO ISVD
textarea select
simple multiple
PHP
57 / 64
$register_globals
$register_globals = On
cration 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
LPRO ISVD
PHP
58 / 64
Entre de texte
Balises
textarea
< t e x t a r e a name=" t " > votre texte i c i </ t e x t a r e a >
input
text
< 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 " / >
LPRO ISVD
PHP
59 / 64
La requte
h t t p : / / www. monsite . f r / form1 . php
LPRO ISVD
PHP
60 / 64
Scripts de traitement
LPRO ISVD
PHP
61 / 64
La requte
h t t p : / / www. monsite . f r / form1 . php? t 1 =aaa&t 2 =bbbbb
LPRO ISVD
PHP
62 / 64
Scripts de traitement
LPRO ISVD
PHP
63 / 64
Scripts de traitement
LPRO ISVD
PHP
64 / 64