2015 01 04 TP PHP
2015 01 04 TP PHP
2015 01 04 TP PHP
Mots-clés du Support
Ceci est un travail réalisé au sein du département informatique de l’ISET du Kef qui a pour
objectif principal de mettre à la disposition des étudiants des ISETs orientés vers les filières
« informatique de gestion » et « réseau informatique », un support d'assistance permettant aux
étudiants de se familiariser pas à pas avec quelques éléments indispensables de la
programmation web.
Ce document contient une suite de travaux pratiques guidés et détaillés sur le développement
web et qui font partie du cours « Multimédia et développement web».
Dans ce document, nous avons opté pour des thèmes dont la répartition se présente comme
suit :
Partie I : HTML
Les concepts de base du HTML
Les tableaux et les frames
Les formulaires
Les fiches HTML
Partie II : Java Script
Les concepts de base du Java Script
Programmer en Java Script
Partie III : PHP
Cours PHP
Introduction au PHP
PHP et BD
Multimédia et Développement Internet
Sommaire
Fiche de présentation 5
Tailles de polices 27
Séparateurs 27
Listes 28
Styles 29
Images 30
Formulaires 32
Les opérateurs 36
Les fonctions 37
Les conditions 39
Afficher du texte 42
Les événements 43
Les formulaires 45
L'objet String 48
L'objet Math 48
L'objet Date 48
3/81
Multimédia et Développement Internet
L'objet Array 49
I- Introduction 58
1. Définition 58
3. Variables 60
4. Conditions et boucles 61
5. Tableaux 64
7. Fonctions Prédéfinies 67
4/81
Multimédia et Développement Internet
Fiche de Présentation
Objectifs du cours
Présenter les principaux concepts de base des langages Html, Java Script et PHP.
Amener les étudiants à construire de petites site selon le principe de la programmation
orienté web, c’est-à-dire en s’appuyant sur la répartition des tâches entre le serveur et le
client.
Évaluations
Test N°1 d’une heure.
Devoir surveillé d’une heure.
Test N°2 d’une heure.
Examen final écrit de 2 heures sur tout le programme.
Examen TP.
Projet.
Moyens Pédagogiques
Support de cours papier.
Support de cours numérique.
Série de travaux pratiques.
5/81
Multimédia et Développement Internet
Etudier le langage PHP. A partir des notes de cours et L’étudiant doit être capable
les TPs l’étudiant devrait être d’écrire correctement une
capable de connaître les page web utilisant des balises
différents concepts du PHP. PHP.
Connaître le principe de A partir des notes de cours et L’étudiant doit être capable
manipulation des bases de les Tps l’étudiant devrait être de se connecter à une base de
données par le php. capable de connaître l’utilité données pour la gérer.
de base de données. En outre,
il devrait être capable
d’utiliser le PHP pour
supprimer, modifier,
consulter et ajouter des
données de la base.
6/81
Concepts de base du
HTML
Objectifs
Enoncé du TP :
Multimédia et Développement Internet
TP 1
Concepts de base du HTML
Avant propos
Première chose importante à savoir sur HTML est la signification de ces quatre initiales : Hyper
Text MarkUp Language.
HTML est un langage de description (et non pas un langage de programmation) qui va nous
permettre de décrire l'aspect d'un document, d'y inclure des informations variées (textes, images,
sons, animations etc.) et d'établir des relations cohérentes entre ces informations grâce aux liens
hypertextes.
Les avantages du langage HTML sont nombreux :
peux coûteux en effet un simple éditeur de texte suffit à écrire ses premiers documents
HTML
relativement facile à aborder,
il représente en outre un bon moyen de dépasser les problèmes de compatibilité entre
les systèmes et les formats informatiques différents.
La description d'un document HTML passe par l'utilisation de BALISES (ou "TAGS" en
anglais). Une balise est délimitée par les signes "<" et ">" entre lesquels figure le nom de la
balise. Par exemple, la balise de retour à la ligne est <BR> La plupart du temps, on utilise une
balise de début et une balise de fin, qui définissent les propriétés de l'intervalle.
Allure d’un fichier HTML ou squelette d’un fichier HTML
<!-- commentaire -->
<HTML>
<HEAD>
</HEAD>
<BODY>
</BODY>
</HTML>
Commentaires
Les commentaires peuvent être placés n'importe où dans un document HTML à condition de ne
pas être imbriqués. Ils sont placés entre les chaînes de caractère <!-- et -->.
HTML
C’est le premier marqueur ou tag que l’on trouve dans un document HTML. Tout le document
qui sera écrit par la suite (texte ou marqueur) sera compris entre le tag <HTML> et </HTML>.
Exemple : <HTML> Document à écrire </HTML>
8/81
Multimédia et Développement Internet
En-tête <HEAD>
L'en-tête du document est réservé aux méta-informations (les informations relatives au
document) comme son titre. Ces méta-informations doivent être placées entre les tags <HEAD>
de début et </HEAD> de fin.
Dans l'en-tête, on trouvera les commandes suivantes :
TITLE (la seule véritablement essentielle- voir ci-dessous)
ISINDEX indique au logiciel client que le document est un écran permettant une
saisie pour interroger un programme externe (Programme CGI), (Servait à l’origine du
HTML aux browser à envoyer de l’info.-Les formulaires ont simplifiés tout),
BASE permet d'indiquer une adresse de base qui complétera tous les chemins
relatifs,
LINK (Indique un lien entre le présent document et un autre) ; très rarement utilisé.
NEXTID (Indique le document suivant – considéré actuellement comme obsolète-)
META donne des informations sur le document au serveur. Ces informations sont
généralement :
<META NAME=...> le nom,
<META AUTHOR=....> le nom de l'auteur,
<META CONTENT=….> ,
<META NEXTID=….>un identifiant.
<BASEFONT SIZE = n> ou n prend les valeurs 1 à 7.Cette commande fixe la taille
de la police de caractères (par défaut : 3) 1, petits caractères … 7, gros caractères.
PROMPT=texte, permet d'afficher le texte comme message pour <ISINDEX>.
Titre <TITLE>
<TITLE> Titre </TITLE>
Chaque document HTML, pour être correct, doit disposer d'un titre. Le titre apparaît le plus
souvent dans la barre de titre du navigateur Web. Son but est de pouvoir identifier le document
dans un ensemble plus large. Le titre d'un document HTML sert aussi lorsqu'un navigateur
World Wide Web dispose d'une fonction “hotlist” ou “bookmark” pour fournir un accès rapide à
vos documents favoris. Le titre est limité à 64 caractères y compris les espaces et ne doit
normalement contenir que les 128 premiers caractères ASCII (pas de caractères accentués)
Corps du document <BODY>
Le corps du document, ce qui sera effectivement affiché par le navigateur Web, est balisé par les
commandes :
<BODY> et </BODY>
9/81
Multimédia et Développement Internet
Exercices
Exercice 1 :
Commenter la présentation dans un navigateur Web du document suivant :
<HTML>
<HEAD>
<TITLE>essai n° 1</TITLE>
</HEAD>
<BODY>
Ceci est le premier essai
</BODY>
</HTML>
10/81
Multimédia et Développement Internet
Exercice 3 (Séparateurs)
Ecrire puis interpréter le document suivant :
<HTML>
<HEAD>
<TITLE>essai n° 3</TITLE>
</HEAD>
<BODY>
<H4>
HR<HR>
HR WIDTH="75%"
<HR WIDTH="75%">
HR WIDTH="25%"
<HR WIDTH="25%">
HR WIDTH="50%" & SIZE=5
<HR WIDTH="50%" SIZE=5>
HR WIDTH="50%" & SIZE=20
<HR WIDTH="50%" SIZE=20>
HR WIDTH="50%" & SIZE=5 ALIGN=LEFT
HR WIDTH="50%" & SIZE=5 <HR WIDTH="50%" SIZE=5
ALIGN=LEFT>
HR WIDTH="50%" & SIZE=5 ALIGN=LEFT NOSHADE
HR WIDTH="50%" & SIZE=5 <HR WIDTH="50%" SIZE=5
ALIGN=LEFT NOSHADE>
</H4>
</BODY>
</HTML>
Remarque :
<BR> Cette commande impose la coupure d'une ligne de texte en rejetant ce qui suit à la
ligne suivante.
<HR> pour une ligne horizontale de séparation :
WIDTH fait varier la largeur de la ligne en % soit en pixel (valeur par défaut
100%)
SIZE fait varier l'épaisseur de la ligne en pixel (valeur par défaut 1)
ALIGN fait un alignement de la ligne suivant les 3 possibilités :
CENTER par rapport au centre de la fenêtre,
LEFT par rapport à la gauche de la fenêtre,
RIGHT par rapport à la droite de la fenêtre.
NOSHADE Lorsqu'il est présent dans le marqueur <HR> l'effet est une ligne
pleine sans ombrage.
11/81
Multimédia et Développement Internet
Exercice 6 (Styles) :
Commentez les documents suivants :
<HTML> <HTML> <HTML>
<HEAD> <HEAD> <HEAD>
<TITLE>Les commandes de styles <TITLE>Centrage de <TITLE>texte préformaté</TITLE>
physiques</TITLE> texte</TITLE> </HEAD>
</HEAD> </HEAD> <BODY>
<BODY> <BODY> enseignements :<BR><BR>
<I> met le texte en <CENTER> <PRE>
italique.</I><BR> <H1>I.U.T. MATIERES PROFESSEUR NB d'heures
<B> met le texte en gras.</B><BR> d'Amiens</H1><BR> -------------------------------------
<TT> pour l'utilisation d'une <H3>Promotion Visual Basic B. Mahric 40
police 1998/1999</H3><BR> Réseaux E. Brassart 32
à chasse fixe (encombrement des Cours HTML C++ L.Delahoche 32
caractères constant).</TT><BR> </CENTER> </PRE>
<U> souligne le texte.</U><BR> <BODY> <BODY>
<S> barre le texte.</S><BR> <HTML> <HTML>
normal<SUB> indice. </SUB><BR>
normal<SUP> exposant. </SUP><BR>
<BODY>
<HTML>
12/81
Multimédia et Développement Internet
Remarques :
L'utilisation de différents styles de polices de caractères permet de varier la présentation
d'un texte. En HTML, on peut utiliser des styles logiques où le nom du style indique la nature du
fragment de texte à écrire dans ce style ou des styles physiques où le nom du style indique
explicitement le style de police que l'on souhaite voir utiliser.
Styles de caractères :
Les commandes de styles sont les suivantes :
<I> texte </I> met le texte en italique.
<B> texte </B> met le texte en gras.
<TT> texte </TT> pour l'utilisation d'une police à chasse fixe (encombrement des
caractères constant).
<U> texte </U> souligne le texte.
<S> texte </S> barre le texte.
<SUB> texte </SUB> indice.
<SUP> texte </SUP> exposant.
13/81
Les Tableaux et les
Frames
Objectifs
Enoncé du TP :
Multimédia et Développement Internet
TP 2
Les Tableaux et les Frames
Avant propos
Comme les listes, les tableaux utilisent plusieurs balises imbriquées :
Un tableau commence toujours par une balise <TABLE> et se termine par une balise
</TABLE>.
Les balises <TR> et </TR> signalent le début et la fin d’une ligne (Cette balise crée une
ligne dans un tableau). <tr> = Table Row
Les balises <TD> et </TD> indiquent le début et la fin d’une cellule (Cette balise crée
des cellules individuelles dans les lignes du tableau). <td> = Table Data
Les balises <TD> sont toujours contenues dans les balises <TR>, elles-mêmes à
l’intérieur des balises <TABLE>.
Exercices
Exercice 1 :
Utiliser la balise <PRE> pour faire afficher le logo suivant :
Exercice 2
1. Tapez le texte suivant :
<html> <head> <title> table 1 </title></head>
<body>
<table>
<tr> <td>Nom</td><td>Prenom</td><td>Groupe</td></tr>
<tr> <td>Nom 1</td><td>Prenom 1</td><td>Groupe 1</td> </tr>
<tr><td>Nom 2</td> <td>Prenom 2</td><td>Groupe 2</td></tr>
<tr> <td>Nom 3</td> <td>Prenom 3</td> <td>Groupe 3</td></tr>
<tr><td>Nom 4</td><td>Prenom 4</td> <td>Groupe 4</td></tr>
<tr><td>Nom 5</td><td>Prenom 5</td> <td>Groupe 5</td></tr>
</table>
</body>
</html>
2. Remplacez <td>Nom</td><td>Prenom</td><td>Groupe</td> par <th>Nom</th>
<th>Prenom</th> <th>Groupe</th> et visualisez le résultat.
3. Remplacez <table> par <table border=1> et visualisez le résultat.
4. Remplacez <table> par <table border=20 cellspacing=10 bgcolor="white"> et visualisez
le résultat
15/81
Multimédia et Développement Internet
5. Remplacez <table> par <table border=20 cellspacing=10 bgcolor="white"
cellpadding=10> et visualisez le résultat
6. Modifiez le texte entre <body> et </body> comme suit et visualisez le résultat.
<table border=1>
<tr><th>Nom</th><th>Prenom</th><th>Groupe</th></tr>
<tr><td>Nom 1</td><td>Prenom 1</td><td rowspan=2>Groupe 1</td></tr>
<tr><td>Nom 2</td><td>Prenom 2</td></tr>
<tr><td>Nom 3</td><td>Prenom 3</td><td rowspan=3>Groupe 2</td></tr>
<tr><td>Nom 4</td><td>Prenom 4</td></tr>
<tr><td>Nom 5</td><td>Prenom 5</td></tr>
</table>
7. Remplacez <td rowspan=2> par <td rowspan=2 valign="top"> et <td rowspan=3> par
<td rowspan=3 valign="bottom"> et visualisez le resultat.
8. Remplacez <tr><th>Nom</th><th>Prenom</th><th>Groupe</th></tr> par <tr
bgcolor="yellow"><th bgcolor= "red">Nom</th><th>Prenom</th> <th>Groupe</th>
</tr> et visualisez le résultat.
9. Remplacez <td rowspan=2 valign="top"> par <td rowspan=2 bgcolor="blue"> et <td
rowspan=3 valign="bottom"> par <td rowspan=3 bgcolor="green"> et visualisez le
résultat.
10. Modifiez le texte entre <body> et </body> comme suit et visualisez le résultat. <table
border=1><tr><th>Nom</th><td>Nom1</td><td>Nom2</td><td>Nom3</td><td>Nom
4</td><td>Nom5</td></tr><tr><th>Prenom</th><td>Prenom 1</td><td>Prenom
2</td><td>Prenom3</td><td>Prenom4</td><td>Prenom5</td></tr><tr><th>Groupe</t
h><td colspan=2>Groupe 1</td><td colspan=3>Groupe2</td></tr></table>
11. Remplacez <td colspan=2> par <td colspan=2 align="right"> et <td colspan=3> par <td
colspan=3 align="center"> et visualisez le résultat.
12. Ajoutez après <table border=1> ceci : <caption> <b>Liste des groupes</b></caption> et
visualisez le résultat.
13. Remplacez <table border=1> par <table border=1 width="50%"> et visualisez le
résultat.
14. Remplacez <table border=1 width="50%"> par <table border=1 width="50%"
height="80%"> et visualisez le résultat.
15. Remplacez <table border=1 width="50%" height="80%"> par <table border=1
width="50%" height="80%" align="center"> et visualisez le résultat.
16/81
Multimédia et Développement Internet
Exercice 3 :
Donnez les codes HTML permettant d’obtenir les tables suivantes :
Exercice 4 :
Construire la page entete.html en incluant l’image gif et un fond d’écran image.
Insérer l’image (ANIM_BOUSOLE.GIF dans le dossier images) ;
puis ajouter le fond (FOND_GRIS.JPG toujours dans images).
17/81
Multimédia et Développement Internet
Exercice 5 :
Construire la page tablo.html (dans web) en fonction du modèle suivant :
Insérer l’image (ANIM_NOMBRE.GIF dans le dossier images) ;
puis ajouter le fond de votre choix (toujours stocké dans images).
Exercice 6 :
Construire la page adresse.html (dans files) :
Insérer l’image (ANIM_EMAIL06.GIF dans le dossier images), vous établirez un lien
sur votre propre adresse e_mail (si vous en avez une ou vers une adresse fictive) ;
Puis ajouter le fond (FOND_CIRCUIT.GIF toujours dans images) ;
Vous établirez un lien messagerie à votre adresse sur le texte.
Exercice 7 :
Construire la page retour.html (dans files) :
Insérer l’image (ANIM_INFO1.GIF dans le dossier image).
Etablir un lien permettant l’appel du fichier exo1.html à partir du texte ‘vers EXO1’,
puis établir le lien inverse vers retour.html à partir du texte ‘vers retours’.
18/81
Multimédia et Développement Internet
Exercice 8 :
Construire la page cadre.html (dans web) :
La partie haute portera le nom de ‘ENTETE’ ;
La partie centrale de gauche portera le nom de ‘CORPS’ et celle de droite ‘RETOUR’
La partie basse portera le nom de ‘ADRESSE’ ;
Les divisions horizontales seront de 30%,45%, et 25% ;
Les divisions verticales seront de 80% et 20%.
19/81
Les Formulaires
Objectifs
Enoncé du TP :
Multimédia et Développement Internet
TP 3
Les Formulaires
Avant propos
La commande Form
Des formulaires peuvent être préparés afin de saisir des données et les traiter au niveau du
serveur.
Le type text est un champ ou l'usager entre de l'information sur son clavier, dans une zone
définie à l'écran.
La commande INPUT="RADIO "
Un autre type de champ est le type "input type=radio" qui permet d'afficher une série de
boutons radio comme choix de réponses.
Il suffit d'abord de poser la question puis de positionner la commande suivante:
<input type="radio" name="info" value="OUI">OUI
<input type="radio" name="info" value="NON">NON
21/81
Multimédia et Développement Internet
La commande INPUT=CHECKBOX
La commande input Type=checkbox permet d'afficher une liste où plusieurs choix sont
possibles en même temps. La commande s'écrit:
La commande TEXTAREA
La commande HTML utilisée est:
<TEXTAREA name="nom_du_champ?" rows=n cols=m></TEXTAREA>
Dans ce type, on spécifie d'abord le type soit textarea, ensuite le nom de la rubrique soit name="
nom_du_champ" puis les paramètres d'affichage de la zone de dialogue en rangées (n) et en
colonnes (m).
<TEXTAREA name="zone_libre" rows=5 cols=40></TEXTAREA>
La commande INPUT=submit
Les formulaires doivent être complétés avant fermeture par une commande permettant
d'envoyer le contenu des champs remplis au serveur HTTP.
Cette commande s'écrit :
<input type="submit" value="Soumettre">
22/81
Multimédia et Développement Internet
Exercices
Exercice 1 :
Écrire un formulaire « calculatrice » : 2 cases pour la saisie des opérandes, un groupe de 4 cases
à cocher (ou une liste déroulante) pour le choix de l'opération, et affichage du résultat de
l'opération.
Exercice 2 :
1. Editer une page html qui permet aux utilisateurs de soumettre par courrier électronique une
fiche de renseignement. La page inclut un formulaire html qui présente la fiche de
renseignement demandée. Cette fiche est composée des éléments suivants :
Champ. Domaine de valeurs
Civilité {Mme. Mlle. M.}
Nom Chaîne de caractères alphabétiques
Prénom Chaîne de caractères alphabétiques
Date de naissance jj/mm/aaaa
Adresse Une adresse (voir ci-après)
Téléphone 10 chiffres.
Adresse e-mail [email protected]
Site web URL
Une adresse est composée des champs suivants :
Champ Domaine de valeurs
Numéro Un nombre
Rue Chaîne alphanumérique
Code postale Cinq chiffres
Ville Chaîne de caractères
a. La fiche est représentée par un formulaire HTML. Pour chacun des éléments cités
ci-dessus proposer les éléments de formulaire les plus adaptés à son
implémentation.
b. Editer une page HTML qui représente la fiche décrite ci-dessus.
2. Editer une page Html qui représente un livre de visiteur. Un livre de visiteurs permet aux
visiteurs d'un site de laisser leurs coordonnées ainsi que leurs remarques sur l'organisation
et/ou le contenu du site.
3. Une société spécialisée dans la vente des ordinateurs sur mesure voudrait offrir à ses clients
la possibilité de demander via le serveur Web la configuration des ordinateurs à acheter.
Editer une page Web qui permet d'envoyer par courrier électronique la configuration
personnalisée d'un ordinateur. Un client a la possibilité de changer les attributs suivants d'un
ordinateur : Le type de processeur, la taille de la mémoire vive, la taille du disque dur, la taille
de l'écran, le type du boîtier, le type du modem (si demandé), et le type de la carte réseaux (si
demandée). Le choix de chaque attribut se fait parmi un ensemble de choix possibles
prédéfinis par la société.
23/81
Multimédia et Développement Internet
Exercice 3 :
Ecrire le document HTML qui réalise les indications suivant :
La page doit contenir les champs suivants : Nom, Prénom, adresse, sexe, Code postal,
Téléphone fixe, Téléphone mobile, Types d'activités, Remarques et Contact.
La taille de tous les champs (attribut size) est fixée à 40 caractères, exceptés pour les
champs Code postal (5), Téléphone fixe (20) et Téléphone mobile (20).
Le nombre maximum de caractères (attribut maxlength) est fixé à 50, exceptés pour les
champs Code postal (5), Téléphone fixe (20) et Téléphone mobile (20).
Les dimensions du champ Remarques sont de 70 colonnes et de 4 lignes.
Le champ Types d'activités est un contrôle de type Select.
Les champs Contact et sexe sont des contrôles de type Radio.
Le contenu du formulaire sera envoyé à votre adresse électronique [email protected].
Pour ce faire, les attributs de l'élément FORM seront method="post",
action="mailto:[email protected]" et enctype="text/plain".
Exercice 4 :
Récupérer le code du formulaire ci-dessous. Les données du formulaire sont expédiées à
l'adresse [email protected]
Fiche de renseignements
Informatique
Quelle est votre discipline préférée ?
Enregistrer Effacer
24/81
Fiches HTML
Objectifs
Enoncé du Cours :
Multimédia et Développement Internet
Note Cours 1
Fiches HTML
</HEAD>
<BODY>
<BODY>
</HTML>
Commentaires
Les commentaires peuvent être placés n'importe où dans un document HTML à condition de ne pas être
imbriqués. Ils sont placés entre les chaînes de caractère <!-- et -->.
Exemple :
<!-- Ceci est un commentaire -->
HTML
C’est le premier marqueur ou tag que l’on trouve dans un document HTML. Tout le document qui sera écrit par la
suite (texte ou marqueur) sera compris entre le tag <HTML> et </HTML>.
En-tête <HEAD>
L'en-tête du document est réservée aux méta-informations (les informations relatives au document) comme son
titre. Ces méta-informations doivent être placées entre les tags <HEAD> de début et </HEAD> de fin. Même si
l'en-tête est optionnelle, il est important de l'inclure dans un document pour éviter que le logiciel serveur n'ait à
balayer tout le document pour y retrouver l'information recherchée.
26/81
Multimédia et Développement Internet
Titre <TITLE>
<TITLE> Titre </TITLE>
Chaque document HTML, pour être correct, doit disposer d'un titre. Le titre apparaît le plus souvent
dans la barre de titre du navigateur Web. Son but est de pouvoir identifier le document dans un
ensemble plus large comme un index WAIS par exemple. Le titre d'un document HTML sert aussi
lorsqu'un navigateur World Wide Web dispose d'une fonction “hotlist” ou “bookmark” pour fournir
un accès rapide à vos documents favoris.
Le titre est limité à 64 caractères y compris les espaces et ne doit normalement contenir que les 128
premiers caractères ASCII (pas de caractères accentués)
Tailles de polices :
Il existe 7 tailles de polices. La commande est <FONT SIZE = n> … </FONT> ou n prend les valeurs de 1 à 7.
1, petits caractères
7, gros caractères.
La police par défaut possède la taille 3.
La taille de la police peut être fixée dans l'en-tête du document par la commande :
<BASEFONT SIZE = n> ou n prend les valeurs 1 à 7.
Séparateurs
Contrairement à tous les autres systèmes de traitement de texte, le retour de charriot n'a aucune valeur en HTML.
C'est le navigateur Web lui même qui définira le passage à la ligne en fonction de facteurs comme la taille des
polices de caractères, la largeur de la fenêtre de visualisation etc.
De même, plusieurs espaces dans un document HTML seront ramenés à un seul.
<P> Cette commande <P> (fin de paragraphe) termine un paragraphe et insère une ligne vide après le
paragraphe.
<BR> Cette commande impose la coupure d'une ligne de texte en rejetant ce qui suit à la ligne suivante.
<NOBR>…</NOBR>Cette commande permet de mettre du texte sans retour à la ligne.
<WBR> Cette commande permet de forcer un retour à la ligne dans un texte encadré par <NOBR>
27/81
Multimédia et Développement Internet
Pointeurs vers autres documents
Grâce au langage HTML, vous pouvez créer un hyperlien vers un document local, un document distant ou un
signet dans ces deux types de documents.
Anchor
L'hyperlien est créé par l'utilisation du tag <A> pour "anchor" ou ancre.
Les attributs possibles sont :
HREF
La syntaxe complète est <A HREF="document">texte</A>
Où HREF est un raccourci pour "Hypertexte référence", document désigne le document vers lequel on
pointe et texte représente le texte qui sera affiché pour représenter le lien hypertexte.
Listes
HTML définit 5 types de listes :
Les listes numérotées ou ordonnées (ou Ordered (numbered) lists),
Les listes non numérotées dites listes à puces dont les entées sont signalées par un signe
typographique,
Les listes de glossaire,
Les listes de menu,
Les listes de répertoire.
Listes numérotées ou Ordered (numbered) lists
28/81
Multimédia et Développement Internet
Style
L'utilisation de différents styles de polices de caractères permet de varier la présentation d'un texte. En HTML, on
peut utiliser des styles logiques où le nom du style indique la nature du fragment de texte à écrire dans ce style
ou des styles physiques où le nom du style indique explicitement le style de police que l'on souhaite voir utiliser.
Styles de caractères :
Styles logiques : à utiliser de préférence car ils sont interprétés par les différents logiciels clients WWW.
Les espaces (plusieurs à la suite), tabulations, retour chariot n'ont pas de valeur en HTML.
La commande <PRE> ... </PRE> est utilisée pour inclure un texte pré-formaté dans un document HTML.
Les espacements, tabulations et retour chariot gardent alors leur sens initial.
Attention : les commandes HTML existant dans le texte pré-formaté seront interprétées.
L'option WIDTH=n peut-être utilisée pour limiter la longueur de la ligne.
Les couleurs utilisées dans BODY
Par défaut le fond du document est gris clair, les caractères sont noirs, les prises d'hypertextes sont bleues quand
elles n'ont jamais été utilisées, violettes dans le cas contraire, rouges à l'instant de la sélection (dans le cas de
NETSCAPE).
Il est possible de modifier ces couleurs en rajoutant à la commande les options suivantes :
La valeur de c est composée de trois nombres hexadécimaux accolés (codés de 00 à FF) représentant le mélange
des trois couleurs primaires RGB (Red, Green, Blue). Le nombre obtenu est précédé d’un dièse (#). Le blanc à
pour valeur # FFFFFF ; le noir à pour valeur #000000. Toutes les autres couleurs sont obtenues par des dosages
précis dans chacune des composantes RVB.
29/81
Multimédia et Développement Internet
Des images peuvent être insérées dans le texte d'un document HTML, et elles sont au format GIF ou JPG.
<IMG SRC="nom_image.gif"> pour insérer une image locale, où nom_image.gif est le nom complet du
fichier avec éventuellement son chemin relatif à partir du répertoire du document HTML.
<IMG SRC="URL"> pour insérer une image distante. URL étant l'adresse complète du fichier image.
<IMG SRC="nom_image.gif" ISMAP> pour une image cliquable (ou réactive). Les images cliquables
permettent des liens selon l'endroit du "clic" de la souris dans l'image. La requête est transmise à un
programme exécutable (souvent IMAGEMAP.EXE) qui associe les coordonnées du "clic" à l'adresse
correspondante.
ALIGN=left/right/top/texttop/middle/absmiddle/baseline/bottom/absbottom
left : positionne l'image à gauche de l'écran.
right : positionne l'image à droite de l'écran.
top : positionne le sommet de la ligne de texte au sommet de l'image.
texttop : positionne l'axe horizontal de la ligne de texte au sommet de l'image.
middle : positionne la base de la ligne de texte au milieu de l'image.
absmiddle : positionne l'axe horizontal de la ligne de texte au milieu de l'image.
baseline : positionne la base de la ligne de texte à la base de l'image.
bottom : positionne la base de la ligne de texte à la base de l'image.
absbottom : positionne la ligne de texte au bas de l'image.
ALT="texte" le "texte" est une alternative à l'image lorsque le logiciel client WWW utilisé ne peut
afficher l'image.
30/81
Multimédia et Développement Internet
<TD> ... </TD> encadre une cellule du tableau. (cellule pouvant contenir un texte alphanumérique, une image,
une liste, un lien, un autre tableau ou rien)
31/81
Multimédia et Développement Internet
Formulaires
La commande FORM
Des formulaires peuvent être préparés afin de saisir des données et les traiter au niveau du serveur.
La méthode utilisée est POST, le programme de traitement se nomme questionnaire.cmd et se retrouve dans le
dossier cgi-bin, un seul argument est fourni au programme soit xxx.
Il est à noter que le programme de traitement des données (questionnaire.cmd en l'occurrence) doit être fourni
par l'administrateur du serveur et créé en fonction de l'application à supporter.
Syntaxe : INPUT="TEXT"
Parmi les choix disponibles en HTML, un des types d'entrée de données est le champ input type="text". Dans ce
cas, il faut inscrire le type de champ, le nom du champ et ses dimensions à l'écran.
Exemple:
Le type text est un champ ou l'usager entre de l'information sur son clavier, dans une zone définie à l'écran par la
commande size.
Ainsi, une commande size=30 est un champ d'une longueur de 30 espacements de largeur. Pour un champ plus
long, entrez une valeur de 50 ou 70, selon l'espace requis pour couvrir toutes les possibilités.
La commande name="name" précise que l'on désire enregistrer le contenu du champ dans la rubrique "name".
La commande INPUT="RADIO
Un autre type de champ est le type "input type=radio" qui permet d'afficher une série de boutons radio comme
choix de réponses.
La commande INPUT=CHECKBOX
La commande input Type=checkbox permet d'afficher une liste ou plusieurs choix sont possibles en même
temps.
La commande s'écrit:
32/81
Multimédia et Développement Internet
La commande select name et Option permet d'afficher une liste ou un seul choix est possible et qui s'affichent
sous la forme d'un menu "pop-up". La commande s'écrit:
Dans ce type, on spécifie d'abord le type soit textarea, ensuite le nom de la rubrique soit name=" nom_du_champ
" puis les paramètres d'affichage de la zone de dialogue en rangées (n) et en colonnes (m).
<TEXTAREA name="zone_libre" rows=5 cols=40></TEXTAREA>
Les formulaires doivent être complétés avant fermeture par une commande permettant d'envoyer le contenu des
champs remplis au serveur HTTP.
On ajoute également une deuxième commande qui permet à l'usager de reprendre le questionnaire s'il s'est
trompé.
La commande en question s'écrit:
<input type="reset" value="effacer et recommencer">
33/81
Concepts de base du Java
Script
Objectifs
Enoncé du cours :
Multimédia et Développement Internet
Note 2
Concepts de base du Java Script
Bref préambule
A l'origine le Web n'était qu'une sorte de lieu de stockage. Il est aujourd'hui bien plus que cela:
on s'y montre, s'y informe, s'y instruit et s'y amuse. Les outils du Web ont évolué en
conséquence. Le HTML simple chaîne de balisage a été complété par différents langages de
programmation.
Java Script est un langage de programmation très simple et constitue une excellente initiation à
la programmation web. La création de programmes Java Script requiert très peu de
connaissances.
Il est facile d'utiliser Java Script pour améliorer les pages Web crées en HTML. Les
programmes en Java Script peuvent être composées d'une seule ligne. Cependant il est possible
d'utiliser Java Script pour créer des applications complexes.
Javascript a été initialement développé par Netscape et s'appelait alors LiveScript. Adopté à la
fin de l'année 1995, par la firme Sun (qui a aussi développé Java), il prit alors son nom de
Javascript.
II. Intégrer un script Java Script à une page Web
Le principe est simple. Il suffit de respecter les deux principes suivants :
- n'importe où.
- mais là où il le faut.
Le browser traite votre page Html de haut en bas (y compris vos ajoutes en Javascript). Par
conséquent, toute instruction ne pourra être exécutée que si le browser possède à ce moment
précis tous les éléments nécessaires à son exécution. Ceux-ci doivent donc être déclarés avant ou
au plus tard lors de l'instruction.
Pour s'assurer que le programme script est chargé dans la page et prêt à fonctionner à toute
intervention de votre visiteur (il y a des impatients) on prendra l'habitude de déclarer
systématiquement (lorsque cela sera possible) un maximum d'éléments dans les balises d'en-tête
soit entre <HEAD> et </HEAD> et avant la balise
<BODY>. Ce sera le cas par exemple pour les fonctions.
Rien n'interdit de mettre plusieurs scripts dans une même page Html.
Il faut noter que l'usage de la balise script n'est pas toujours obligatoire. Ce sera le cas des
événements Javascript (par exemple onClick) où il faut simplement insérer le code à l'intérieur
de la commande Html comme un attribut de celle-ci. L'événement fera appel à la fonction
Javascript lorsque la commande Html sera activée. Javascript fonctionne alors en quelque sorte
comme une extension du langage Html.
35/81
Multimédia et Développement Internet
36/81
Multimédia et Développement Internet
37/81
Multimédia et Développement Internet
5. Exemple
Dans cet exemple, on définit dans les balises HEAD, une fonction appelée message() qui affiche
le texte
"Bienvenue à ma page". cette fonction sera appelée au chargement de la page voir onLoad=....
dans le tag
<BODY>.
<HTML>
<HEAD>
<SCRIPT LANGUAGE="Javascript">
<--
function message() {
document.write("Bienvenue à ma page");
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="message()">
</BODY>
</HTML>
6. Passer une valeur à une fonction
On peut passer des valeurs ou paramètres aux fonctions Javascript. La valeur ainsi passée sera
utilisée par la fonction.
Pour passer un paramètre à une fonction, on fournit un nom d'une variable dans la déclaration de
la fonction. Un exemple un peu simplet pour comprendre. J'écris une fonction qui affiche une
boite d'alerte dont le texte peut changer.
Dans la déclaration de la fonction, on écrit :
function Exemple(Texte) {
alert(texte);}
Le nom de la variable est Texte et est définie comme un paramètre de la fonction. Dans l'appel
de la fonction, on lui fournit le texte :
Exemple("Salut à tous");
7. Passer plusieurs valeurs à une fonction
On peut passer plusieurs paramètres à une fonction. Comme c'est souvent le cas en Javascript,
on sépare les paramètres par des virgules.
function nom_de_la_fonction(arg1, arg2, arg3) {
... code des instructions ...
}
38/81
Multimédia et Développement Internet
39/81
Multimédia et Développement Internet
40/81
Multimédia et Développement Internet
Dans cette fenêtre, il y a un document Html. C'est l'objet document. Autrement dit (et c'est là
que l'on voit apparaître la notion de la hiérarchie des objets Javacript), l'objet fenêtre contient
l'objet document.
Dans ce document, on trouve un formulaire au sens Html. C'est l'objet formulaire. Autrement
dit, l'objet fenêtre contient un objet document qui lui contient un objet formulaire.
Dans ce document, on trouve trois objets. Des boutons radio, un bouton classique et une zone de
texte. Ce sont respectivement l'objet radio, l'objet bouton, l'objet texte. Autrement dit l'objet
fenêtre contient l'objet document qui contient l'objet formulaire qui contient à son tour l'objet
radio, l'objet fenêtre contient l'objet document qui contient l'objet formulaire qui contient à son
tour l'objet bouton et l'objet fenêtre contient l'objet document qui contient l'objet formulaire qui
contient à son tour l'objet texte.
41/81
Multimédia et Développement Internet
42/81
Multimédia et Développement Internet
<FORM>
<INPUT TYPE="button" VALUE="Cliquez ici" onClick="alert('Vous avez bien cliqué ici')">
</FORM>
43/81
Multimédia et Développement Internet
3.5 onBlur
L'événement onBlur a lieu lorsqu'un champ de formulaire perd le focus. Cela se produit
quand l'utilisateur ayant terminé la saisie qu'il effectuait dans une case, clique en dehors du
champ ou utilise la touche "Tab" pour passer à un champ. Cet événement sera souvent utilisé
pour vérifier la saisie d'un formulaire.
Le code est :
<FORM>
<INPUT TYPE=text onBlur="alert('Ceci est un Blur')">
</FORM>
3.6 onchange
Cet événement s'apparente à l'événement onBlur mais avec une petite différence. Non
seulement la case du formulaire doit avoir perdu le focus mais aussi son contenu doit avoir été
modifié par l'utilisateur.
3.7 onselect
Cet événement se produit lorsque l'utilisateur a sélectionné (mis en surbrillance ou en vidéo
inverse) tout ou partie d'une zone de texte dans une zone de type text ou textarea
44/81
Multimédia et Développement Internet
Value indique la valeur en cours de la zone de texte. Soit celle tapée par
l'utilisateur ou si celui-ci n'a rien tapé, la valeur par défaut.
45/81
Multimédia et Développement Internet
<HTML>
<HEAD>
<script language="javascript">
function reponse(form4) {
if ( (form4.check1.checked) == true && (form4.check2.checked) == true && (form4.check3.checked) == false
&& (form4.check4.checked) == true)
{ alert("C'est la bonne réponse! ") }
else
{alert("Désolé, continuez à chercher.")}
}
</SCRIPT>
</HEAD>
<BODY>
Entrez votre choix :
<FORM NAME="form4">
<INPUT TYPE="CHECKBOX" NAME="check1" VALUE="1">Choix numéro 1<BR>
<INPUT TYPE="CHECKBOX" NAME="check2" VALUE="2">Choix numéro 2<BR>
<INPUT TYPE="CHECKBOX" NAME="check3" VALUE="3">Choix numéro 3<BR>
<INPUT TYPE="CHECKBOX" NAME="check4" VALUE="4">Choix numéro 4<BR>
<INPUT TYPE="button"NAME="but" VALUE="Corriger" onClick="reponse(form4)">
</FORM>
</BODY>
</HTML>
46/81
Multimédia et Développement Internet
6. Liste de sélection
Le contrôle liste de sélection vous permet de proposer diverses options sous la forme d'une
liste déroulante dans laquelle l'utilisateur peut cliquer pour faire son choix. Ce choix reste
alors affiché.
La boite de la liste est crée par la balise <SELECT> et les éléments de la liste par un ou
plusieurs tags
<OPTION>. La balise </SELECT> termine la liste.
Propriété Description
name indique le nom de la liste déroulante.
length indique le nombre d'éléments de la liste. S'il est indiqué dans le
tag <SELECT>, tous les éléments de la liste seront affichés. Si
vous ne l'indiquez pas un seul apparaîtra dans la boite de la liste
déroulante.
selectedIndex indique le rang à partir de 0 de l'élément de la liste qui a été
sélectionné par l'utilisateur
Un petit exemple comme d'habitude :
Entrez votre choix :
<HTML>
<HEAD>
<script language="javascript"> function liste(form5) {
alert("L\'élément " + (form5.list.selectedIndex + 1)); }
</SCRIPT>
</HEAD>
<BODY>
Entrez votre choix : <FORM NAME="form5">
<SELECT NAME="list">
<OPTION VALUE="2">Elément 2
<OPTION VALUE="3">Elément 3
</SELECT>
<INPUT TYPE="button"NAME="b" VALUE="Quel est l'élément retenu?" onClick="liste(form5)"> </FORM>
</BODY>
</HTML>
47/81
Multimédia et Développement Internet
Instruction Description
abs() x=Math.abs(y);
La méthode abs() renvoie la valeur absolue (valeur positive) de y. Il supprime en quelque sorte
le signe négatif d'un nombre.
max() x=Math.max(y,z);
La méthode max(y,z) renvoie le plus grand des 2 nombres y et z.
min() x=Math.min(y,z);
La méthode min(y,z) renvoie le plus petit des 2 nombres y et z.
pow() x=Math.pow(y,z);
La méthode pow() calcule la valeur d'un nombre y à la puissance z.
sqrt() x=Math.sqrt(y);
La méthode sqrt() renvoie la racine carrée de y.
parseFloat() x=parseFloat("variable");
Cette fonction convertit une chaîne contenant un nombre en une valeur à virgule flottante.
parseInt() x=parseInt(variable);
Retourne la partie entière d'un nombre avec une virgule.
Instruction Description
new Date() Cette méthode renvoie toutes les informations « date et heure » de l’ordinateur de l’utilisateur.
Variable=new Date() ;
getYear() variable_date=new Date(); an=variable_date.getYear() ;
Retourne les deux derniers chiffres de l’année dans variable_date.
getMonth() variable_date=new Date(); mois=variable_date.getMonth();
Retourne le mois dans variable_date sous forme d'un entier compris entre 0 et 11 (0 pour
janvier, 1 pour février, 2 pour mars, etc.).
getHours() variable_date=new Date(); hrs=variable_date.getHours();
Retourne l'heure dans variable_date sous forme d'un entier compris entre 0 et 23.
getMinutes() variable_date=new Date(); min=variable_date.getMinutes();
Retourne les minutes dans variable_date sous forme d'un entier compris entre 0 et 59.
48/81
Multimédia et Développement Internet
49/81
Multimédia et Développement Internet
alert()
prompt()
confirm()
Ce sont toutes trois des méthodes de l'objet window.
2. La méthode alert()
La méthode alert() doit, à ce stade de votre étude, vous être familière car nous l'avons déjà
souvent utilisée.
La méthode alert() affiche une boite de dialogue dans laquelle est reproduite la valeur
(variable et/ou chaîne de caractères) de l'argument qui lui a été fourni. Cette boite bloque le
programme en cours tant que l'utilisateur n'aura pas cliqué sur "OK".
Alert() sera aussi très utile pour vous aider à débbuger les scripts.
Sa syntaxe est :
alert(variable);
alert("chaîne de caractères");
alert(variable + "chaîne de caractères");
Si vous souhaitez écrire sur plusieurs lignes, il faudra utiliser le signe \n.
3. La méthode prompt()
Dans le même style que la méthode alert(), Javascript vous propose une autre boite de
dialogue, dans le cas présent appelée boite d'invite, qui est composée d'un champ comportant
une entrée à compléter par l'utilisateur. Cette entrée possède aussi une valeur par défaut.
La syntaxe est :
prompt("texte de la boite d'invite","valeur par défaut");
En cliquant sur OK, la méthode renvoie la valeur tapée par l'utilisateur ou la réponse proposée
par défaut. Si l'utilisateur clique sur Annuler ou Cancel, la valeur null est alors renvoyée.
Prompt() est parfois utilisé pour saisir des données fournies par l'utilisateur. Selon certaines
sources, le texte ne doit cependant pas dépasser 45 caractères sous Netscape et 38 sous
Explorer 3.0.
4. La méthode confirm()
Cette méthode affiche 2 boutons "OK" et "Annuler". En cliquant sur OK, continue() renvoie
la valeur true et bien entendu false si on a cliqué sur Annuler. Ce qui peut permettre, par
exemple, de choisir une option dans un programme.
La syntaxe de l'exemple est :
confirm("Voulez-vous continuer ?")
50/81
TP Java Script
Objectifs
Enoncé du TP :
Multimédia et Développement Internet
TP 4
TP Java Script
Exercice 1 :
Reprendre l’exercice de calculatrice en ajoutant de la java script.
Exercice 2 :
Créer un document HTML qui déclare les cinq variables globales suivantes dans la section
<script> contenue dans la section <head> du document : nom, age, moisNaissance,
dateNaissance et anneeNaissance. Dans une autre section <script>, contenue dans la section
<body> du document, déclarez une variable nommée infosNaissance. Combinez les cinq
variables globales dans la variable infosNaissance, puis affichez la variable infosNaissance en
utilisant la méthode document.write (). Enregistrez le fichier sous le nom Info.html. Ouvrez
ensuite le document HTML pour voir à quoi il ressemble. Etes vous satisfait de l’affichage ?
Comment pouvez vous l’améliorer.
Exercice 3 :
Créer une page Web avec une commande if demandant à l’utilisateur s’il souhaite un accueil
personnalisé. S’il répond par l’affirmative, afficher une boite de dialogue qui lui demande son
nom, puis affichez le nom dans une boite de dialogue alert. S’il répond par la négative,
affichez une message d’accueil générique dans une boite de dialogue alert. Enregistrez le
fichier sous le nom Accueil.html
Exercice 4 :
Question 1
Ecrire un convertisseur euros-francs, en utilisant une fonction javascript pour calculer la
conversion. La conversion se fait lorsqu’on clique sur le bouton convertir.
Question 2
Proposer une autre solution, qui convertit, dès qu’on change la valeur dans Euros. Quelles en
sont les limites ?
Exercice 5 :
Proposez un formulaire de saisie de nom, prénom et ville d’habitation. Le nom et la ville sont
obligatoires et sont symbolisés par un « surlignement ».
Dès que les champs obligatoires sont remplis, le « surlignement » s’enlève.
52/81
Multimédia et Développement Internet
Exercice 6 :
A chaque élément d'interface d'un formulaire HTML correspond un type d'objet JavaScript
particulier. Celui-ci contient des propriétés qui permettent de connaître son contenu et gère
différents évènements auxquels on peut associer des fonctions comme nous l'avons déjà fait
pour l'évènement onclick des boutons.
L'objet représentant le formulaire a une propriété nommée elements qui est un tableau
contenant tous les éléments d'interface du formulaire.
Les objets représentant des éléments d'interface ont tous les propriétés :
• form : qui représente le formulaire parent
• name : qui est le nom de l'élément
• type : qui est le type de l'élément
• value : qui est une valeur en général librement utilisable
Listes de choix
Les listes de choix correspondent à la balise HTML select. L'objet correspondant en
JavaScript est du type Select. Il possède les propriétés suivantes :
• length : contient le nombre d'éléments de la liste
• selectedIndex : contient le numéro de l'option sélectionnée (la numérotation commence à 0)
• options : c'est un tableau contenant des objets de type Option qui ont une propriété text contenant
le libellé de l'option et une propriété value.
Boutons radio
Les boutons radio correspondent à la balise HTML input type="radio". L'objet correspondant
en JavaScript est du type Radio. Il possède :
• une propriété checked qui est de type booléen et indique s'il a été coché
• une propriété value
Pour que plusieurs boutons radio fonctionnent en groupe (l'activation de l'un désactive
l'autre), il suffit de leur donner le même nom. Pour JavaScript ils formeront un tableau portant
le même nom.
Les objets de type Radio gèrent les évènements :
• onblur
• onclick
• onfocus
53/81
Multimédia et Développement Internet
Cases à cocher
Les cases à cocher correspondent à la balise HTML input type ="checkbox". L'objet
correspondant en JavaScript est du type Checkbox. Il possède :
• une propriété checked qui est de type booléen et indique s'il a été coché
• une propriété value
Comme pour les boutons radio, les cases à cocher peuvent être regroupées dans un tableau en
leur attribuant le même nom.
Les objets de type Radio gèrent les évènements :
• onblur
• onclick
• onfocus
Question 1 :
Ecrire un texte à trous, où les réponses possibles sont données dans une liste de choix. Un
bouton vérifier permet de vérifier la validité des réponses.
Question 2 :
Reprendre la question 1 mais en permettant à l’utilisateur de saisir au clavier dans une zone de
texte, les mots manquants.
54/81
Multimédia et Développement Internet
Exercice 7
Créer un formulaire de saisie d’un CV « light ». Nom, Prénom, date de naissance, adresse
email, niveau d’études de l’année en cours.
Pour vérifier une adresse mail vous pouvez chercher le ‘@’ puis vérifier qu’il y a bien
au moins quatre caractères après, suivis d’un « . » et de deux lettres au moins.
Exercice 8
Écrivez le code JavaScript qui va simuler un tirage d’une loterie de 3 chiffres entre 0 et 9
avec répétition permise et affichera le résultat dans une page web, nommée tp4Num8.html.
Exercice 9
Vous allez produire une page web, nommée tp4Num9.html, utilisant du code JavaScript,
pour saisir les notes d’un étudiant et calculer sa note globale.
Voici l’aspect visuel de votre application :
55/81
Multimédia et Développement Internet
Le résultat après la saisie des valeurs 10, 10 et 10 comme notes de TP, Controle et Final.
Votre page web doit faire :
Saisir les notes de tp, ainsi que des examens du contrôle et final en utilisant la fonction
prompt et les conserver dans des variables.
Calculer et afficher la note globale.
La note du tp et d’examens sont sur 20. Vous n’êtes pas tenu de tester que les notes
entrées sont entre 0 et 20.
globale = tp * 30% + contrôle * 30% + final * 40%
Exercice 10
Dans l’extrait de page ci-dessous :
On voit un tableau à l’aide duquel l’utilisateur choisit la couleur de fond, en saisissant des
valeurs entre 0 et 255 dans les champs correspondant aux trois couleurs basiques rouge, vert,
bleu.
On vous fournit gracieusement le code de la fonction hexa() qui convertit un nombre décimal
entre 0 et 255 en nombre hexadécimal à deux chiffres.
56/81
Cours PHP
Objectifs
Enoncé du cours :
Multimédia et Développement Internet
Note 3
Cours PHP
I- Introduction
1. Définition
PHP est un langage de script qui est principalement utilisé pour être exécuté par un serveur
HTTP, mais il peut fonctionner comme n'importe quel langage interprété en utilisant les
scripts et son interpréteur sur un ordinateur. On désigne parfois PHP comme une plate-forme
plus qu'un simple langage.
Sa syntaxe et sa construction ressemblent à celles des langages C++ et Perl, à la différence
que le
PHP peut être directement intégré dans du code HTML.
Exemple :
L'objet de ce langage est de permettre aux développeurs web d'écrire des pages dynamiques
rapidement.
2. Mise en œuvre et déploiement (EasyPHP)
EasyPHP est un paquetage contenant à la fois Apache, PHP et MySQL
EasyPHP permet d’installer automatiquement et facilement une plateforme permettant
l’exploitation d’un site web en PHP qui éventuellement aurait besoin d’un accès a une base de
données. De la sorte on se libère des complications d’une installation manuelle de chacune de
composantes séparément.
Procédure d’installation :
• Télécharger EasyPHP sur le site www.easyphp.org
• Double cliquer sur l'exécutable téléchargé
• Sélectionner le répertoire d'installation et suivre la procédure
58/81
Multimédia et Développement Internet
Procédure de lancement :
Lorsqu'EasyPHP est lancé, les serveurs Apache et MySQL sont automatiquement lancés (il
est même possible de le faire automatiquement au démarrage de Windows). Une petite icône
s'installe dans la barre des tâches, à côté de l'horloge, permettant un accès rapide aux
fonctions proposées par EasyPHP :
• Fichier Log : renvoie aux erreurs générées par Apache et MySQL
• Configuration : donne accès aux différentes configurations d'EasyPHP
• Administration : gestion des répertoires virtuels, des extensions, de PHPMyadmin
• Web local : ouvre la page http://localhost/ répertoire racine du site
• Démarrer/Arrêter : démarre/arrête Apache et MySQL
• Quitter : ferme EasyPHP
Pour que vos pages PHP soient interprétées, il est impératif de placer vos fichiers dans le
répertoire www (sus le répertoire d’installation de easyphp). Ce répertoire est configuré par
défaut comme répertoire racine de votre serveur web. Le serveur Apache est configuré pour
ouvrir automatiquement un fichier index lorsque vous saisissez l'adresse 'http://localhost/' (à
condition évidemment que le serveur Apache soit en route). Cette page sert de page d'accueil
au web local et permet de vérifier le bon fonctionnement d'EasyPHP.
Il est conseillé de créer un répertoire par projet dans le répertoire www afin d'avoir une vision
plus claire des développements.
II- Les fonctionnalités du langage
1. Premiers éléments du langage
Lorsque vous créez un code, il doit être placé entre balises php pour que celui- ci soit
interprété, comme ceci:
Une syntaxe PHP se termine TOUJOURS par un point-virgule, si vous l'oubliez vous verrez
apparaître une PARSE ERROR lors de l'exécution de votre fichier.
2. Intégration de PHP dans une page HTML
L'un des avantages du PHP est qu'il s'intègre facilement dans du code HTML classique.
Chacun peut à sa guise inclure quelques parties en PHP dans des parties de code HTML.
Remarque importante :
Du moment que des parties de code PHP ont été intégrées dans une page HTML cette
dernière doit impérativement être renommée en extension .php
Exemple
59/81
Multimédia et Développement Internet
3. Variables
Une variable est définie sous la forme $variable_nom.
L’affectation d’une variable se fait de la manière suivante : $variable_nom = variable_valeur.
L’appel de la valeur affectée à une variable se fait par son nom.
Syntaxe
L’affichage des variables combinées à des chaînes de caractères peut se faire de plusieurs
manières en utilisant les cotes simples ( ' ) ou les doubles cotes ( '' ).
Remarques : Si vous utilisez les ' au lieu des " , la variable n'est pas interprétée comme une
variable mais comme une chaîne de caractère.
Remarque sur l’usage des cotes simples ou doubles
Lors de l’usage des ' pour l’affichage d’une chaîne de caractère contenant des apostrophes,
vous devez impérativement faire précéder ces apostrophes d'antislash. De la sorte
l’apostrophe ne sera pas confondue avec le caractère de fin de la chaîne à afficher. Dans le cas
contraire un message d’erreur sera affiché.
60/81
Multimédia et Développement Internet
4. Conditions et boucles
Conditions if
La syntaxe de base d’une instruction conditionnelle est la suivante :
Exemple
Conditions elseif
61/81
Multimédia et Développement Internet
Exemple
Conditions SWITCH
Syntaxe
Exemple
62/81
Multimédia et Développement Internet
Exemple
Exemple
63/81
Multimédia et Développement Internet
5. Tableaux
Il existe deux types de tableaux de variables sous PHP :
Les tableaux à index numériques (tableaux numérotés) dans lesquels l’accès à
la valeur de la variable passe par un index numérique
Ex : $tableau[0], $tableau[1], $tableau[2], …
Les tableaux à index associatifs (ou tableaux associatifs) dans lesquels l’accès
à la valeur de la variable passe par un index nominatif
Ex : $tableau[nom], $tableau[prénom], $tableau[adresse], …
Syntaxe
Exemple
64/81
Multimédia et Développement Internet
65/81
Multimédia et Développement Internet
En GET les paramètres apparaissent associés à l’url sous formes de variables séparées par des
&
(http://localhost/destination.php?nom=Tarak&prenom=Joulak).
En POST le passage de paramètre se fait de manière invisible.
Selon que la méthode d’envoi a été du GET ou du POST la récupération du contenu des
variables est faite selon une syntaxe différente :
Syntaxe
Exemple
Dans l’exemple suivant le fichier formulaire.html contient le script html permettant d’afficher
un formulaire et d’envoyer les résultats de la saisie à la page resultat.php qui elle les affichera.
La récupération des paramètres dans la page destination se fait par le tableau $_GET
66/81
Multimédia et Développement Internet
7. Fonctions Prédéfinies
Quelques fonctions nous permettent de vérifier qu'une variable possède une
valeur ou au contraire, n'en a pas.
67/81
Multimédia et Développement Internet
Voici ce qu'il peut se passer lorsque le serveur reçoit une demande d'un client de consultation
d’une page en PHP qui fait appel à des données stockées sous MYSQL:
1. Le serveur WEB envoie le nom de la page PHP demandée à l’interpréteur PHP.
2. PHP exécute le script existant dans la page. Sitôt que des instructions relatives à la
connexion à une base de données trouvées, PHP se charge d’envoyer les requêtes
d’exécution à MYSQL.
3. MySQL exécute la requête et renvoie à PHP le jeu de données résultat.
4. PHP termine son traitement et renvoie la page HTML générée au serveur web qui la
transmet à l’internaute.
1. SQL : petit récapitulatif du langage
Structured Query Langage est langage standard pour communiquer avec une base de données.
Il permet la création de bases, la définition de tables, la consultation des enregistrements ainsi
que leur mise à jour.
Ajout d’un enregistrement
INSERT INTO t_personne (id, Nom, Prenom, Age) VALUES (NULL, 'Joulak', 'Tarak', 32)
Cette requête SQL va permettre d’ajouter une ligne d’enregistrement à la table t_personne
encore vide.
Le champ Nom prendra pour valeur Joulak
Le champ Prenom prendra pour valeur Tarak
Le champ Age prendra pour valeur 32
Il est à noter que le champ id étant en mode auto incrémental il ne faut pas lui assigner de
valeur.
Le compteur s’incrémentant tout seul à chaque nouvel enregistrement.
Consultation d’un enregistrement
SELECT * FROM t_personne WHERE id=1
Cette requête va extraire de la base de données la ligne d’enregistrement ayant pour
identifiant 1
(id=1)
Mise à jour d’un enregistrement
UPDATE t_personne SET Age= 35 WHERE id=1
Cette requête va mettre à jour dans la table t_personne l’enregistrement dont le champs id est
égal à
1 (id=1) en modifiant le champs Age à 35.
68/81
Multimédia et Développement Internet
Exemple
Exemple
69/81
Multimédia et Développement Internet
Exemple
Dans l’exemple précédent une ligne d’enregistrement a été ajoutée à la table t_personne
contenant Tarak Joulak 32.
Parcourir le résultat d’un SELECT
Une requête SQL de consultation peut retourner plusieurs enregistrements. De ce fait il y a
besoin de pouvoir les consulter enregistrement par enregistrement et champs par champs.
mysql_fetch_array() est la fonction PHP destinée pour ce type de traitements. Cette fonction
prend en entrée l’identifiant retourné par mysql_query(). Elle retourne un tableau contenant la
ligne demandée ou false s’il n’y a plus d’enregistrement. Elle est généralement exploitée dans
une boucle WHILE.
Syntaxe
Exemple
70/81
Multimédia et Développement Internet
71/81
Introduction au PHP
Objectifs
Enoncé du TP :
Multimédia et Développement Internet
TP 5
Introduction au PHP
EXERCICE 1 :
Objectifs : inclure des balises php dans une page HTML. Mixer le code php et HTML.
Utilisation de balises.
Afficher dans une page la phrase « Ceci est une ligne créée uniquement en PHP ».
Afficher à la ligne suivante : « Ceci est la 2ème phrase créée avec PHP».
Créer un lien sur le site de l’ISET (www.iset.org).
EXERCICE 2 :
Objectifs : Déclaration et initialisation de variables. Utilisation du point de concaténation.
Déclarer 2 variables : nom et prénom. Les initialiser avec les valeurs « Zitouni » et « Ali» et
les afficher sur la page en utilisant 3 modes syntaxiques différents :
2 commandes echo
1 commande echo avec 1 seule chaîne de caractère
1 commande echo avec le point de concaténation
EXERCICE 3 :
Objectifs : Utilisation de l’instruction IF.
Affecter respectivement les valeurs 150, 50 et 10 aux variables prix_table,
prix_armoire et Nombre.
Calculer le prix HT total pour les 10 armoires.
Comparer le prix de l’armoire et de la table et afficher quel est le prix le plus élevé.
EXERCICE 4 :
Objectifs : Utilisation des instructions WHILE et FOR.
Affecter une valeur à la variable nbre et afficher la somme des entiers de 1 à nbre.
NB : on réalisera cet exercice avec l’instruction FOR puis avec l’instruction WHILE.
EXERCICE 5:
Objectifs : Utilisation des instructions WHILE et FOR.
Concevez un programme qui écrit 500 fois «Je dois faire des sauvegardes régulières de mes
fichiers.».
73/81
Multimédia et Développement Internet
EXERCICE 6 :
Objectifs : Utilisation des instructions WHILE et FOR.
Écrire un programme PHP qui affiche tous les nombres impairs entre 0 et 15000, par ordre
croissant : «1 3 5 7 ... 14995 14997 14999».
EXERCICE 7 :
Objectifs : Utilisation des tableaux, utilisation de fonctions et utilisation de fichiers :
require()
Initialiser un tableau de 4 cases (contenant des nombres) et en faire la somme.
a) sans faire de fonction
b) en créant une fonction somme
c) en créant un fichier spécifique qui contient la fonction somme.
EXERCICE 8 :
Objectifs : Utilisation de formulaires et de contrôles. Bouton submit. Retour page
précédente.
Construire une page qui permette de saisir un nom et un mot de passe.
Renvoyer l’utilisateur sur une autre page et lui afficher si son mot de passe est correct
ou non (NB : le mot de passe valide sera « mot »).
Sur cette 2ème page : prévoir un bouton retour.
EXERCICE 9 :
Objectifs : Utilisation de formulaires et de contrôles. Liste de choix et liste de valeurs.
Construire une page qui permette d’afficher :
une liste avec les noms des vendeurs suivants : M. Ali, M. Zied, M. Maher et M.
Mahdi (on utilisera une liste non modifiable).
une liste qui affiche la liste des produits disponibles (la liste des produits est
paramétrée dans le fichier produits.php)
Ajouter une zone de texte pour saisir le nombre de produits à commander et renvoyer sur une
autre page le récapitulatif de la demande (ex : vous avez commandé 10 armoires auprès de M.
Ali).
74/81
PHP & BD
Objectifs
Enoncé du TP :
Multimédia et Développement Internet
TP 6
PHP & BD
Syntaxe php
Etablir une connexion à une BDD $nom_connexion = mysql_connect ("nom_lien_odbc", nom_login",
"mot_de_passe");
Exécuter une requête et renvoyer le $nom_recordset = mysql_query (« texte SQL à exécuter /
résultat dans un recordset nom_variable_contenant_texte_SQL »);
Balayer toutes les lignes d’un while ($nom_variable = mysql_fetch_row($nom_recordset))
recordset {}
Afficher la valeur d’un champ d’un $nom_variable = mysql_fetch_row($nom_recordset);
recordset pour la ligne en cours echo $nom_variable[« num_du_champs »] ;
Fermeture de la connexion mysql_close($maConnexion);
Ouvrir une session ou accéder à la Session_start() ;
session
Créer une variable session Session_register("nom_variable") ; NB : le nom de la variable n’est
pas précédé du $
Fermer une session Session_destroy() ;
Pour utiliser une variable session $_SESSION["nom_variable_session"] ;
Pour détruire une variable session unset ($_SESSION["nom_variable_session"]) ;
Syntaxe html
Zone de texte <INPUT id=id_zone_de_texte name=nom_zone_de_texte>
Bouton submit <INPUT id=id_bouton type=submit value= « texte à afficher sur le
bouton » name=nom_bouton >
Formulaire <FORM action = "nom_page_à_afficher_sur_clic_de_submit"
METHOD = « get/post »>
…
</FORM>
Récupération de valeurs d’une $nom_variable = $_GET["nom_contrôle_page_précédente"]
page à une autre ou : $nom_variable = $_POST["nom_contrôle_page_précédente"]
Liste de valeurs <SELECT NAME ="nom_liste">
<OPTION VALUE ="valeur_à_stocker" > Valeur_à_afficher
</OPTION>
<OPTION VALUE ="valeur_à_stocker" > Valeur_à_afficher
</OPTION>
…
</SELECT>
Balise d’ancre <A href="nom_du_fichier?nom_variable = valeur à transmettre"> texte
Pour récupérer la variable à afficher </A>
transmise $nom_nouvelle_variable = $_GET(["nom_variable"]
76/81
Multimédia et Développement Internet
77/81
Multimédia et Développement Internet
BD avec PHP
Préambule :
Énoncés :
6. Afficher le contenu des tables citoyen, domicile, maladie.
7. Sélectionner un citoyen dans une liste pour afficher ses différents domiciles, les plus
récents en premier.
8. Choisir une ville, puis un citoyen de cette ville, puis sélectionner une de ses maladies
pour afficher les dates de contamination et de guérison ainsi que le degré de gravité de
la maladie.
9. On souhaite gérer une société qui vend des produits de bureautique. La société dispose
d’une base de données Commandes dont voici le descriptif succinct des six tables qui
la composent :
- une table Articles qui recense les références des différents produits que vend la société. Les
attributs sont : Reference (clé), Categorie, Nom, Fournisseur, PrixHT, TauxTVA,
QteStock, SeuilCritique (du stock).
- une table Clients recense les clients avec les attributs : NimClient (clé), Societe,
Contact, Adresse, CodePostal, Ville, Tel, Fax, Confirmation, Paiement,
Informations, EncoursMax (encours maximum toléré chez le client).
- une table Encours qui recense les encours des clients (c’est-à-dire le total des montants non
encore réglé par chaque client). Elle contient les attributs : NumClient et Encours (nombre
réel), DateCmd (date de la dernière commande).
- une table Fournisseurs recense les fournisseurs. Un fournisseur est reconnu par son :
Numero, Societe, Contact, Adresse, CodePostal, Ville, Tel, Fax.
- une table Factures contenant des informations générales sur les factures émises
(NumFacture, NumClient, DateFac (date de la facture), MontantHT, MontantTVA,
MontantTTC, DateReg (date de règlement de la facture), MontantReg (montant réglé)).
- une table LignesFac (lignes de factures) contenant les quatre informations suivantes :
NumLigne (numéro de la ligne ; clé permettant d’identifier un enregistrement de la table),
NumFacture (numéro de la facture), RefArticle (référence de l’article commandé),
Quantite (quantité des articles commandés dans la facture).
78/81
Multimédia et Développement Internet
Ecrire un script qui présente les articles de la base sous la forme d’un tableau HTML. Les
informations à afficher sont : le nom de l’article, sa catégorie et son prix HT.
Faire de même mais en présentant en rouge les articles dont le seuil critique du stock est
atteint ou dépassé.
Faire de même mais en présentant dans la même page un tableau par catégorie.
Afficher les informations sur les articles avec le nom de la société qui les fournit. Le nom
de l’article est un lien hypertexte qui, une fois cliqué, donne le détail du fournisseur
correspondant.
Ecrire une page de recherche d’articles. On donne une catégorie d’articles et une quantité
et le script affiche les articles appartenant à cette catégorie ayant en stock au minimum la
quantité demandée.
Problème traité via PHP
Énoncés :
Première partie : Système d’inventaire de services d’un club de sport
Il s’agit dans cette partie de créer dans l’arrière boutique un système d’inventaire de services
qui permet à un gérant de répertorier toutes les disciplines sportives proposées dans son club.
Les informations saisies à partir d’un formulaire HTML sont transmises et stockés dans une
base de données.
Étape 1 :
Créez un formulaire HTML nommé inventaireDisciplines.html qui permet au gérant d’un
club de sport d’indiquer dans des champs appropriés
1) la référence,
2) le nom du service (sport),
3) la catégorie du service (natation, sport d’hiver, exercices cardio-vasculaires, etc…)
4) les frais mensuels
5) les frais annuels
6) la durée d’enseignement de la discipline (3 , 6, 9 mois)
Ce formulaire doit être agrémenté d’un bouton «Envoyer!» qui initiera une insertion ou mise à
jour d’une table appelée «Inventaire» de votre base de données.
79/81
Multimédia et Développement Internet
Étape 2 :
a) Dans votre base, créez la table «Inventaire» dont les colonnes correspondent aux champs
de votre formulaire HTML ci-dessus. De plus,
b) Concevez un script PHP pour stocker un à un dans la table Inventaire, 5 sports de 3
catégories différentes de votre choix.
c) Ensuite, pour vérifier que les produits sont bien stockés, prévoyez l'affichage d'un
message de confirmation d'ajout et l’apparition d’une fenêtre dressant la liste de
toutes les disciplines existantes dans la BD.
Deuxième partie : Réalisation d’un panier à provision (caddie)
Étape 1 :
Le but de cette étape est de vous amener pas à pas à l’implémentation d’un panier à provision
dans un site de commerce électronique « C.E. » avec la technologie PHP version MySQL.
Pendant la navigation d’un tel site, un sportif (visiteur du site de c.e.) peut à volonté ajouter
des sports à son panier. À n'importe quel moment, ce sportif peut demander l'affichage du
contenu courant de son panier et décider d’enlever des abonnements. L'utilisateur peut enfin
confirmer l’abonnement aux sports qui existent dans son panier et terminer la session
d’achat.
Après la construction d’une table d’inventaire (Inventaire) des sports, la prochaine étape
consiste à créer une table «Catalogue » qui est utilisée pour conserver l’information
temporaire (le temps d’une session) dans le panier à provision. Pour une grande partie,
l’information dans la table Catalogue est un reflet de celle présente dans la table Inventaire
(Première partie). Ces deux tables diffèrent dans leur nature et l’usage des informations
d’arrière plan qu’elles contiennent.
Néanmoins, une information comme les frais d’abonnement est conservée seulement dans la
table Inventaire et référencée par un script PHP si nécessaire. Cette approche est justifiée par
le fait que les frais peuvent changer de saison en saison et la table Catalogue (panier) ne peut
accommoder ces changements. De plus, la table Catalogue conserve l’identifiant unique du
panier dans chaque enregistrement.
Étape 2 :
Il s’agit de créer une simple page Web qui affiche un tableau de sports agrémenté de boutons
pour l’ajout, l'affichage, le retrait et la validation (ou confirmation) dans l’achat opéré par
un client sportif.
80/81
Multimédia et Développement Internet
*****
Supports et Références Bibliographiques
Langage de Script par Pierre MAURICE Directeur de recherche INRIAIRIT, université
Paul-Sabatier, Toulouse.
Média graphie
Sites Internet
[2] Titre
URL php.developpez.com/cours
Langue Française
81/81