+ All Categories
Home > Documents > HTML CSS PHP (My)SQL - academiepro.com · HTML Plan 1 HTML Introduction exteT en HTML Listes en...

HTML CSS PHP (My)SQL - academiepro.com · HTML Plan 1 HTML Introduction exteT en HTML Listes en...

Date post: 25-Jun-2018
Category:
Upload: trinhcong
View: 381 times
Download: 8 times
Share this document with a friend
62
Transcript

Plan

1 HTML

2 CSS

3 PHP

4 (My)SQL

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 2 / 63

HTML

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 3 / 63

HTML Introduction

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 4 / 63

HTML Introduction

Généralités sur l'HTML

Language descriptif

Pas de séquences de contrôleDescription de la sémantique du document

Balises

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

Standardisé

W3C : http ://www.w3c.orgDernière version : HTML 4.01

Strict

Transitional

Frameset

Validation automatique : http ://validator.w3.orgBalise DOCTYPE, sur la première ligne du �chier

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

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 5 / 63

HTML Introduction

Généralités sur l'HTML

Encapsulation de type "pile"

(Mal)formation

<A> <B> </A> </B> i n c o r r e c t

<A> <B> </B> </A> c o r r e c t

Structure arborescente

Arbre minimal

<HTML><HEAD>

<TITLE /></HEAD><BODY />

</HTML>

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 6 / 63

HTML Introduction

Généralités sur l'HTML

Commentaires entre <!−− et −−>

HTML + XML => XHTML

Balises toujours ferméesTransformation en d'autres formats

HTML donne un découpage selon la sémantique du document

Mise en forme visuelle

en HTML : moins lisible, plus de codeen CSS : plus lisible, regroupement et généralisation

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 7 / 63

HTML Texte en HTML

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 8 / 63

HTML Texte en HTML

Espaces

Tous les espaces blancs (y compris \t et \n) sont ignorés

Cas particulier : l'espace seul => reproduit tel quel

Exemple

Mon t e x t e avec des e spac e se 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

Résultat

Mon t e x t e avec des e spac 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

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 9 / 63

HTML Texte en HTML

Texte

Mise en forme au niveau paragraphe

<BR> : aller à la ligne

&nbsp; : insérer 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)

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 10 / 63

HTML Texte en HTML

Texte

Mise en forme au niveau phrase

<CODE> à </CODE> : Extrait de code source (gras italique petit)

<ABBR> à </ABBR> : Abbréviation (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>, . . .

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 11 / 63

HTML Texte en HTML

Texte

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 manière cohérente

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 12 / 63

HTML Listes en HTML

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 13 / 63

HTML Listes en HTML

Listes non-ordonnées

<UL> marque le début de la liste et </UL> sa �n

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

Exemple

<UL><LI>1<SUP>er</SUP> element<LI>2<SUP>eme</SUP> element<LI>3<SUP>eme</SUP> element

</UL>

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 14 / 63

HTML Listes en HTML

Listes ordonnées

1 <OL> marque le début de la liste et </OL> sa �n

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

Exemple

<OL><LI>1<SUP>er</SUP> element<LI>2<SUP>eme</SUP> element<LI>3<SUP>eme</SUP> element

</OL>

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 15 / 63

HTML Listes en HTML

Listes de dé�nitions

<DL> marque le début de la liste et </DL> sa �n

<DT> permet de dé�nir un titre pour une dé�nition

<DD> permet de dé�nir le contenu d'une dé�nition

Exemple

<DL><DT><STRONG>Cout</STRONG><DD>Pr i x de r e v i e n t<DT><STRONG>Bene f i c e</STRONG><DD>Gain r e a l i s e par une pe r sonne ou une c o l l e c t i v i t e

</DL>

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 16 / 63

HTML Tableau en HTML

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 17 / 63

HTML Tableau en HTML

Forme du tableau

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-tête 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 1 ,1</TD><TD>C e l l u l e 1 ,2</TD><TD>C e l l u l e 1 ,3</TD>

</TR><TR>

<TD>C e l l u l e 2 ,1</TD><TD>C e l l u l e 2 ,2</TD><TD>C e l l u l e 2 ,3</TD>

</TR></TABLE>

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

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

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 18 / 63

HTML Tableau en HTML

Forme du tableau

On peut donner un "titre" au tableau entre <CAPTION> et </CAPTION>, endehors des dé�nitions de lignes ou de cellules

On peut ranger les lignes entre <THEAD> et </THEAD> pour indiquerqu'elles font partie de l'en-tête

On peut ranger les lignes entre <TFOOT> et </TFOOT> pour indiquerqu'elles font partie du pied du tableau

On peut ranger les lignes entre <TBODY> et </TBODY> pour indiquerqu'elles font partie des données

Attention : <THEAD> et <TFOOT> doivent apparaître avant <TBODY>

Il peut y avoir plusieurs <TBODY>

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 19 / 63

HTML Tableau en HTML

Forme du tableau

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 spéci�er XXcolonnes de taille YY

Les balises <TD> et <TH> ont les attributes :

rowspan pour indiquer sur combien de lignes s'étant la cellulecolspan pour indiquer sur combien de colonnes s'étant la cellulealign pour indiquer l'alignement horizontal dans la cellule (left, right oucenter)valign pour indiquer l'alignement vertical dans la cellule (top, middle,bottom)

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 20 / 63

HTML Tableau en HTML

Bordures du tableau

<TABLE> a les attributs :

border pour indiquer l'épaisseur des bordures

rules pour indique le type de bordure entre les cellules :

none : pas de borduregroups : bordures entre les groupes de lignes (<THEAD>, <TFOOT>,<TBODY> et les groupes de colonnes (<COLGROUP>, <COL>)rows : bordures entre les lignes uniquementcols : bordures entre les colonnes uniquementall : bordures autour de toutes les cellules

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 21 / 63

CSS

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 22 / 63

CSS Utilité

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 23 / 63

CSS Utilité

Mise en forme

Séparation de la forme et du fond

HTML décrit le fondCSS décrit la forme

Centralisation de l'aspect visuel

On insère du CSS entre :<STYLE type=" 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 " type=" t e x t / c s s " h r e f=" . . . ">

Ou on ajoute du CSS à une balise :

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

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 24 / 63

CSS Syntaxe

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 25 / 63

CSS Syntaxe

Format d'une classe CSS

Le CSS est formé d'un ensemble de classes.

Une classe s'écrit de cette façon :nom {

a t t r i b u t : v a l e u r ;. . .

}

nom peut être :

Un nom de balise : les attributs s'appliquent à toutes ces balisesUn nom générique (commençant par un point) : les attributss'appliquent aux balises utilisant class="nom" (sans le point)Un mélange des deux, séparés par des virgules : les attributss'appliquent suivant les deux points précédents

attribut désigne quel élément visuel est modi�é (couleur, bordure,fond, marges . . ..

valeur désigne par quelle valeur est remplacée l'attribut désigné

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 26 / 63

CSS Syntaxe

Exemple de CSS

style.css

body {font−f am i l y : A r i a l ;

}p {

background−c o l o r :#F0C0C0 ;bo rde r : t h i n s o l i d b l a c k ;

}. t i t r e {

c o l o r : y e l l ow ;}

index.html

<HTML><HEAD>

<LINK r e l=" s t y l e s h e e t " type=" 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 parag raphe avec bo rdu re e t c o u l e u r de f o n t

</BODY></HTML>

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 27 / 63

PHP

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 28 / 63

PHP Introduction

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 29 / 63

PHP Introduction

Pages dynamiques

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>

Problème : A�cher une page di�érente en fonction de l'utilisateur, del'environnement, . . .

Solution : Utiliser un langage de programmation évolué, par exemplePHP.

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 30 / 63

PHP Introduction

Présentation

Langage récent (crée en 1994)

Versions utilisée :

4.3 (plus répandue)5.0 (avec une couche objet)

Langage de script

Langage interprétéPrésence d'un interpréteur côté serveur

Intégré au code HTML

Syntaxe proche du C et du Java

Interface simple avec beaucoup de SGBD

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 31 / 63

PHP Introduction

Modèle d'exécution

1 Le client demande une page PHP2 Le serveur web exécute le code de la page

1 Lancement de l'interpréteur2 Exécution du code

3 Le serveur web renvoie le résultat de l'exécution

4 Le client a�che le résultat

Pour le client, il est impossible de voir le code PHP

Seul le résultat de l'exécution est récupéré par le client

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 32 / 63

PHP Introduction

Premier exemple

Code côté serveur

<HTML><HEAD><TITLE>Page dynamique</TITLE></HEAD><BODY><?php

echo ( "Nous sommes l e " ) ;echo ( date ( " j /m/Y" ) ) ;

?></BODY>

</HTML>

Résultat côté client<HTML>

<HEAD><TITLE>Page statique</TITLE></HEAD>

<BODY>Nous sommes le 12 mars 2008

</BODY></HTML>

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 33 / 63

PHP Eléments du langage

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 34 / 63

PHP Eléments du langage

Mélange HTML/PHP

PHP s'intègre dans l'HTML entre <?php et ?>

Les instructions se �nissent par ;

Les commentaires sont soit entre /*et */, soit après //

Manuel complet en français : http ://www.php.net/manual/fr

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 35 / 63

PHP Eléments du langage

Les variables

Les variables sont pré�xées par $

Leur nom suit les règles classiques

Exemple : $my_var_03

Les noms sont sensibles à la casse : $var 6= $Var

Pas de déclaration, typage implicite

Exemple :

$my_var_03 = 54 ; // Maintenant , c ' e s t un e n t i e r$my_var_03 = " p i f " ; // Maintenant , c ' e s t une cha i n e

Attention aux fautes de frappes dans les noms de variables

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 36 / 63

PHP Eléments du langage

Les types

Entiers : 54

Flottants : 54.3

Chaînes : "54" ou '54'

Booléens : false ou true

Tableaux

Fonctions de test :

isset ($var) : renvoie true si $var existeunset($var) : détruit $var

is_integer ($var), is_string ($var), . . . : renvoie true si $var est un entier, unechaîne, . . .

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 37 / 63

PHP Eléments du langage

Les constantes et l'a�chage

Constantes

On les dé�nit à l'aide de la commande de�ne

Exemples : de�ne ("PI", 3.14)

On les utilise directement (sans $) : echo(PI)

A�chage

On peut a�cher avec la commande echo (avec ou sans parenthèses)

print est équivalente à echo

On peut faire un a�chage comme en C avec printf

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 38 / 63

PHP Eléments du langage

Opérateurs

Arithmétiques : + − ∗ / % ++ −−

A�ectation : = .= += −= ∗= /= %=

Comparaison : == < != > === <= !== >=

Logiques : and && or || xor !

Conditionnel : ... ? ... : ...

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 39 / 63

PHP Eléments du langage

Conditionnelles et boucles

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

sw i t c h ( exp r ) {ca se VALEUR_1:

. . .b reak ;

ca se VALEUR_2:. . .b reak ;

d e f a u l t :. . .b reak ;

}

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

wh i l e ( cond ) {. . .}

do {. . .} wh i l e ( cond ) ;

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 40 / 63

PHP Eléments du langage

Les tableaux

Chaque élément du tableau a une clé et une valeur

Pas de déclaration du tableau

Les valeurs des éléments ne sont pas forcément toutes du même type

Exemple de remplissage à la volée :

$tab [ 0 ] = 54 ;$tab [ 1 ] = " p i f " ;$tab [ " pa f " ] = f a l s e ;

Exemple de remplissage direct :

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

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 41 / 63

PHP Eléments du langage

Parcours de tableaux

Parcours "classique" avec for

Parcours spéci�que :

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

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

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 42 / 63

PHP Eléments du langage

Les chaînes de caractères

Délimitées par ' : contenu non interprété

Délimitées par " : contenu interprété

Les unes peuvent contenir les autres

Concaténation avec .

Exemple :

$ p i f = " to to " ; // Con t i en t " to t o "$pa f = " comme $ p i f " ; // Con t i e n t " comme to to "$pouf = ' pas comme $ p i f ' ; // Con t i e n t " pas comme $ p i f "$bim = $ p i f . $pa f ; // Con t i en t " to t o comme to to "

Accès à un caractère : $bim[0]

strlen ( $str ) : longueur de $str

substr ( $str , start [, len ]) : sous-chaîne de $str commençant au caractère start,et faisant éventuellement len caractères de long

Comparaison avec ==, === ou strcmp

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 43 / 63

PHP Eléments du langage

Les fonctions

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

}

Pas de type pour les paramètres ou la valeur de retour

Nombre �xé de paramètres

Le nom ne commence pas par $

Le nom est insensible à la casse

Le résultat est renvoyé avec la commande return

Une seule valeur de retour

Passage des paramètres par valeur (par défaut)

Passage par référence : &$param

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 44 / 63

PHP Eléments du langage

Les variables utilisées à l'intérieur d'une fonctions sont détruites à la�n, sauf :

si on les dé�nit avec static

si on les dé�nit avec global

f u n c t i o n ma_fonc ( ) {s t a t i c $ appe l s = 0 ;$ appe l s++;echo ( "J ' a i e t e a p p e l l e e $appe l s f o i s " ) ;

}

f u n c t i o n ma_fonc2 ( ) {g l o b a l $va r ;$va r = 54 ;

}

$va r = 0 ;ma_fonc2 ( ) ;echo ( $va r ) ;

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 45 / 63

PHP Eléments du langage

Inclusion de �chiers

On utilise require (" �chier "), include (" �chier "), require_once(" �chier "),include_once(" �chier ")

Les variantes include provoquent des warnings au lieu d'erreurs en cas deproblème

Les variantes _once n'incluent le �chier que si celui n'a pas déjà été inclu

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 46 / 63

PHP PHP avec HTML

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 47 / 63

PHP PHP avec HTML

Utilisation des formulaires

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

En méthode GET : données encodées dans l'URLindex .php?var=value&var2=value2...

En méthode POST : données cachées mais pas de navigation avecPrécédent/Suivant

Exemple de formulaire

<FORM ac t i o n=" t r a i t emen t . php" method=" pos t ">prenom : <INPUT type=" t e x t " name="prenom">age : <INPUT type=" t e x t " name="age"><INPUT type=" submit " v a l u e="Envoyer ">

</FORM>

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 48 / 63

PHP PHP avec HTML

Eléments de formulaire

Il existe di�érents type pour les balises INPUT :

text : une zone de texte sur une seule ligne

password : idem, mais avec a�chage 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 à zéro

submit : un bouton de soumission

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 49 / 63

PHP PHP avec HTML

PHP avec formulaires

Le script de traitement des formulaires reçoit un tableau pré-rempli

$_GET pour la méthode GET

$_POST pour la méthode POST

Il contient les données du formulaire

Exemple de traitement

<?php$prenom = $_POST[ "prenom" ] ;$age = $_POST[ "age" ] ;echo ( "Bonjour $prenom , vous avez $age ans " ) ;

?>

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 50 / 63

PHP PHP avec HTML

Persistence des données

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

Login / PasswordPréférences de navigationSélection de produits à acheter (panier, ...)

On utilise donc les sessions PHP.

Les sessions permettent de stocker des informations côté serveurElles sont identi�ées par un numéro qui reste valide tant que le visiteurreste connectéLe numéro est transmis au serveur soit dans l'URL, soit dans un cookie

Les données se placent et se récupèrent dans $_SESSION, comme pourles formulaires

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 51 / 63

PHP PHP avec HTML

Utilisation des sessions

Les sessions utilisent les cookies : il faut donc ouvrir la session avant

d'a�cher 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'appellePHPSESSID

La session existe dès qu'elle est crée et jusqu'à ce qu'elle soit détruite

Création (et réouverture) : session_start ()

Destruction : session_destroy ()

Note : les session s'autodétruisent après un certain temps(généralement 30 min)

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 52 / 63

(My)SQL

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 53 / 63

(My)SQL Introduction à SQL

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 54 / 63

(My)SQL Introduction à SQL

Dé�nition

SQL est un langage puissant de requête

Il permet de faire une demande complexe à une base de données dansun langage proche de l'anglais

On l'utilise pour récupérer, ajouter, supprimer et créer des donnéesdans une base de données

Les bases de données utilisent des tables :

chaque ligne est un enregistrement de champs avec des valeursles requêtes se font sur ces champs

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 55 / 63

(My)SQL Introduction à SQL

Exemple

Table 'PersosXVI'

Nom Prenom Age Activite

CARTIER Jacques 44 Explorateur

CALVIN Jean 26 Réformateur

CHASTEL Jean 19 Assassin

PARE Ambroise 44 Chirurgien

Requête interrogativeSELECT ∗ FROM PersosXVI;

Requête sélectiveSELECT Nom, Prenom FROM PersosXVI;

Requête restrictiveSELECT ∗ FROM PersosXVI WHERE Prenom = 'Jean';

On peut complètement mélanger les types de requêtes

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 56 / 63

(My)SQL Introduction à SQL

Exemple complexe

Table 'PersosXVI'

Nom Prenom Age Activite Roi

CARTIER Jacques 44 Explorateur 3

CALVIN Jean 26 Réformateur 1

CHASTEL Jean 19 Assassin 4

PARE Ambroise 44 Chirurgien 2

Table 'RoiXVI'

Id Nom

1 Henri II

2 Charles IX

3 Francois Ier

4 Henri IV

Requête croiséeSELECT p.Nom, p.Activite FROM PersosXVI p, RoiXVI r WHERE p.Roi = r.Id AND r.Nom = 'Francois Ier'

ORDER BY p.Nom DESC;

Résultat

CARTIER Explorateur

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 57 / 63

(My)SQL Introduction à SQL

Exemple de fonctions

Table 'PersosXVI'

Nom Prenom Age Activite

CARTIER Jacques 44 Explorateur

CALVIN Jean 26 Réformateur

CHASTEL Jean 19 Assassin

PARE Ambroise 44 Chirurgien

DécompteSELECT count(∗) FROM PersosXVI;

SommeSELECT sum(Age) FROM PersosXVI;

Ce type de requête peut simpli�er le code de traitement

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 58 / 63

(My)SQL Introduction à SQL

Manipulation des données

Table 'PersosXVI'

Nom Prenom Age Activite

CARTIER Jacques 44 Explorateur

CALVIN Jean 26 Réformateur

CHASTEL Jean 19 Assassin

Requête d'insertionINSERT INTO PersosXVI(Nom, Prenom, Age, Activite) VALUES('PARE', 'Ambroise', 44, 'Chirurgien');

Requête de mise à jourUPDATE PersosXVI SET Age = 43 WHERE Nom = 'CARTIER';

Requête de suppressionDELETE FROM PersosXVI WHERE Prenom = 'Jean';

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 59 / 63

(My)SQL MySQL avec PHP

Plan

1 HTMLIntroductionTexte en HTMLListes en HTMLTableau en HTML

2 CSSUtilitéSyntaxe

3 PHPIntroductionEléments du langagePHP avec HTML

4 (My)SQLIntroduction à SQLMySQL avec PHP

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 60 / 63

(My)SQL MySQL avec PHP

Accès au serveur

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

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 61 / 63

(My)SQL MySQL avec PHP

Requêtes

Exécution$res = mysql_query("une requete", $c);

$res est false en cas d'erreur

Récupération de(s) résultat(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; ...

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 62 / 63

(My)SQL MySQL avec PHP

Fonctions annexes

mysql_num_rows($res) : retourne le nombre de résultats d'un SELECT

mysql_a�ected_rows($res) : retourne le nombre de ligne a�ectées par unINSERT, un UPDATE ou un DELETE

mysql_insert_id($c) : retourne le dernier incrément d'un champAUTO_INCREMENT

Attention aux injections SQL !

[email protected] (LORIA) Cours HTML / CSS / PHP / MySQL 12 mars 2008 63 / 63


Recommended