Académique Documents
Professionnel Documents
Culture Documents
Diapos - Web - Dynamique
Diapos - Web - Dynamique
SMI
Semestre S6
A. Zinedine
Plan du cours
Partie 1
Généralités
HTML et XHTML
CSS
Partie2
JavaScript
Partie3
PHP
Interfaçage Web/BD
A. Zinedine 2
Généralités
A. Zinedine 3
Généralités sur l’Internet
Historique d’Internet
Services d’Internet
L’Architecture Client/Serveur
A. Zinedine 4
Internet
A. Zinedine 5
Internet : Historique
A. Zinedine 6
Internet : Historique
A. Zinedine 7
Internet : Historique
1980:
ARPA commence à évoluer les
ordinateurs de ses réseaux vers TCP/IP
ARPA se met à subventionner
l’université de Berkeley pour intégrer
TCP/IP dans son système UNIX
A. Zinedine 8
Internet : Historique
A. Zinedine 9
Internet : Historique
A. Zinedine 10
Internet : Historique
A. Zinedine 11
Communication Sur Internet
A. Zinedine 12
Communication Sur Internet
A. Zinedine 13
Communication Sur Internet
A. Zinedine 14
Services d’Internet
A. Zinedine 15
Services d’Internet
A. Zinedine 16
Services d’Internet
A. Zinedine 17
Services d’Internet
A. Zinedine 18
Architecture Client/Serveur
A. Zinedine 19
Architecture Client/Serveur
A. Zinedine 20
Architecture Client/Serveur
A. Zinedine 21
Généralité sur le Web
Historique du Web
W3C
Web et Client/Serveur
Langages du Web
A. Zinedine 22
Historique du Web
A. Zinedine 23
Historique du Web
A. Zinedine 24
Historique du Web
A. Zinedine 27
W3C
A. Zinedine 29
Web et Client/Serveur
A. Zinedine 31
Structure d’une page HTML
<html>
<head>
<!-- c’est la partie entête -- >
</head>
<body>
<!-- c’est le corps du document -- >
</body>
</html>
A. Zinedine 32
La partie entête
<head>
<title> … </title>
<meta>
</head>
A. Zinedine 33
Le corps de la page
A. Zinedine 34
Attributs de <body>
A. Zinedine 36
Les caractères accentués
é = é
A. Zinedine 37
Caractères spéciaux
A. Zinedine 38
La balise <br >
A. Zinedine 39
La balise <HR>
Attributs:
Color = la couleur de la barre
Size = la hauteur de la barre(en pixel)
Width = la largeur (en pixel ou
pourcentage)
A. Zinedine 40
La balise <pre> …</pre>
A. Zinedine 41
La balise <p> … </p>
A. Zinedine 42
Les listes
A. Zinedine 43
Listes ordonnées
<OL>
1 élément 1
<Li>élément 1</Li> 2 élément 2
3 élément 3
<Li>élément 2</Li>
<Li>élément 3</Li>
</OL>
A. Zinedine 44
Attribut de <OL>
A. Zinedine 45
Listes non ordonnées
<UL>
• élément 1
<Li>élément 1</Li> •élément 2
• élément 3
<Li>élément 2</Li>
<Li>élément 3</Li>
</UL>
A. Zinedine 46
Attribut de <OL>
Type = `` squar``
Type = ``circle``
Type = ``disc``
A. Zinedine 47
Listes descriptives (<DL>…</DL>)
A. Zinedine 48
CSS
A. Zinedine 49
CSS: Pourquoi les CSS?
A. Zinedine 50
CSS: syntaxe
Exemple:
A. Zinedine 51
CSS: Types de feuilles de styles
CSS incorporées
CSS en lignes
A. Zinedine 52
CSS: Styles concernant le texte
text-indent
line-height
A. Zinedine 53
CSS:bordures,marges,remplissage
Border-width
Border-color
Border-style:
none, dotted, dashed, double, ridge, inset, outset
Margin
Margin-left, Margin-right, Margin-top, Margin-bottom
Padding
Padding-left, padding-right ,padding-top, padding-bottom
A. Zinedine 54
CSS:Couleur et image d’arrière-plan
Background-color
rgb(255,255,0)
Background-image
url(image.gif)
A. Zinedine 55
CSS: le positionnement
A. Zinedine 56
CSS: Organisation des style
En groupes:
h1, h2, h3 {color: red; font-style: italic}
En classes:
h1 {text-align : right}
h1.rouge {color: red; font-style: italic}
h1.vert {color: green; font-style: italic}
A. Zinedine 57
Javascript: Introduction
A. Zinedine 58
Javascript: Insérer du code
Le pseudo Protocole
<a href= " javascript : maFonction()">…</a>
A. Zinedine 59
Programmation de Bases
Comme en C:
Les commentaires
Variables et fonctions
Structures de contrôle
– La boucle for
– La boucle while
– La boucle do…while
– Les testes if…else
A. Zinedine 60
Le modèle Objet de javascript
A. Zinedine 61
Les objets prédéfinis
Date()
Array()
String()
Image()
Math()
A. Zinedine 62
L’objet Date()
Déclaration
var t1 = new Array();
var t2= new Array(7);
var t3= new Array(‘A’,’B’,’C’);
A. Zinedine 64
L’objet Array()
attribut
length : donne la taille du tableau
Méthodes:
concat(tableau) : concatène deux tableaux.
sort( ) : trie le tableau.
joint (séparateur) : retourne une chaîne de caractères contenant
les éléments du tableau séparés par la chaîne séparateur.
reverse( ) : retourne en résultat le tableau inversé.
slice(début, fin) : retourne le sous-tableau [début, fin-1] du
tableau donné.
A. Zinedine 65
L’objet String()
Déclaration
var maChaine = new String ( ) ;
attribut
length : donne la longueur de la chaîne
A. Zinedine 66
L’objet String()
Méthodes:
charAt(value) : renvoie le caractère situé à la position spécifiée
indexOf(string) : renvoie la position de la première occurrence
de la chaîne passée en paramètre.
lastIndexOf(string) : renvoie la position de la dernière
occurrence de la chaîne passée en paramètre.
substring(value1,value2) : retourne la sous chaîne commençant
à la position value1 et finissant à la position value2.
toLowerCase( ) : met la chaîne considérée en minuscule.
toUpperCase() : met la chaîne en majuscule.
A. Zinedine 67
L’objet Math()
Méthodes:
Math.abs(value) : valeur absolue
Math.sin(value) : calcule le sinus d’un angle (en radian).
Math.cos(value) : calcule le cosinus d’un angle (en radian).
Math.tan(value) : calcule la tangente d’un angle (en radian).
Math.acos(-1..1) : l'arc-cosinus d’un nombre compris entre -1 et 1
Math.asin(-1..1) : l'arc-sinus du nombre (entre 1 et -1).
Math.atan(-π/2.. π /2) : calcule l'arc-tangent d’un nombre passé e
paramètre (entre - π /2 et π /2).
A. Zinedine 68
L’objet Math()
Méthodes:
Math.PI : retourne la valeur de π (~3.141592654).
Math.E : retourne la valeur mathématique e (~2.71828).
Math.exp(value) : calcule la valeur exponentielle de « value ».
Math.log(value) : calcule le logarithme de « value ».
Math.max(value1,value2) : retourne le max.
Math.min(value1,value2) : retourne le min.
Math.pow(value,exponent) : calcule la valeur : valueexponent.
Math.random() : retourne une valeur aléatoire entre 0 et 1.
Math.floor(value) : retourne l'entier le plus proche par défaut.
Math.round(value) : retourne l'entier le plus proche.
Math.sqrt(value) : calcul la racine carrée. 69
A. Zinedine
L’objet Image()
Déclaration
var monImage = new Image( ) ;
Attributs
Src : la source de l’image (l’adresse du fichier image).
Height : hauteur de l’image en pixels.
Width : largeur de l’image en pixels.
Complete : valeur booléenne qui permet de tester si le
chargement de l’image est terminé.
A. Zinedine 70
Les Objets du navigateur
Plugins
elements
navigator
mimeType (==button)
(==text)
images
(==password
)
window document forms (==hidden)
(==checkbox
links
)
(==radio)
history (==textarea)
A. Zinedine 71
Les Objets du navigateur
window
history
document
images[]
links[]
forms[]
elements
A. Zinedine 72
PHP
Introduction
Débuter avec PHP
Eléments de la programmation de base en PHP
Quelques fonctions utiles de PHP
Passage de paramètres entre scripts
Accès aux bases de données
A. Zinedine 73
PHP: Introduction
A. Zinedine 74
PHP: Débuter avec PHP
A. Zinedine 77
PHP: Débuter avec PHP
A. Zinedine 79
PHP: Débuter avec PHP
A. Zinedine 80
PHP: Débuter avec PHP
Premier Script PHP :
Enregistrez ce fichier dans le répertoire public sous le nom
script1.php.
A. Zinedine 81
PHP: Débuter avec PHP
Premier Script PHP :
Vérifiez que EasyPHP est démarré.
Lancez le navigateur et tapez dans la barre d’adresse :
http://localhost:8080/script1.php
A. Zinedine 82
PHP: Débuter avec PHP
Premier Script PHP :
Consultez le code source dans le navigateur:
Il n’a reçu que du code HTML
Le code PHP est exécuté chez le serveur, seul le résultat est
envoyé au navigateur
A. Zinedine 83
PHP: Débuter avec PHP
Premier Script PHP :
Code équivalent:
A. Zinedine 84
Eléments de la programmation de base de PHP
Les commentaires
Déclaration des variables
Les constantes
Les fonctions
Structures de contrôle
La boucle for
La boucle foreach
La boucle while
La boucle do…while
Les tests : If …else…
switch, break, continue,…
A. Zinedine 85
Eléments de la programmation de base de PHP
Les commentaires
A. Zinedine 86
Eléments de la programmation de base de PHP
Déclaration des variables
les identificateurs des variables sont précédés par « $ ».
les identificateurs des variables sont sensibles à la casse.
Pour créer une nouvelle variable, il suffit de lui affecter une valeu
le programmeur n’a pas à déclarer les variables ni leurs types
PHP reconnaît le type d’une variable dès la première affectation.
Le type d’une variable en PHP peut changer de type dans un
même script : il prend toujours le type de l’expression affectée à
cette variable.
A. Zinedine 87
Eléments de la programmation de base de PHP
Déclaration des variables
A. Zinedine 88
Eléments de la programmation de base de PHP
Les constantes
On définit une constante par la fonction define()
Les identificateurs des constantes ne sont pas sensibles à la
casse
Le valeur d’une constante ne peut pas changer lors de l’exécutio
A. Zinedine 89
Eléments de la programmation de base de PHP
Les fonctions
Les identificateurs des fonctions ne sont pas sensibles à la cass
A. Zinedine 90
Eléments de la programmation de base de PHP
Structures de contrôle
La boucle for
A. Zinedine 91
Eléments de la programmation de base de PHP
Structures de contrôle
La boucle foreach pour parcourir les tableaux
A. Zinedine 92
Eléments de la programmation de base de PHP
Structures de contrôle
La boucle while
A. Zinedine 93
Eléments de la programmation de base de PHP
Structures de contrôle
La boucle do…while
A. Zinedine 94
Eléments de la programmation de base de PHP
Structures de contrôle
Les tests : If …else…
A. Zinedine 95
Quelques fonctions utiles de PHP
1. Fonctions pour l’affichage
2. fonctions pour la gestion des variables
3. Chaînes de caractères
4. Tableaux
Accès aux éléments d’un tableau
Parcours des tableaux
Autres fonctions pour la gestion des tableaux
Tableaux associatifs
Parcours des tableaux associatifs avec foreach
A. Zinedine 96
Quelques fonctions utiles de PHP
5. Date et heure
6. Mathématiques
7. Inclusion des fichiers
8. Arrêt prématuré
9. Accès aux fichiers et aux dossiers
10. Expressions régulières
11. Mail
12. Variables d’environnement et constantes PHP
13. Entêtes HTTP
14. Cookies
15. Sessions
A. Zinedine 97
1. Fonctions pour l’affichage
echo () , print () , printf()
A. Zinedine 98
2. fonctions pour la gestion des variables
getType($V) , setType($V,$type), is_integer($V), is_string($V) , is_long(),
is_double(), is_bool(), is_float(),…
A. Zinedine 99
2. fonctions pour la gestion des variables
empty($V), isset($V), unset($V)
A. Zinedine 100
3. Chaînes de caractères
Mettre une chaîne entre simples ou doubles quottes:
A. Zinedine 101
3. Chaînes de caractères
strlen($S) : retourne la longueur de la chaîne $S.
strtolower($S): transforme $S en minuscules.
strtoupper($S) : transforme la chaîne $S en majuscules.
trim($S) : supprime les espaces au début et enfin de la chaîne $S
substr($S,$i,$j) : retourne la sous-chaîne de $S qui commence à
position $i et qui contient $j caractères.
strnatcmp($S1,$S2) : compare les deux chaînes $S1 et $S2.
addslaches($S) : déspécialise les caractères spéciaux dans $S.
ord($C) : retourne le code ASCII du caractère $C.
A. Zinedine 102
4. Tableaux
Initialisation des tableaux
Pour créer un tableau, on peut utiliser la fonction array() :
$etudiant = array("Omari","Omar",22, 066334455) ;
$jours = array("dimanche","lundi","mardi",…,"samedi") ;
Ou en entrant directement les éléments du tableau :
$jours[] = "dimanche" ; $jours[] = "lundi" ; $jours[] = "mardi" ;…
Ou encore :
$jours[0] = "dimanche" ; $jours[1] = "lundi" ; $jours[2] = "mardi" ;…
A. Zinedine 103
4. Tableaux
Accès aux éléments d’un tableau
A. Zinedine 104
4. Tableaux
Parcours des tableaux
A. Zinedine 105
4. Tableaux
Autres fonctions pour la gestion des tableaux
count($t) et sizeof($t) : donnent la taille d’un tableau $t.
in_array($v ,$t) : vérifie si la valeur de $v existe dans le tableau
list($v1,$v2,$v3,…) : transforme une liste de variable en tablea
sort($t) : trie le tableau (ordre alphanumérique croissant).
rsort($t) : trie le tableau (ordre alphanumérique décroissant).
implode($s,$t) et join($s,$t) : fait la jointure des éléments du
tableau par la chaîne $s.
array_merge($t1,$t2,$t3,…) : concatène les tableaux passés en
arguments.
array_rand($t) : renvoi un élément du tableau aléatoirement.
A. Zinedine 106
4. Tableaux
Tableaux associatifs
Au lieu d’accéder à un élément par son indice, on accède par une clé :
$tableau["clé"] au lieu de $tableau[i]
A. Zinedine 107
4. Tableaux
Tableaux associatifs
On peut aussi créer le tableau sans utiliser la fonction array() :
A. Zinedine 108
4. Tableaux
Parcours des tableaux associatifs avec foreach
A. Zinedine 109
4. Tableaux
Parcours des tableaux associatifs avec foreach
A. Zinedine 110
5. Date et heure
getdate() : retourne un tableau associatif contenant la date et l’heure.
Dans les exemples, on suppose que la date est dimanche 6 mai 2007 à 03h30mn15s
On crée un tableau $t dans lequel on stocke le résultat de getDate() comme suit :
$t = getDate() ;
Clé Signification Exemple
seconds Secondes $t["seconds"] donne : 15
minutes Minutes $t ["minutes"] donne : 30
hours Heures $t ["hours"] donne : 3
mday Jour du mois de 1 à 31 $t ["mday"] donne : 6
wday Jour de la semaine de 0 à 6 $t ["wday"] donne : 0
mon Mois de l’année de 1 à 12 $t ["mon"] donne : 5
year Année sur 4 chiffres $t ["year"] donne : 2007
yday Jour de l’année de 0 à 365 $t ["yday"] donne : 125
weekday Jour de la semaine, textuel,anglais $t ["wekday"] donne : Sunday
month Mois, textuel, complet, en anglais $t ["month"] donne : May
A. Zinedine 111
5. Date et heure
getdate() : retourne un tableau associatif contenant la date et l’heure.
A. Zinedine 112
6. Mathématiques
Constantes :
M_PI : la valeur de pi (3.1415926535898)
M_E : la valeur de e (2.718281828459)
Fonctions
abs($x) : retourne la valeur absolue de $x
ceil($x) retourne l’entier n le plus proche à $x tel que $x <= n.
floor($x) la partie entière de $x.
pow($x,$y) $x à la puissance $y
max($a,$b,$c,…) : retourne l’argument de valeur maximale.
...
A. Zinedine 113
6. Mathématiques
Nombres aléatoires
Vous pouvez générer des nombres aléatoires en se basant sur la
fonction rand() ou la fonction mt_rand() :
rand($x,$y) : retourne un nombre aléatoire entre $x et $y.
Si $x et $y sont absent, le nombre aléatoire généré est entre 0 et
RAND_MAX (le nombre le plus grand que rand() peut générer).
getRandMax() : retourne la valeur de RAND_MAX.
srand : réinitialise le générateur de nombre aléatoire.
mt_rand, mt_getRandMax() et mt_setrand() font la même chose,
mais beaucoup plus rapidement et plus sûrement.
A. Zinedine 114
7. Inclusion des fichiers
include()
require()
require_once()
A. Zinedine 115
8. Arrêt prématuré
die("message") : affiche un message puis arrête le script.
exit() : arrête le script sans afficher de message.
A. Zinedine 116
9. Accès aux fichiers et aux dossiers
fopen($file,$mode) : ouvre le fichier $file avec le mode $mode et
retourne son $id (ou false si erreur).
"r" : ouvrir le fichier en lecture seule
"r+" : ouvrir le fichier en lecture/écriture
"w" : écriture seule (le fichier est créé s’il n’existe pas).
"w+" : lecture/écriture (le fichier est créé s’il n’existe pas).
"a" : création et écriture seule (pointeur placé en fin de fichier
"a+" : création et lecture/écriture (pointeur placé à la fin)
fclose($id) : ferme le fichier dont l’identificateur est $id.
A. Zinedine 117
9. Accès aux fichiers et aux dossiers
fgetc($id) : lit un seul caractère du fichier identifié par $id.
fgets($id) : lit une ligne du fichier identifié par $id.
fputs($id,$s) : écrit la chaîne $s dans le fichier identifier par $id.
feof($id) : teste la fin du fichier $id.
copy($source, $destination) : copie un fichier dans un autre.
readfile($fichier) : affiche le contenu texte du fichier nommé
$fichier.
A. Zinedine 118
9. Accès aux fichiers et aux dossiers
file_exists($fichier) : teste si le fichier dont le nom est $fichier
existe ou non.
filesize($fichier) donne la taille du fichier $fichier.
filetype($fichier) : donne le type de $fichier (i.e. : file pour un
fichier, dir pour un répertoire)
rename($ancien, $nouveau) : renomme un fichier.
unlink($fichier) : supprime le fichier nommé fichier.
A. Zinedine 119
9. Accès aux fichiers et aux dossiers
chdir($dossier) : change le dossier courant en le dossier passé
en argument.
getcwd() : retourne le nom du dossier courant.
opendir($dossier) : ouvre $dossier et retourne un pointeur $p
sur ce dossier si OK et false si erreur (pour échapper:
@opendir() ne signale pas d’erreur).
closedir($p) : ferme un pointeur $p déjà ouvert par opendir().
readdir($p) : lit une entrée du dossier identifié par le pointeur $p
(il retourne le nom d’un fichier ou d’un dossier parmi ceux
contenus dans le dossier ouvert. S’il n’ y a plus d’entrée, elle
retourne false.
rewinddir($p) : pointe à nouveau sur la première entrée dans le
dossier identifié par $p.
A. Zinedine 120
10.Expressions régulières
C’est un outil très puissant pour la recherche d’un motif donné dans
une chaîne de caractères.
Quelques fonctions:
preg_match($motif,$ch) : teste si la chaîne $ch contient le motif
$motif.
preg_replace($motif,$newS, $ch): remplace toutes les
occurrences de $motif dans la chaîne $ch par la chaîne $newS.
preg_split($motif, $ch) : retourne un tableau contenant les sous-
chaînes de la chaîne $ch délimitées par le motif $motif.
A. Zinedine 121
11.Mail
La fonction mail permet d’envoyer des email a partir d’un script
PHP (il faut disposer de l’accès à un serveur de messagerie et
configurer php.ini pour l’utiliser )
A. Zinedine 122
12.Variables d’environnement et constantes PHP
$S_ERVER["PHP_SELF"] : stocke le nom du script en cours
d’exécution.
$_SERVER["HTTP_USER_AGENT"] : stocke la signature du
navigateur qui demande le script.
$_SERVER["REMOTE_ADDR"] : adresse IP du client. Ainsi
l’auteur du script peut savoir de quelle adresse IP se connecte
le client.
$_SERVER["HTTP_REFERER"] : Stocke l’url de la page qui a
renvoyé le client sur ce script (par exemple, une autre page qui
contient un lien vers le script , un moteur de recherche qui a
renvoyé l’adresse suite à une recherche…Le développeur peut
ainsi savoir qu’il est le « chemin » le plus utilisé pour accéder à
ces pages.)
A. Zinedine 123
12.Variables d’environnement et constantes PHP
A. Zinedine 124
13.Entêtes HTTP
A. Zinedine 125
14.Cookies
Les cookies sont des petits fichiers texte envoyés par le serveur
en vue de les stocker sur le disque dur du client.
Ces fichiers contiennent principalement le nom d’une variable et
sa valeur.
Lorsque le navigateur effectue ultérieurement une autre
connexion, il envoie au serveur cette variable et sa valeur.
Ainsi, le serveur prend en considération cette variable.
A. Zinedine 126
14.Cookies
Exemple:
On veut offrir aux utilisateurs de la page la possibilité de choisir
leur couleur préférée d’arrière-plan.
on demande alors à l’utilisateur de choisir sa couleur préférée et
on stocke son choix dans un cookie sur son disque dur.
Au début de chaque connexion, le client envoie ce cookie au
serveur. Et ainsi la page et envoyé avec la couleur choisie :
A. Zinedine 127
15.Sessions
A. Zinedine 128
15.Sessions
Exemple:
Variable $nom
Non reconnue
A. Zinedine 129
15.Sessions
Exemple 2:
A. Zinedine 130
15.Sessions
Exemple 2:
Variable $preno
Non reconnue
A. Zinedine 131
15.Sessions
Exemple 2:
Variables
Non reconnues
A. Zinedine 132
Passage de paramètres entre scripts
A. Zinedine 133
Passage des données avec la méthode POST
Exemple:
Nous voulons demander aux utilisateurs leurs noms et prénoms.
Pour cela on crée un formulaire:
A. Zinedine 134
Passage des données avec la méthode POST
A. Zinedine 135
Passage des données avec la méthode POST
A. Zinedine 136
Passage des données avec la méthode GET
A. Zinedine 137
Passage des données avec la méthode GET
Exemple (suite)
A. Zinedine 138
Passage des données avec la méthode GET
Exemple (suite)
A. Zinedine 139
Passage des données avec la méthode GET
Exemple (suite)
Code du script Welcome2.php ($_GET au lieu de $_POST):
A. Zinedine 140
Accès aux bases de données
A. Zinedine 141
Création de Bases de données et de tables
A. Zinedine 142
Création de Bases de données et de tables
A. Zinedine 143
Création de Bases de données et de tables
A. Zinedine 144
Création de Bases de données et de tables
A. Zinedine 145
PHP Data Objects (PDO)
Deux API PHP pour s’interfacer avec les SGBD (MysQLi et PDO)
PDO fonctionnera sur 12 systèmes de base de données différents,
alors que MySQLi ne fonctionnera qu'avec MySQL.
L’extension PDO : Acronyme pour PHP Data Objects.
Cette API offre un moyen simple et cohérent pour accéder aux
différentes bases de données (donc code portable).
Avec PDO, il suffit de changer la chaîne de connexion dans votre
code pour migrer d’un SGBD à un autre, tout le reste du code reste
intact.
A. Zinedine 146
PHP Data Objects (PDO)
A. Zinedine 147
Connexion à la base de données
A. Zinedine 148
Connexion à la base de données
Exemple:
A. Zinedine 149
Manipuler les données: insert
A. Zinedine 150
Manipuler les données: update
A. Zinedine 151
Manipuler les données : delete
A. Zinedine 152
Manipuler les données
A. Zinedine 153
Manipuler les données
A. Zinedine 154
Afficher le résultat d’une requête
A. Zinedine 155
Afficher le résultat d’une requête
Exemple: Nous voulons afficher la liste des étudiants comme suit:
A. Zinedine 156
Afficher le résultat d’une requête
Améliorer l’exemple (ajouter les liens Modifier et Supprimer) :
A. Zinedine 157
Afficher le résultat d’une requête
Améliorer l’exemple (ajouter les liens Modifier et Supprimer) :
A. Zinedine 158
Afficher le résultat d’une requête
Améliorer l’exemple (ajouter les liens Modifier et Supprimer) :
A. Zinedine 159
Afficher le résultat d’une requête
Améliorer l’exemple (code du script supprimer.php):
A. Zinedine 160
FIN
A. Zinedine 161