Vous êtes sur la page 1sur 63

Cours HTML / CSS / PHP / MySQL

Pierre-Nicolas Clauss
Laboratoire Lorrain de Recherche en Informatique et ses Applications

12 mars 2008

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

1 / 63

Plan

HTML

CSS

PHP

(My)SQL

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

4 / 63

Gnralits sur l'HTML

HTML

Introduction

Language descriptif

Pas de squences de contrle


Description de la smantique du document

Balises

Balise ouvrante : <TAG>


Balise fermante : </TAG>
Les deux en une : <TAG />

Standardis

W3C : http ://www.w3c.org


Dernire version : HTML 4.01
Strict
Transitional
Frameset
Validation automatique : http ://validator.w3.org
Balise DOCTYPE, sur la premire ligne du chier

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http ://www.w3.org/TR/html4/loose.dtd">

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

5 / 63

Gnralits sur l'HTML

HTML

Introduction

Encapsulation de type "pile"


(Mal)formation
<A> <B> </A> </B>

incorrect

<A> <B> </B> </A>

correct

Structure arborescente
Arbre minimal
<HTML>
<HEAD>
<TITLE />
</HEAD>
<BODY />
</HTML>

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

6 / 63

Gnralits sur l'HTML

HTML

Introduction

Commentaires entre <! et >


HTML + XML => XHTML

Balises toujours fermes


Transformation en d'autres formats

HTML donne un dcoupage selon la smantique du document


Mise en forme visuelle
en HTML : moins lisible, plus de code
en CSS : plus lisible, regroupement et gnralisation

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

8 / 63

HTML

Espaces

Texte en HTML

Tous les espaces blancs (y compris \t et \n) sont ignors


Cas particulier : l'espace seul => reproduit tel quel
Exemple
Mon t e x t e
avec des e s p a c e s
et 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

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

Il faut utiliser des balises

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

9 / 63

Texte

HTML

Texte en HTML

Mise en forme au niveau paragraphe


<BR> : aller la ligne
&nbsp; : insrer un espace
<P> : commencer un nouveau paragraphe
entre <PRE> et </PRE>, tout est reproduit tel quel
Mise en forme au niveau phrase
<EM> </EM> : Mise en valeur (italique)
<STRONG> </STRONG> : Mise en valeur forte (gras)
<CITE> </CITE> : Citation courte (gras italique)
<Q> </Q> : Citation courte (entre guillements)
<BLOCKQUOTE </BLOCKQUOTE> : Citation longue (gras)
pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

10 / 63

Texte

HTML

Texte en HTML

Mise en forme au niveau phrase


<CODE> </CODE> : Extrait de code source (gras italique petit)
<ABBR> </ABBR> : Abbrviation (gras italique)
<ACRONYM> </ACRONYM> : Acronyme (gras italique)
<SUP> </SUP> : Mettre en exposant
<SUB> </SUB> : Mettre en indice
<BIG> </BIG> : Plus gros
<SMALL> </SMALL> : Plus petit
Beaucoup d'autres : <DFN>, <SAMP>, <KBD>, <VAR>, <INS>, <DEL>, . . .

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

13 / 63

Listes non-ordonnes

HTML

Listes en HTML

marque le dbut de la liste et </UL> sa n


<LI> permet de commencer un nouvel item dans la liste
<UL>

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

14 / 63

HTML

Listes ordonnes

1
2

Listes en HTML

marque le dbut de la liste et </OL> sa n


<LI> permet de commencer un nouvel item dans la liste
<OL>

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

15 / 63

Listes de dnitions

HTML

Listes en HTML

marque le dbut de la liste et </DL> sa n


<DT> permet de dnir un titre pour une dnition
<DD> permet de dnir le contenu d'une dnition
<DL>

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)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

17 / 63

HTML

Forme du tableau

Tableau en HTML

Un tableau commence par <TABLE> et nit par </TABLE>


Une ligne dans un tableau commence par <TR> et nit par </TR>
Une cellule dans une ligne commence par <TD> et nit par </TD>
Une cellule d'en-tte dans une ligne commence par <TH> et nit par
</TH>

Exemple : 2 lignes x 3 colonnes


<TABLE>
<TR>
<TD> C e l l u l e
<TD> C e l l u l e
<TD> C e l l u l e
</TR>
<TR>
<TD> C e l l u l e
<TD> C e l l u l e
<TD> C e l l u l e
</TR>
</TABLE>

1 ,1</TD>
1 ,2</TD>
1 ,3</TD>
2 ,1</TD>
2 ,2</TD>
2 ,3</TD>

pierre-nicolas.clauss@loria.fr (LORIA)

Cellule 1,1 Cellule 1,2 Cellule 1,3


Cellule 2,1 Cellule 2,2 Cellule 2,3

Cours HTML / CSS / PHP / MySQL

12 mars 2008

18 / 63

Forme du tableau

HTML

Tableau en HTML

On peut donner un "titre" au tableau entre <CAPTION> et </CAPTION>, en


dehors des dnitions de lignes ou de cellules
On peut ranger les lignes entre <THEAD> et </THEAD> pour indiquer
qu'elles font partie de l'en-tte
On peut ranger les lignes entre <TFOOT> et </TFOOT> pour indiquer
qu'elles font partie du pied du tableau
On peut ranger les lignes entre <TBODY> et </TBODY> pour indiquer
qu'elles font partie des donnes
Attention : <THEAD> et <TFOOT> doivent apparatre avant <TBODY>
Il peut y avoir plusieurs <TBODY>

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

19 / 63

Forme du tableau

HTML

Tableau en HTML

On peut donner des indications de taille sur les colonnes entre


<COLGROUP> et </COLGROUP>
Entre ces balises, on indique avec <COL width=...> la taille d'une colonne
On peut aussi utiliser <COLGROUP span=XX width=YY> pour spcier XX
colonnes de taille YY
Les balises <TD> et <TH> ont les attributes :

rowspan pour indiquer sur combien de lignes s'tant la cellule


colspan pour indiquer sur combien de colonnes s'tant la cellule
align pour indiquer l'alignement horizontal dans la cellule (left,

right ou
center)
valign pour indiquer l'alignement vertical dans la cellule (top, middle,
bottom)

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

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>

none : pas de bordure


groups : bordures entre les groupes de lignes (<THEAD>, <TFOOT>,
<TBODY> et les groupes de colonnes (<COLGROUP>, <COL>)
rows : bordures entre les lignes uniquement
cols : bordures entre les colonnes uniquement
all : bordures autour de toutes les cellules

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

23 / 63

CSS

Mise en forme

Utilit

Sparation de la forme et du fond


HTML dcrit le fond
CSS dcrit la forme

Centralisation de l'aspect visuel


On insre du CSS entre :
<STYLE t y p e=" t e x t / c s s ">
<!
du CSS i c i
>
</STYLE>

Ou on lie un chier CSS avec :


<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=" . . . ">

Ou on ajoute du CSS une balise :


<BALISE s t y l e=" . . . ">

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

25 / 63

Format d'une classe CSS

CSS

Syntaxe

Le CSS est form d'un ensemble de classes.


Une classe s'crit de cette faon :
nom {
attribut : valeur ;
...
}

nom peut tre :

Un nom de balise : les attributs s'appliquent toutes ces balises


Un nom gnrique (commenant par un point) : les attributs
s'appliquent aux balises utilisant class ="nom" (sans le point)
Un mlange des deux, spars par des virgules : les attributs
s'appliquent suivant les deux points prcdents

attribut dsigne quel lment visuel est modi (couleur, bordure,


fond, marges . . ..
valeur dsigne par quelle valeur est remplace l'attribut dsign
pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

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>

Problme : Acher une page dirente en fonction de l'utilisateur, de


l'environnement, . . .
Solution : Utiliser un langage de programmation volu, par exemple
PHP.

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

30 / 63

Prsentation

PHP

Introduction

Langage rcent (cre en 1994)


Versions utilise :
4.3 (plus rpandue)
5.0 (avec une couche objet)

Langage de script

Langage interprt
Prsence d'un interprteur ct serveur

Intgr au code HTML


Syntaxe proche du C et du Java
Interface simple avec beaucoup de SGBD

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

31 / 63

Modle d'excution

1
2

Introduction

Le client demande une page PHP


Le serveur web excute le code de la page
1
2

PHP

Lancement de l'interprteur
Excution du code

Le serveur web renvoie le rsultat de l'excution


Le client ache le rsultat
Pour le client, il est impossible de voir le code PHP
Seul le rsultat de l'excution est rcupr par le client

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

34 / 63

Mlange HTML/PHP

PHP

Elments du langage

PHP s'intgre dans l'HTML entre <?php et ?>


Les instructions se nissent par ;
Les commentaires sont soit entre /*et */, soit aprs //
Manuel complet en franais : http ://www.php.net/manual/fr

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

35 / 63

Les variables

PHP

Elments du langage

Les variables sont prxes par $


Leur nom suit les rgles classiques
Exemple : $my_var_03
Les noms sont sensibles la casse : $var 6= $Var
Pas de dclaration, typage implicite
Exemple :
$my_var_03 = 5 4 ;
$my_var_03 = " p i f " ;

// Maintenant , c ' e s t un e n t i e r
// Maintenant , c ' e s t une c h a i n e

Attention aux fautes de frappes dans les noms de variables

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

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 :

isset ($var) : renvoie true si $var existe


unset($var) : dtruit $var
is_integer ($var), is_string ($var), . . . : renvoie true

chane, . . .

pierre-nicolas.clauss@loria.fr (LORIA)

si

Cours HTML / CSS / PHP / MySQL

$var

est un entier, une

12 mars 2008

37 / 63

PHP

Les constantes et l'achage

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

38 / 63

Oprateurs

PHP

Elments du langage

Arithmtiques : + / % ++
Aectation : = .= += = = /= %=
Comparaison : == < != > === <= !== >=
Logiques : and && or || xor !
Conditionnel : ... ? ... : ...

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

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 ) {
...
}

Cours HTML / CSS / PHP / MySQL

do {
...
} w h i l e ( cond ) ;

12 mars 2008

40 / 63

PHP

Les tableaux

Elments du langage

Chaque lment du tableau a une cl et une valeur


Pas de dclaration du tableau
Les valeurs des lments ne sont pas forcment toutes du mme type
Exemple de remplissage la vole :
$tab [ 0 ] = 5 4 ;
$tab [ 1 ] = " p i f " ;
$tab [ " p a f " ] = f a l s e ;

Exemple de remplissage direct :


$tab = a r r a y ( 5 4 , " p i f " ) ;
$tab = a r r a y ( " p a f " => f a l s e ) ;

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

41 / 63

PHP

Parcours de tableaux

Parcours "classique" avec


Parcours spcique :
f o r e a c h ( $tab as $ v a l u e ) {
...
}

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 ) {
...
}

Cours HTML / CSS / PHP / MySQL

12 mars 2008

42 / 63

Les chanes de caractres

PHP

Elments du langage

Dlimites par ' : contenu non interprt


Dlimites par " : contenu interprt
Les unes peuvent contenir les autres
Concatnation avec .
Exemple :
$pif = " toto " ;
$ p a f = " comme $ p i f " ;
$pouf = ' pas comme $ p i f ' ;
$bim = $ p i f . $ p a f ;

//
//
//
//

Contient
Contient
Contient
Contient

" toto "


" comme t o t o "
" pas comme $ p i f "
" t o t o comme t o t o "

Accs un caractre : $bim[0]


strlen ( $str ) : longueur de $str
substr ( $str , start [, len ]) : sous-chane de $str commenant au caractre start,
et faisant ventuellement len caractres de long
Comparaison avec ==, === ou strcmp
pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

43 / 63

Les fonctions

PHP

Elments du langage

f u n c t i o n ma_fonc ( $param1 , $param2 , . . . ) {


...
return . . . ;
}

Pas de type pour les paramtres ou la valeur de retour


Nombre x de paramtres
Le nom ne commence pas par $
Le nom est insensible la casse
Le rsultat est renvoy avec la commande return
Une seule valeur de retour

Passage des paramtres par valeur (par dfaut)


Passage par rfrence : &$param

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

44 / 63

PHP

Elments du langage

Les variables utilises l'intrieur d'une fonctions sont dtruites la


n, sauf :
si on les dnit avec
si on les dnit avec

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

45 / 63

Inclusion de chiers

On utilise

PHP

Elments du langage

require (" chier "), include (" chier "), require_once(" chier "),

include_once(" chier ")

Les variantes include provoquent des warnings au lieu d'erreurs en cas de


problme
Les variantes _once n'incluent le chier que si celui n'a pas dj t inclu

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

46 / 63

PHP

Plan
1

PHP avec 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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

47 / 63

Utilisation des formulaires

PHP

PHP avec HTML

On peut "dialoguer" avec le visiteur en utilisant les formulaires


En mthode GET : donnes encodes dans l'URL
index .php?var=value&var2=value2...

En mthode POST : donnes caches mais pas de navigation avec


Prcdent/Suivant
Exemple de formulaire
<FORM a c t i o n=" t r a i t e m e n t . php" method=" p o s t ">
prenom : <INPUT t y p e=" t e x t " name=" prenom ">
age : <INPUT t y p e=" t e x t " name=" age ">
<INPUT t y p e=" submit " v a l u e=" Envoyer ">
</FORM>

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

48 / 63

Elments de formulaire

PHP

PHP avec HTML

Il existe dirents type pour les balises INPUT :


text : une zone de texte sur une seule ligne
password : idem, mais avec achage d'toiles
le : permet la selection d'un chier
checkbox : une case cocher
button : un bouton simple (pas d'action sans javascript)
hidden : un champ "texte" cach
radio : un bouton d'option
reset : un bouton de remise zro
submit : un bouton de soumission

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

49 / 63

PHP avec formulaires

PHP

PHP avec HTML

Le script de traitement des formulaires reoit un tableau pr-rempli


$_GET pour la mthode GET
$_POST pour la mthode POST
Il contient les donnes du formulaire
Exemple de traitement
<?php
$prenom = $_POST[ " prenom " ] ;
$age = $_POST[ " age " ] ;
echo ( " Bonjour $prenom , vous avez $age ans " ) ;
?>

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

50 / 63

Persistence des donnes

PHP

PHP avec HTML

On veut parfois garder de l'information entre plusieurs pages :


Login / Password
Prfrences de navigation
Slection de produits acheter (panier, ...)

On utilise donc les sessions PHP.

Les sessions permettent de stocker des informations ct serveur


Elles sont identies par un numro qui reste valide tant que le visiteur
reste connect
Le numro est transmis au serveur soit dans l'URL, soit dans un cookie

Les donnes se placent et se rcuprent dans $_SESSION, comme pour


les formulaires

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

51 / 63

Utilisation des sessions

PHP

PHP avec HTML

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)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

54 / 63

Dnition

(My)SQL

Introduction SQL

SQL est un langage puissant de requte


Il permet de faire une demande complexe une base de donnes dans
un langage proche de l'anglais
On l'utilise pour rcuprer, ajouter, supprimer et crer des donnes
dans une base de donnes
Les bases de donnes utilisent des tables :
chaque ligne est un enregistrement de champs avec des valeurs
les requtes se font sur ces champs

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

55 / 63

(My)SQL

Exemple

Nom

CARTIER
CALVIN
CHASTEL
PARE

Introduction SQL

Table 'PersosXVI'

Prenom Age Activite


Jacques
Jean
Jean
Ambroise

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';

On peut compltement mlanger les types de requtes


pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

56 / 63

(My)SQL

Exemple complexe

Nom

CARTIER
CALVIN
CHASTEL
PARE

Introduction SQL

Table 'PersosXVI'

Prenom Age Activite


Jacques
Jean
Jean
Ambroise

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

57 / 63

Exemple de fonctions

Nom

CARTIER
CALVIN
CHASTEL
PARE

(My)SQL

Introduction SQL

Table 'PersosXVI'

Prenom Age Activite


Jacques
Jean
Jean
Ambroise

44
26
19
44

Explorateur
Rformateur
Assassin
Chirurgien

Dcompte
SELECT count() FROM PersosXVI;

Somme
SELECT sum(Age) FROM PersosXVI;

Ce type de requte peut simplier le code de traitement


pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

58 / 63

(My)SQL

Manipulation des donnes

Nom

Introduction SQL

Table 'PersosXVI'

Prenom Age Activite

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 mise jour


UPDATE PersosXVI SET Age = 43 WHERE Nom = 'CARTIER';

Requte de suppression
DELETE FROM PersosXVI WHERE Prenom = 'Jean';

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

59 / 63

(My)SQL

Plan
1

MySQL avec PHP

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)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

60 / 63

(My)SQL

Accs au serveur

MySQL avec PHP

Connexion
$c = mysql_connect("localhost", "login", "mdp");
$c

est

false

en cas d'erreur de connexion

Choix de la base
$s = mysql_select_db("nom", $c);
$s

est

false

en cas d'erreur

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

61 / 63

(My)SQL

Requtes

MySQL avec PHP

Excution
$res = mysql_query("une requete", $c);
$res

est

false

en cas d'erreur

Rcupration de(s) rsultat(s)


$row = mysql_fetch_row($res);
$tab = mysql_fetch_array($res);
$obj = mysql_fetch_object($res);
$row [0]; $row [1]; ...
$tab["champ"]; ...

ou $tab [0];

...

obj >champ; ...

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

62 / 63

(My)SQL

Fonctions annexes

MySQL avec PHP

: retourne le nombre de rsultats d'un SELECT


mysql_aected_rows($res) : retourne le nombre de ligne aectes par un
INSERT, un UPDATE ou un DELETE
mysql_insert_id($c) : retourne le dernier incrment d'un champ
AUTO_INCREMENT
mysql_num_rows($res)

Attention aux injections SQL !

pierre-nicolas.clauss@loria.fr (LORIA)

Cours HTML / CSS / PHP / MySQL

12 mars 2008

63 / 63

Vous aimerez peut-être aussi