Académique Documents
Professionnel Documents
Culture Documents
Cours PHP
Cours PHP
Pierre-Nicolas Clauss
Laboratoire Lorrain de Recherche en Informatique et ses Applications
12 mars 2008
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
1 / 63
Plan
HTML
CSS
PHP
(My)SQL
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
2 / 63
HTML
Plan
1
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
3 / 63
HTML
Plan
1
Introduction
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
4 / 63
HTML
Introduction
Language descriptif
Balises
Standardis
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
5 / 63
HTML
Introduction
incorrect
correct
Structure arborescente
Arbre minimal
<HTML>
<HEAD>
<TITLE />
</HEAD>
<BODY />
</HTML>
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
6 / 63
HTML
Introduction
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
7 / 63
HTML
Plan
1
Texte en HTML
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
8 / 63
HTML
Espaces
Texte en HTML
Rsultat
Mon t e x t e avec des e s p a c e s e t p l u s i e u r s l i g n e s n ' a p p a r a i t pas comme c e c i
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
9 / 63
Texte
HTML
Texte en HTML
12 mars 2008
10 / 63
Texte
HTML
Texte en HTML
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
11 / 63
Texte
HTML
Texte en HTML
Liens hypertexte
Entre <A> et </A>
Choisir le(s) bon(s) mot(s) pour servir de lien
Liens internes (<A NAME=...>) ou externes (<A HREF=...>)
Possibilit de lien sur une image
Lier les pages de manire cohrente
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
12 / 63
HTML
Plan
1
Listes en HTML
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
13 / 63
Listes non-ordonnes
HTML
Listes en HTML
Exemple
<UL>
<L I>1<SUP>e r</SUP> e l e m e n t
<L I>2<SUP>eme</SUP> e l e m e n t
<L I>3<SUP>eme</SUP> e l e m e n t
</UL>
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
14 / 63
HTML
Listes ordonnes
1
2
Listes en HTML
Exemple
<OL>
<L I>1<SUP>e r</SUP> e l e m e n t
<L I>2<SUP>eme</SUP> e l e m e n t
<L I>3<SUP>eme</SUP> e l e m e n t
</OL>
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
15 / 63
Listes de dnitions
HTML
Listes en HTML
Exemple
<DL>
<DT><STRONG>Cout</STRONG>
<DD>P r i x de r e v i e n t
<DT><STRONG>B e n e f i c e</STRONG>
<DD>Gain r e a l i s e pa r une p e r s o n n e ou une c o l l e c t i v i t e
</DL>
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
16 / 63
HTML
Plan
1
Tableau en HTML
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
17 / 63
HTML
Forme du tableau
Tableau en HTML
1 ,1</TD>
1 ,2</TD>
1 ,3</TD>
2 ,1</TD>
2 ,2</TD>
2 ,3</TD>
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
18 / 63
Forme du tableau
HTML
Tableau en HTML
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
19 / 63
Forme du tableau
HTML
Tableau en HTML
right ou
center)
valign pour indiquer l'alignement vertical dans la cellule (top, middle,
bottom)
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
20 / 63
Bordures du tableau
HTML
Tableau en HTML
a les attributs :
border pour indiquer l'paisseur des bordures
rules pour indique le type de bordure entre les cellules :
<TABLE>
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
21 / 63
CSS
Plan
1
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
22 / 63
CSS
Plan
1
Utilit
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
23 / 63
CSS
Mise en forme
Utilit
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
24 / 63
CSS
Plan
1
Syntaxe
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
25 / 63
CSS
Syntaxe
12 mars 2008
26 / 63
Exemple de CSS
CSS
Syntaxe
style.css
body {
f o n t f a m i l y : A r i a l ;
}
p {
background c o l o r :#F0C0C0 ;
border : thin s o l i d black ;
}
. titre {
color : yellow ;
}
index.html
<HTML>
<HEAD>
<LINK r e l=" s t y l e s h e e t " t y p e=" t e x t / c s s " h r e f=" s t y l e . c s s ">
<TITLE>Exemple CSS</TITLE>
</HEAD>
<BODY>
<H1 c l a s s=" t i t r e ">Exemple</H1>
<P>Un p a r a g r a p h e avec b o r d u r e e t c o u l e u r de f o n t
</BODY>
</HTML>
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
27 / 63
PHP
Plan
1
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
28 / 63
PHP
Plan
1
Introduction
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
29 / 63
Pages dynamiques
PHP
Introduction
Exemple statique
<HTML>
<HEAD><TITLE>Page s t a t i q u e</TITLE></HEAD>
<BODY>
Nous sommes l e 28/03/2007
</BODY>
</HTML>
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
30 / 63
Prsentation
PHP
Introduction
Langage de script
Langage interprt
Prsence d'un interprteur ct serveur
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
31 / 63
Modle d'excution
1
2
Introduction
PHP
Lancement de l'interprteur
Excution du code
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
32 / 63
Premier exemple
PHP
Introduction
Code ct serveur
<HTML>
<HEAD><TITLE>Page dynamique </TITLE></HEAD>
<BODY>
<?php
echo ( "Nous sommes l e " ) ;
echo ( d a t e ( " j /m/Y" ) ) ;
?>
</BODY>
</HTML>
Rsultat ct client
<HTML>
<HEAD><TITLE>Page statique</TITLE></HEAD>
<BODY>
Nous sommes le 12 mars 2008
</BODY>
</HTML>
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
33 / 63
PHP
Plan
1
Elments du langage
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
34 / 63
Mlange HTML/PHP
PHP
Elments du langage
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
35 / 63
Les variables
PHP
Elments du langage
// Maintenant , c ' e s t un e n t i e r
// Maintenant , c ' e s t une c h a i n e
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
36 / 63
PHP
Les types
Elments du langage
Entiers : 54
Flottants : 54.3
Chanes : "54" ou '54'
Boolens : false ou true
Tableaux
Fonctions de test :
chane, . . .
pierre-nicolas.clauss@loria.fr (LORIA)
si
$var
12 mars 2008
37 / 63
PHP
Elments du langage
Constantes
On les dnit l'aide de la commande dene
Exemples : dene ("PI", 3.14)
On les utilise directement (sans $) : echo(PI)
Achage
On peut acher avec la commande echo (avec ou sans parenthses)
print est quivalente echo
On peut faire un achage comme en C avec printf
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
38 / 63
Oprateurs
PHP
Elments du langage
Arithmtiques : + / % ++
Aectation : = .= += = = /= %=
Comparaison : == < != > === <= !== >=
Logiques : and && or || xor !
Conditionnel : ... ? ... : ...
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
39 / 63
Conditionnelles et boucles
i f ( cond ) {
...
}
e l s e i f ( cond ) {
...
}
else {
...
}
f o r ( i n i t ; cond ; modif ) {
...
}
pierre-nicolas.clauss@loria.fr (LORIA)
PHP
Elments du langage
switch ( expr ) {
c a s e VALEUR_1 :
...
break ;
c a s e VALEUR_2 :
...
break ;
default :
...
break ;
}
w h i l e ( cond ) {
...
}
do {
...
} w h i l e ( cond ) ;
12 mars 2008
40 / 63
PHP
Les tableaux
Elments du langage
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
41 / 63
PHP
Parcours de tableaux
pierre-nicolas.clauss@loria.fr (LORIA)
Elments du langage
for
f o r e a c h ( $tab as $key => $ v a l u e ) {
...
}
12 mars 2008
42 / 63
PHP
Elments du langage
//
//
//
//
Contient
Contient
Contient
Contient
12 mars 2008
43 / 63
Les fonctions
PHP
Elments du langage
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
44 / 63
PHP
Elments du langage
static
global
f u n c t i o n ma_fonc ( ) {
s t a t i c $appels = 0;
$ a p p e l s ++;
echo ( "J ' a i e t e a p p e l l e e $ a p p e l s f o i s " ) ;
}
f u n c t i o n ma_fonc2 ( ) {
g l o b a l $var ;
$var = 54;
}
$var = 0;
ma_fonc2 ( ) ;
echo ( $ v a r ) ;
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
45 / 63
Inclusion de chiers
On utilise
PHP
Elments du langage
require (" chier "), include (" chier "), require_once(" chier "),
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
46 / 63
PHP
Plan
1
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
47 / 63
PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
48 / 63
Elments de formulaire
PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
49 / 63
PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
50 / 63
PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
51 / 63
PHP
Les sessions utilisent les cookies : il faut donc ouvrir la session avant
d'acher quoi que ce soit (voir fonction setcookie )
Note : Les valeurs des cookies sont dans le tableau pr-rempli $_COOKIE
Le cookie utilis (ou la variable dans $_GET defaut) s'appelle
PHPSESSID
La session existe ds qu'elle est cre et jusqu' ce qu'elle soit dtruite
Cration (et rouverture) : session_start ()
Destruction : session_destroy ()
Note : les session s'autodtruisent aprs un certain temps
(gnralement 30 min)
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
52 / 63
(My)SQL
Plan
1
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
53 / 63
(My)SQL
Plan
1
Introduction SQL
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
54 / 63
Dnition
(My)SQL
Introduction SQL
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
55 / 63
(My)SQL
Exemple
Nom
CARTIER
CALVIN
CHASTEL
PARE
Introduction SQL
Table 'PersosXVI'
44
26
19
44
Explorateur
Rformateur
Assassin
Chirurgien
Requte interrogative
SELECT FROM PersosXVI;
Requte slective
SELECT Nom, Prenom FROM PersosXVI;
Requte restrictive
SELECT FROM PersosXVI WHERE Prenom = 'Jean';
12 mars 2008
56 / 63
(My)SQL
Exemple complexe
Nom
CARTIER
CALVIN
CHASTEL
PARE
Introduction SQL
Table 'PersosXVI'
44
26
19
44
Explorateur
Rformateur
Assassin
Chirurgien
Roi
3
1
4
2
Table 'RoiXVI'
Id Nom
1
2
3
4
Henri II
Charles IX
Francois Ier
Henri IV
Requte croise
SELECT p.Nom, p.Activite FROM PersosXVI p, RoiXVI r WHERE p.Roi = r.Id AND r.Nom = 'Francois Ier'
ORDER BY p.Nom DESC;
Rsultat
CARTIER Explorateur
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
57 / 63
Exemple de fonctions
Nom
CARTIER
CALVIN
CHASTEL
PARE
(My)SQL
Introduction SQL
Table 'PersosXVI'
44
26
19
44
Explorateur
Rformateur
Assassin
Chirurgien
Dcompte
SELECT count() FROM PersosXVI;
Somme
SELECT sum(Age) FROM PersosXVI;
12 mars 2008
58 / 63
(My)SQL
Nom
Introduction SQL
Table 'PersosXVI'
CARTIER Jacques
CALVIN
Jean
CHASTEL Jean
44
26
19
Explorateur
Rformateur
Assassin
Requte d'insertion
INSERT INTO PersosXVI(Nom, Prenom, Age, Activite) VALUES('PARE', 'Ambroise', 44, 'Chirurgien');
Requte de suppression
DELETE FROM PersosXVI WHERE Prenom = 'Jean';
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
59 / 63
(My)SQL
Plan
1
HTML
Introduction
Texte en HTML
Listes en HTML
Tableau en HTML
CSS
Utilit
Syntaxe
PHP
Introduction
Elments du langage
PHP avec HTML
(My)SQL
Introduction SQL
MySQL avec PHP
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
60 / 63
(My)SQL
Accs au serveur
Connexion
$c = mysql_connect("localhost", "login", "mdp");
$c
est
false
Choix de la base
$s = mysql_select_db("nom", $c);
$s
est
false
en cas d'erreur
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
61 / 63
(My)SQL
Requtes
Excution
$res = mysql_query("une requete", $c);
$res
est
false
en cas d'erreur
ou $tab [0];
...
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
62 / 63
(My)SQL
Fonctions annexes
pierre-nicolas.clauss@loria.fr (LORIA)
12 mars 2008
63 / 63