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

Plan
1

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 3 / 63

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

Plan
1

HTML

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 4 / 63

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

Gnralits sur l'HTML


Language descriptif Balises

HTML

Introduction

Pas de squences de contrle Description de la smantique du document Balise ouvrante : <TAG> Balise fermante : </TAG> Les deux en une : <TAG /> 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
Cours HTML / CSS / PHP / MySQL

Standardis

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http ://www.w3.org/TR/html4/loose.dtd"> 12 mars 2008 5 / 63

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

Gnralits sur l'HTML

HTML

Introduction

Encapsulation de type "pile" (Mal)formation


<A> <B> </A> </B> <A> <B> </B> </A> incorrect 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

Plan
1

HTML

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 8 / 63

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

Espaces

HTML

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

Plan
1

HTML

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 13 / 63

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

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

Listes ordonnes

HTML

Listes en HTML

1 2

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

Plan
1

HTML

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 17 / 63

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

Forme du tableau

HTML

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>

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

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

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

<TABLE>

a les attributs : border pour indiquer l'paisseur des bordures rules pour indique le type de bordure entre les cellules :

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

Plan
1

CSS

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 22 / 63

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

Plan
1

CSS

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 23 / 63

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

Mise en forme
HTML dcrit le fond CSS dcrit la forme

CSS

Utilit

Sparation de la forme et du fond 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

Plan
1

CSS

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 25 / 63

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

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 :

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

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

26 / 63

Exemple de CSS
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 ; }

CSS

Syntaxe

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

Plan
1

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 28 / 63

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

Plan
1

PHP

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 29 / 63

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

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 : Langage de script


4.3 (plus rpandue) 5.0 (avec une couche objet)

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

PHP

Introduction

1 2

Le client demande une page PHP Le serveur web excute le code de la page
1 2

Lancement de l'interprteur Excution du code

3 4

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
Code ct serveur

PHP

Introduction

<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

Plan
1

PHP

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 34 / 63

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

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 = $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

Les types

PHP

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, . . .

si

$var

est un entier, une

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

Cours HTML / CSS / PHP / MySQL

12 mars 2008

37 / 63

Les constantes et l'achage

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)

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

PHP

Elments du langage

i f ( cond ) { ... } e l s e i f ( cond ) { ... } else { ... }

switch ( expr ) { c a s e VALEUR_1 : ... break ; c a s e VALEUR_2 : ... break ; default : ... break ; }

f o r ( i n i t ; cond ; modif ) { ... }

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

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

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

Cours HTML / CSS / PHP / MySQL

12 mars 2008

40 / 63

Les tableaux

PHP

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

Parcours de tableaux

PHP

Elments du langage

Parcours "classique" avec Parcours spcique :


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

for f o r e a c h ( $tab as $key => $ v a l u e ) { ... }

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

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 Passage des paramtres par valeur (par dfaut)
Passage par rfrence : &$param Une seule valeur de retour

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

PHP

Elments du langage

On utilise

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

Plan
1

PHP

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 47 / 63

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

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

Plan
1

(My)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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 53 / 63

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

Plan
1

(My)SQL

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 54 / 63

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

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

Exemple

(My)SQL

Introduction SQL

Nom

CARTIER CALVIN CHASTEL PARE

Prenom Age Activite


Jacques Jean Jean Ambroise 44 26 19 44

Table 'PersosXVI'

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

Exemple complexe

(My)SQL

Introduction SQL

Nom

CARTIER CALVIN CHASTEL PARE

Prenom Age Activite


Jacques Jean Jean Ambroise 44 26 19 44

Table 'PersosXVI'

Explorateur Rformateur Assassin Chirurgien

Roi
3 1 4 2

Id Nom
1 2 3 4

Table 'RoiXVI' 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

(My)SQL

Introduction SQL

Nom

CARTIER CALVIN CHASTEL PARE Dcompte

Prenom Age Activite


Jacques Jean Jean Ambroise 44 26 19 44

Table 'PersosXVI'

Explorateur Rformateur Assassin Chirurgien

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

Manipulation des donnes

(My)SQL

Introduction SQL

Nom

Table 'PersosXVI' 44 26 19

CARTIER Jacques CALVIN Jean CHASTEL Jean Requte d'insertion

Prenom Age Activite

Explorateur Rformateur Assassin

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

Plan
1

(My)SQL

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
Cours HTML / CSS / PHP / MySQL 12 mars 2008 60 / 63

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

Accs au serveur

(My)SQL

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

Requtes
Excution

(My)SQL

MySQL avec PHP

$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"]; ... obj >champ; ...

ou $tab [0];

...

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

Cours HTML / CSS / PHP / MySQL

12 mars 2008

62 / 63

Fonctions annexes

(My)SQL

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