Escolar Documentos
Profissional Documentos
Cultura Documentos
Partie1
Introduction au World Wide Web
Le réseau Internet est un réseau de machines (ordinateurs, serveurs, etc.) interconnectées et
qui offre une variété de services tels que : courriers électroniques, transfert de fichiers et le
web.
Dans cette première partie, nous allons voir essentiellement les bases du web. Nous allons
couvrir le web, ce que c’est, à quoi il ressemble, commentet comment se forment ses
principales composantes.
Nous allons parler de HTML, qui est le principal type de document sur le web. Nous allons
voir le principe des URLs qui sont la façon dont vous vous référez aux documents sur le web.
Nous parlerons du protocole http qui unit le web. Et puis, nous allons parler des applications
Web.
1. Définition et Historique
“The World Wide Web (WWW, W3) is an information system of interlinked hypertext documents that
are accessed via the Internet. It has also commonly become known simply as the Web. Individual
document pages on the World Wide Web are called web pages and are accessed with a software
application running on the user's computer, commonly called a web browser. Web pages may contain
text, images, videos, and other multimedia components, as well as web navigation features consisting
of hyperlinks.”(Extrait du Wikipedia : http://en.wikipedia.org/wiki/World_Wide_Web)
Le World Wide Web (WWW, W3) est définit comme étant un système d’information constitué
d’un ensemble de documents HyperText interdépendants etdisponibles sur le réseau Internet.
Ces documents sont appelés pages web, ils sont accessibles à travers un navigateur (Browser
en Anglais) ou bien un client web. Ces pages web peuvent contenir du texte, des images, des
vidéos ou autres composants.
Le World Wide Web est une collection de documents. Ces documents sont formés avec ce
qu’on appelle « HTML », qui signifie HyperText MarkupLanguage. HTML est la base
pour presque toutes les pages Web (Même s’il peut y avoir des documents, images, vidéos,
etc).
1
Beghoura Mohamed Amine Développement d’Applications
d’Appl Web
2ème Année Licence Informatique
Figure 1. Page web principales contenant des liens vers d’autres pages du site web http://www.w3schools.com
http://
Note :Ne
Ne pas confondre entre le World Wide Web et le terme Internet qui est le réseau
informatique mondial accessible au public principalement composé par des millions de
réseaux aussi bien publics que privés.
L’histoire
toire du web a commencé avec Tim Berners-Leequi est un informaticien britannique et
ancien employé du CERN. Il est considéré comme l'inventeur du Web. En Mars
1989,Berners-Lee
Lee a écrit une proposition de ce qui allait devenir le World Wide Web. La
proposition
sition de 1989 a été conçuepour
conçu pour un système de communication plus efficace pour
l’entreprise CERN. Par contre, Tim Berners-Lee a réalisé que le concept qu’il a proposé
pourrait être déployé à travers le monde.
Berners-Lee a terminé le premier site en Décembre cette année. Le premier test a été effectué
en Décembre 1990 et Berners-Lee
Berners Lee a rapporté sur le projet sur le newsgroup alt.hypertexten
alt.hypertext
Août 1991.
2. Architecture Client/serveur
Un ensemble de pages web et de ressources liées forment un site web (de l'anglais web
site) qui est accessible via une adresse web.. Un site web est hébergé sur un serveur web, lui-
même accessible en utilisant un client web via un réseau internet ou intranet.
intranet
Le Web est un service Internet qui fonctionne selon les règles de l’architecture
client/serveur.Un émetteurr (client) envoie une requêteHTTP sous forme d’un lien URL vers
un serveur qui répond par l’envoie du fichier demandé et qui sera visualisé sur le navigateur
du client (figure 2).
2
Beghoura Mohamed Amine Développement d’Applications
d’Appl Web
2ème Année Licence Informatique
L'expression « serveur Web » désigne également le logiciel utilisé sur le serveur pour
exécuter les requêtes HTTP qui est le protocole de communication employé sur le World
Wide Web. La fonction principale d'un serveur Web est de stocker et délivrer des pages
Web qui sont généralement écrites en HTML.
Un Client Web est l’outil permettant d’accéder aux documents HyperText disponibles
disponible sur le
Web à l’exemple du navigateur.
navigateur
3
Beghoura Mohamed Amine Développement d’Applications
d’Appl Web
2ème Année Licence Informatique
Le fonctionnement d’un ’un navigateur est de la façon suivante : Le navigateur désigne une
page web par son adresse URL (Uniform Resource Locator) qui contient à la fois le nom
d'une machine mais aussi le nom du service demandé, le nom du document,…etc.Le
document,…etc. serveur
répond aux demandes en envoyant les pages au navigateur Web. Le navigateur
navigat interprète et
affiche alors les pages à l'utilisateur (Figure 4).
URL(Uniform
Uniform Resource Locator)est
Locator est un identifiant unique qui désigne une page appartenant à
un site web. Voici un exemple de format d'adresse URL:
U
http://www.exemple.com/test
http://www.exemple.com/test-dir/index.html?var1=temp1&var2=temp2
?var1=temp1&var2=temp2
4
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
3. Protocole HTTP
Le protocole HTTP (HyperText Transfer Protocol) est le protocole le plus utilisé sur Internet
depuis 1990.
La version 0.9 était uniquement destinée à transférer des données sur Internet (en particulier
des pages Web écrites en HTML.
La version 1.0 du protocole (la plus utilisée) permet de transférer des messages avec des en-
têtes décrivant le contenu du message en utilisant un codage de type MIME (Multipurpose
Internet Mail Extensions).
Le corps de la Requête
Les méthodes de requêtes http qui peuvent être utilisées sont présentées dans la table suivante
(table 1) :
Méthode Description
GET Requête de la ressource située à l'URL spécifiée
HEAD Requête de l'en-tête de la ressource située à l'URL spécifiée
POST Envoi de données au programme situé à l'URL spécifiée
PUT Envoi de données à l'URL spécifiée
DELETE Suppression de la ressource située à l'URL spécifiée
Table 1, méthodes et descriptions des requêtes HTTP
5
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Exemple:
GET http://www.exemple.comHTTP/1.0
Accept: text/html
If-Modified-Since: Saturday, 15-January-2015 14:37:11 GMT
User-Agent: Mozilla/23.0
3.2 RéponseHTTP
Une réponse HTTP est un ensemble de lignes envoyées au Client Web par le serveur. Elle
comprend :
• Une ligne de statut: c'est une ligne précisant la version du protocole utilisé et l'état du
traitement de la requêteà l'aide d'uncode et d'un Message explicatif.
• Les champs d'en-tête de la réponse: il s'agit d'un ensemble de lignes facultatives
permettant de donner des informations supplémentaires sur la réponse et/ou le serveur.
Chacune de ces lignes est composée d'un nom qualifiant le type d'en-tête, suivi de
deux points (:) et de la valeur de l'en-tête
• Le corps de la réponse: il contient le document demandé
6
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Ligne de statut
Champs d'en-tête1: valeur1
Champs d'en-tête2: valeur2
Champs d'en-tête3: valeur3
Le corps de la Réponse
Les codes et les Messages de réponse http sont présentés dans la table 3 :
7
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Exemple:
HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59 GMT
Content-Type: text/html
Content-Length: 1354
<html>
<body>
<h1>Hello World!</h1>
.
.
.
</body>
</html>
8
Beghoura Mohamed Amine Développement d’Applications
d’Appl Web
2ème Année Licence Informatique
Partie 2
Langages de programmation pour le Web
Dans cette deuxième partie de la matière développement des applications web, web nous allons
voir des généralités sur ce qu’on appelle page web statique et page web dynamique.
dynamique Nous
allons aussi
si parcourir le principe des langages balise et plus spécifiquement l’HTML et enfin
le XML pour la définition des données.
Le contenu d’une page web (sauf les textes, s’ils sont écris directement sur la page) est
simplement relié à la page par des lignes de code (qui marque sa position vis-à-vis
vis du texte et
la page).
Le contenu et la mise en forme d’une page web, tel qu’on le voit sur écran, sont affichés
qu’au moment du chargement de la page au travers d’un navigateur web.
Exemple explicatif :
Quand on crée un document dit « Word (office)», et que l’on intègre une image dessus, celle-
ci se trouve ensuite «contenu » dans le document. On peut ensuite envoyer notre document à
un contact, et celui-ci
ci reçoit l’intégralité du document (texte et photo).
En revanche pour une page web, web l’image que nous voulons que celle-cicelle affiche se
trouvera placée à côté (oudans un dossier séparé) de notre page
age et ce n’est qu’au moment de
9
Beghoura Mohamed Amine Développement d’Applications
d’Appl Web
2ème Année Licence Informatique
son affichage que le code programmésur la page web ira chercher l’image pour l’afficher.
Si nous voulons donc transmettre notre page web à un de nos contacts,
contacts nous devrons
donc joindre en plus de notre page,
page notre image.
Un Site Web statique est un site ou chacune des pages est créée en HTML.
HTML
Une page statique est une page dont l’intégralité du code va être interprété directement par
le navigateur (page
page programmée => page affichée).
Par opposition, un site Web dynamique est un site Web dont les pages sont générées
dynamiquement à la demande..
Une page dynamique, le serveur sur lequel la page est stockée, devra réaliser des opérations
avant de pouvoir afficher le contenu de la page demandée.On dit que le serveur, en fonction,
10
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Pour unepagewebilexistedestypesd’extensionsdedifférentstels
que:.html,.htm,.php,.aspx,.xmletc.Les pagesditesstatiquesportentengénéralel’extension .html e
t les pagesditesdynamiquesportentl’extension.php,.aspx ou d’autres encore.
Note :Les pages dynamiques sont dites pages sécurisées car on ne peut jamais (à partir
du navigateur ) voir lecode de construction de la page Internet, mais seulement celui de la
page Internet générée (code source visible depuis le navigateur).
Les langages de balises représentent une classe de langages spécialisés dans l'enrichissement
d'information textuelle. Ils utilisent des balises, unités syntaxiques délimitant des séquences
de caractères à l'intérieur d'un flux de caractères (par exemple un fichier texte).
Exemple : en HTML il suffit d'encadrer un mot par les balises <b> et </b> pour qu'il
apparaisse en gras.
Parmi les langages de définition de documents les plus populaires on compte DocBook,
LaTex, XML, HTML
4. HTML
Note :Un fichier écrit en langage HTML n'est autre qu'un fichier texte, mais dont le contenu
est structuré à l'aide de repères que l'on appelle des éléments. Chaque élément est constitué
de balises et d'attributs qui permettent d'apporter des informations sur son contenu.
La balise est le moyen de communiquer avec le navigateur. Elle apparaît entre les caractères
réservés < et >.
11
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
On trouve dans HTML de quoi structurer les listes, titres, tableaux, citations, adresses... autant
de structures du texte qui ne définissent pas l'apparence finale à l'écran.
Note :les balises (ou tags ou marqueurs) HTML ne s’affiche pas sur la page web, elles sont
interprétées par le navigateur.
Exemple :
Pour déclarer un paragraphe en HTML, on utilise la balise <p> comme suit :
Une balise HTML est un élément qui contrôle l’affichage sur le navigateur. Une balise
HTML est interprétée et elle ne s’affiche pas sur le navigateur.
Exemple :Voici un exemple qui présente la structure d’un document HTML simple
<html>
<head>
<title>First Step</title>
</head>
<body>
<p>hello world !!!</p>
</body>
</html>
Le code HTML présenté dans l’exemple est inséré dans un fichier dont le nom est
hello.htm.Lerésultat sur le navigateur est présenté dans la figure 4.
12
Beghoura Mohamed Amine Développement d’Applications
d’Appl Web
2ème Année Licence Informatique
Une balise peut en plus comporter de zéro à plusieurs attributs. Les attributs sont des
informations complémentaires qui la caractérisent.
caractérisent. Ils se présentent sous la forme
nom_attribut="valeur" (exemple
xemple :<p align= "left"> hello world!</p>).
Chaque balise ouverte doit être fermée, cependant il existe des exceptions. On distingue deux
types de balises :
13
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
<body>
</body>
</HTML>
Après le DOCTYPE, vient la balise <html>. C’est une balise racine qui doit être déclarée une
seule fois dans un document HTML pour que le navigateur identifier qu’il s’agit d’un
document HTML et pour contenir le reste des balises.
Le contenu de la balise <html> est principalement séparé sur deux parties :
1. Une partie qui contient une déclaration des informations relatives au document. Cette
partie est définie par la balise <head> (Les balises utilisées dans cette partie sont :
<title>, <meta />, <link />, <script>, <style>)
2. La deuxième partie qui est contenue entre la balise <body> sert à définir le contenu
qui va être affiché sur le navigateur.
14
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
L'histoire du HTML est résumée par le W3C sur son site. On pourrait la synthétiser par le
tableau suivant :
Date Événement
1989- Discussions, échanges et projets à l'initiative de chercheurs du CERN aboutissant à un
1992 premier HTML qualifié par la suite de version numéro 0.
1993 Création du navigateur MOSAIC (sans tréma) par le NCSA de l'Université de l'Illinois.
Ce navigateur tourne sur les PC. Création du W3C. Publication des recommandations
formant la version HTML 1.0.
1995 Recommandations sur le standard HTML 2.0 (insertion d'images, de tableaux, de listes
et de formulaires).
1995 Synthèse des nouvelles exigences des auteurs réunies dans les recommandations
du HTML 3.0 : trop ambitieuse, elle n'a jamais trouvé de consensus au sein même du
W3C.
1996 Version HTML 3.2 (liens sur image, applet Java, JavaScript...), reprise de la version 3
édulcorée.
1997 Version provisoire du HTML 4.0 (frames, feuilles de style, intégration d'éléments
multimédias).
1999 Dernière version à ce jour, HTML 4.01 n'apportant que des corrections minimales à la
version précédente.
2000 Sortie du format XHTML 1.0, une extension du XML.
2006 Sortie d'une version de travail de la recommandation XHTML 2.0.
2009 Annonce de la fin des travaux sur XHTML2.0 à la fin de 2009.
2009 Sortie d'une version de travail de la recommandation HTML 5.
Tableau 1, évolution du HTML
La version du HTML est définie dans la balise < !DOCTYPE>, le tableau suivant résume les
versions essentielles et leursDoctypes :
Version Doctype
HTML 5 <!DOCTYPE html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
HTML 4.01 Transitional "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
XHTML 1.0 Transitional "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Table 2, doctypes de quelques versions du HTML
15
Beghoura Mohamed Amine Développement d’Applications
d’Appl Web
2ème Année Licence Informatique
Dans cette section, nous présentons un exemple de création d’un tableau en HTML. Les
balises
es nécessaires pour ceci sont : <table>, <th>, <tr> et <td>. Le code HTML d’une page
qui va contenir le tableau est le suivant :
<!DOCTYPE html>
<html>
<head>
<title>Mon tableau</title>
<head>
<body>
<table >
<tr>
<th>Module</th>
<th>Credit</th>
</tr>
<tr>
<td>Web</td>
<td>4</td>
</tr>
<tr>
<td>GL</td>
<td>4</td>
</tr>
</table>
</body>
</html>
En HTML, les formulaires apportent l’interactivité à une page web. Ils permettent aux
utilisateurs d’introduire des données, sélectionner des choix ou de valider quelque chose.
Cependant, le langage HTML ne permet pas d’analyser ou de traiter ces informations. Ceci,
nécessite l’utilisation d’un autre langage complémentaire
complémentaire tel que le langage PHP que nous
allons voir dans la prochaine partie de cette matière.
La balise pour créer un formulaire en HTML est : <form>.. L’objectif est de signaler que tout
ce qui est entre cette balise double fait partie du formulaire.
16
Beghoura Mohamed Amine Développement d’Applications
d’Appl Web
2ème Année Licence Informatique
Sauf qu’il
il faut inclure les champs du formulaire selon le besoin. Pour cela, il existe plusieurs
types de balises telles que : <input />, <textarea />, … etc.
<form>
Pour personnaliser le type de la balise <input> selon l’usage à l’aide de l’attribut type:
17
Beghoura Mohamed Amine Développement d’Applications
d’Appl Web
2ème Année Licence Informatique
La balise <input /> peut prendre d’autres formes que des champs à saisie, qui sont:
1. Case à cocher
Code HTML:
<p>Cochez les aliments que vous aimez manger :</p>
<input type="checkbox" name="frites"
name="frites" /><label for="frites">Frites</label><br />
<input type="checkbox" name="steak" /><label for="steak">Steak haché</label><br />
<input type="checkbox"
ype="checkbox" name="epinards" /><label for="epinards">Epinards</label><br />
<input type="checkbox" name="huitres" /><label
/><label for="huitres">Huitres</label>
Résultat :
Note :on
on peut associer un attribut for à la balise <label> pour indiquer le nom du champ input
dont on veut lier le libellé.
Code HTML :
<p>Veuillez
Veuillez indiquer la tranche d'âge dans laquelle vous vous situez :<br /></p>
</p>
<input type="radio" name="age" value="moins15" /><label >Moins de 15 ans</label><br />
<input type="radio" name="age" value="medium15-25"
value="medium15 /><label >15-25
25 ans</label><br />
<input type="radio" name="age" value="medium25-40"
value="medium25 /><label >25-40
40 ans</label><br />
<input type="radio" name="age" value="plus40" /><label >Encore plus vieux que ça ?!</label>
Résultat :
3. Listes déroulantes
Code HTML:
18
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Résultat :
Finalement, Pour récupérer ce que les visiteurs ont saisi, le langage HTML ne suffit pas. Il
faut utiliser un langage « serveur » comme PHP.
Note :Il faut bien se rappeler du rôle de l’attribut name qui sera utile pour la troisième partie
de cette matière.
Les données peuvent être envoyées en utilisant deux méthodes différentes (voir les
méthodesGET et POST du protocole http) vers une autre page web qui sera spécifiée avec
l’attribut action dans la balise <form>.
Le type de la méthode choisie est spécifié dans la balise <form> en utilisant l’attribut method.
Exemple :
<form action = "ma_page_destination.php"method="POST/GET">
<label>Firstname:</label>
<input type="text" name="fname">
<br>
Les données d’un formulaire sont envoyées par la méthode GET (http) en tant que des
variables dans l’URL ou bien avec la méthode POST (http). Chacune de ses méthodes a ses
caractéristiques et son mode d’utilisation à l’exemple :
GET:
- Les données sont concaténées à l’URL de l’adresse spécifiée avec l’attribut action
- La longueur de l’URL ne doit pas dépassé 3000 caractères
- Les données sont visibles sur le lien
- La méthode GET est utilisée lorsqu’il s’agit d’envoyer des données non-sensitives
(sécurité)
19
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
POST:
- Les données sont envoyées dans les requêtes http (invisible sur l’URL)
- La taille des données envoyées par POST est illimitée
- La requête POST est utilisée pour envoyer des données sensitives (sécurisée)
Les standards définissant CSS sont publiés par le World Wide Web Consortium (W3C).
Introduit au milieu des années 1990, CSS devient couramment utilisé dans la conception de
sites web et bien pris en charge par les navigateurs web dans les années 2000.
La feuille de style CSS contient la déclaration de toute la mise en forme des pages :
le positionnement des éléments, l'image de fond, les polices de caractère, les couleurs,
etc.Celle-ci sera liée à chaque page html. Ainsi, lorsqu'on en modifiera un élément, cela
engendra le même effet sur les pages html liées à la feuille de style CSS.
1. Dans une feuille de style externe. Enregistrer le code CSS dans un fichier s'appelant
(par exemple) "style.css", et mettre dans l'en-tête de la page html (entre les
balises <head></head>) :
2. Dans une feuille de style interne.Pour déclarer des styles qui ne s'appliqueront qu'à la
page considérée, les styles sont à déclarerdans la balise <head></head> entre les
balises suivantes :
<style type="text/css">
....
</style>
3. Dans le code au sein des balises html (inline).Si l'on veut attribuer un style à un seul
endroit, on peut déclarer le style à l'intérieur d'une balise html à l'aide de
l'attribut style. Par exemple :
La structure d’une feuille CSS est la suivante ou pour chaque déclaration, la structure est toujours la
même :
20
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Sélecteur {
Propriété: valeur;
}
• Le sélecteur, c'est la balise (body ; h1 ; p, etc.), l'identifiant (id) ou la classe (class);
• La propriété, c'est l'attribut qu'on veut appliquer (font ; background ; margin ; etc.)
• Et enfin la valeur qui précise les caractéristiques de la propriété
Sélecteurs CSS class et idsont utilisé pour définir des styles particuliers que l'on voudra
reproduire de façon ponctuelle ou récurrente un style dans les pages HTML.Les propriétés
utilisées avec les sélecteurs class et id sont :
• background-color
• float
• width
• margin
• text-align
.haut {
text-align:right;
}
<p class="haut">
<a href="#haut">Haut de page</a>
</p>
#menu {
background-color:silver;
width:100px;
float:left;
}
#contenu {
margin-left:110px;
}
<div id="menu">
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
</div>
21
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
<div id="contenu">
<p>Hello World </p>
<p class="haut">
<a href="#haut">Haut de page</a>
</p>
</div>
Note :Les sélecteurs Class et id sont différents d’où le sélecteur id ne peut être utilisé qu’une
seule fois dans une page alors que le sélecteur class peut être utilisé plusieurs fois dans la
même page.
Pour une mise en page souple et cohérente, on divisera la page en "blocs" avec la balise html
<div></div>(des div, appelés aussi "boites" ou "calques"), qui ont l'avantage de pouvoir être déplacés
de gauche à droite, ou de haut en bas grâce aux CSS.
22
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Exemple :
Code HTML :
<div id="entete">
En tête
</div>
<div id="main">
<div id="menu">
Menu
</div>
<div id="contenu">
Contenu
</div>
</div>
<div id="footer">
Pied de Page
</div>
Code CSS :
#entete, #menu, #contenu, #footer {
padding:1px 0;
}
#entete {
background-color:#FF9900;
text-align:center;
}
#main {
max-with:960px;
margin:auto;
}
#menu {
float:left;
width:240px;
background-color:#FF3366;
}
#contenu {
margin-left:245px;
23
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
background-color:#9966FF;
}
#footer {
background-color:#669933;
text-align:center;
clear:both;
}
24
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Balise Description
<!--...--> Defines a comment
<!DOCTYPE> Defines the document type
<a> Defines a hyperlink
<b> Definesboldtext
<body> Defines the document's body
<br> Defines a single line break
<button> Defines a clickablebutton
<canvas> Used to draw graphics, on the fly, via scripting (usually JavaScript)
<caption> Defines a table caption
<code> Defines a piece of computer code
<col> Specifies column properties for each column within a <colgroup> element
<colgroup> Specifies a group of one or more columns in a table for formatting
<datalist> Specifies a list of pre-defined options for input controls
<dd> Defines a description/value of a term in a description list
<del> Defines text that has been deleted from a document
<details> Defines additional details that the user can view or hide
<dialog> Defines a dialog box or window
<div> Defines a section in a document
<em> Definesemphasizedtext
<embed> Defines a container for an external (non-HTML) application
<fieldset> Groups related elements in a form
<figcaption> Defines a caption for a <figure> element
<figure> Specifies self-contained content
<footer> Defines a footer for a document or section
<form> Defines an HTML form for user input
<h1> to <h6> Defines HTML headings
<head> Defines information about the document
<header> Defines a header for a document or section
<hgroup> Defines a group of headings
<html> Defines the root of an HTML document
<img> Defines an image
<input> Defines an input control
<kbd> Defines keyboard input
<keygen> Defines a key-pair generator field (for forms)
<label> Defines a label for an <input> element
<legend> Defines a caption for a <fieldset> element
<li> Defines a list item
<link> Defines the relationship between a document and an external
resource (most used to link to style sheets)
<main> Specifies the main content of a document
<menu> Defines a list/menu of commands
25
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
<menuitem> Defines a command/menu item that the user can invoke from a popup
menu
<meta> Defines metadata about an HTML document
<meter> Defines a scalar measurement within a known range (a gauge)
<nav> Defines navigation links
<noscript> Defines an alternate content for users that do not support client-side scripts
<object> Defines an embeddedobject
<ol> Defines an orderedlist
<optgroup> Defines a group of related options in a drop-down list
<option> Defines an option in a drop-down list
<output> Defines the result of a calculation
<p> Defines a paragraph
<param> Defines a parameter for an object
<s> Defines text that is no longer correct
<samp> Defines sample output from a computer program
<script> Defines a client-side script
<section> Defines a section in a document
<select> Defines a drop-down list
<small> Definessmallertext
<source> Defines multiple media resources for media elements (<video> and <audio>)
<span> Defines a section in a document
<strong> Defines important text
<style> Defines style information for a document
<sub> Definessubscriptedtext
<sup> Definessuperscriptedtext
<table> Defines a table
<td> Defines a cell in a table
<textarea> Defines a multiline input control (text area)
<th> Defines a header cell in a table
<thead> Groups the header content in a table
<time> Defines a date/time
<title> Defines a title for the document
<tr> Defines a row in a table
<track> Defines text tracks for media elements (<video> and <audio>)
<u> Defines text that should be stylistically different from normal text
<ul> Defines an unorderedlist
<var> Definesa variable
<video> Defines a video or movie
<wbr> Defines a possible line-break
26
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Les entités permettent d'avoir accès à des caractères qui ont un sens en HTML. Ces caractères
sont :
Caractère Entité
< <
> >
& &
Table 2. Tableau de correspondances entre les entités et les caractères réservés en HTML
D'autres entités renvoient à des caractères spéciaux :
27
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
28
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
29
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
30
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Partie 3
Langages de programmation coté serveur
La programmation coté serveur concerne les langages de script dont l’exécution se fait sur
le serveur. Ce type de langage permet de programmer des pages web dynamiques. Dans cette
partie, nous allons principalement voir les conceptions de programmation avec le langage de
script PHP.
Des liens intéressants pour apprendre davantage les principes de la programmation avec le
langage PHP :
1- http://www.codecademy.com/en/tracks/php
2- http://teamtreehouse.com/tracks/php-development
1. Introduction
PHP (officiellement, ce sigle est un acronyme récursif pour "PHP:
HypertextPreprocessor") est un langage de script généraliste, Open Source, et spécialement
conçu pour le développement d'applications web. Il peut être intégré facilement au page
HTML.
Le langage PHP est un langage de programmation interpréter (et non pas compiler) et
supporté par de nombreux serveurs WEB.
Le code PHP est inséré dans les pages WEB et repéré par un serveur WEB (si il est muni de
l'extension PHP) qu'il l'enverra à PHP pour l'interpréter.
Grâce à ces portions de code PHP insérées dans les pages WEB, PHP permettra d'écrire des
pages WEB à contenus dynamiques (vous écrivez une page HTML avec du code PHP inclus à
l'intérieur afin de réaliser une action précise.)
Note :Il faut changer l'extension de ce fichier en .php lorsque vous insérez le moindre petit
bout de code PHP dans une page HTML, (si vous avez une page nommée index.html et que
vous y insérez du code PHP, il vous faudra la renommer en index.php).
Ce qui distingue le PHP des langages de script comme le Javascript est que le code écrit en
PHP est exécuté sur le serveur web.
Le client web ne reçoit que le résultat du script, sans aucun moyen d'avoir accès au code qui a
produit ce résultat.
Pour que le serveur qui héberge la page web puisse repérer les portions de code en PHP, il
suffit simplement de lui indiquer le début ainsi que la fin du code PHP les deux marqueurs
suivant :
• La balise < ?php pour marquer le début d'une portion de code PHP
• La balise ?> pour marquer la fin d'une portion de code PHP
31
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
<html>
<head>
<title>Test</title>
</head>
<body>
<p>un bout de code en HTML</p>
<?php
echo 'Mon premier script en PHP';
?>
</body>
</html>
Comme tous les langages de programmation, il est possible de commenter le code source en
PHP. Pour cela, il y a deux méthodes :
• pour commenter une seule ligne de code PHP, on précédera cette ligne de deux
slashs //
• pour commenter une portion de code, on précédera la première ligne de code que l'on
souhaite commenter par un /* et on fera suivre la dernière ligne de code que l'on
souhaite commenter par un */
Exemple :
<?php
// ceci est un commentaire sur une seule ligne
/* ceci est
un commentaire
sur plusieures lignes */
?>
32
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
1. La fonction Echo
Cette fonction permet d'afficher à l'écran des chaînes de caractères définie entre deux
apostrophes ‘’ … ‘’, qui peuvent être définies directement par l'utilisateur. Les chaines de
caractères peuvent être des messages (texte) comme elles peuvent être un code HTML.
Les paramètres de la fonction echo peuvent ne pas être entourés de parenthèses.
Exemple :
Par contre cette portion du code affichera l’image mon_image.jpg en utilisant la balise
html <img>.
2. Les Variables
Pour déclarer des variables en PHP il faut que:
• les variables doivent être représentées par une chaîne de caractères, ayant toujours
comme premier caractère, le caractère dollar ($).
• Les variables peuvent avoir n'importe quelle lettre en deuxième caractère du moment
qu'il ne s'agit pas d'un chiffre.
• Les noms de variables ne peuvent pas contenir d'espace.
Pour assigner une valeur à une variable, il faut d'utiliser l'opérateur =, tout en prenant soin de
placer la variable qui reçoit le résultat d'une opération à gauche du signe =.
Exemple :
<?php
$nom = "LA GLOBULE";
// $nom contient alors la chaîne de caractères LA GLOBULE.
$mon_chiffre = 12;
// $mon_chiffre contient la valeur numérique 12.
$5toto = "test";
// Cette déclaration n'est pas valide car le nom de la variable commence par un chiffre
?>
33
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
3. Les opérateurs
Les opérateurs sont utilisés pour effectuer des opérations sur les variables. Le langage PHP
est dotéd’un ensemble d’opérateurs divisé sur 7 sous-ensembles:
34
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
4. Les conditions
Les expressions conditionnelles sont utilisées pour effectuer des actions à la base des
conditions. Les expressions permettant de déclarer les conditions en PHP sont :
1. l’expression if :
Syntax:
if (condition) {
/*le code à executer*/;
}
35
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
2. if...else :
Syntax:
if (condition) {
code à exécuter si la condition est vraie
} else {
le code à exécuter si la condition est fausse
}
Exemple: le code suivant affiche bonjour si l’heure est inférieure à 20h et bonsoir si elle
est supérieure à 20h
<?php
$t = date("H");
3. if...elseif....else
Syntax:
if (condition1) {
le code à executer si la condition 1 est vraie
} elseif (condition2) {
le code à exécuter si la condition 1 et fausse et la condition 2 est vraie
} else {
le code à exécuter si la condition 1 et la conditions 2 sont fausses
}
Exemple: le code suivant affiche bonjour si l’heure est supérieure à 6 et inférieur à 15,
bonsoir si l’heure est supérieure à 15h et inférieure ou égale à 20h et bonne nuit si l’heure
est supérieure à 20.
<?php
$t = date("H");
36
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
4. Switch Statement
Syntax :
switch (n) {
case label1:
/* si n==label1*/
break;
case label2:
/* si n==label2*/
break;
case label3:
/* si n==label3*/
break;
default:
le code à executer si n est different de tous les labels;
}
switch ($favcolor) {
case "rouge":
echo "la couleur choisie est rouge!";
break;
case "bleu":
echo "la couleur choisie est bleu!";
break;
case "vert":
echo "la couleur choisie est vert!";
break;
default:
echo "aucune couleur n’a été choisie ";
}
?>
5. Les boucles
Souvent, lorsque nous écrivons un code, nous voulons qu’un bloque de code s’exécute
plusieurs fois. Au lieu de répéter les lignes de code que nous voulons répéter, nous utiliserons
les boucles.
• while – Une boucle qui se répète jusqu’à ce que la condition spécifiée soit fausse.
• do...while – Une boucle qui s’exécute une fois, ensuite elle se répète jusqu’à ce que la
condition soit fausse.
• for–Une boucle qui s’exécute un nombre de fois.
• foreach–Une boucle qui parcours un tous les éléments d’un tableau.
37
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
1. While
Syntaxe :
while (condition is true) {
code to be executed;
}
Exemple : Affecter la value 1 à $x, et répéter la boucle 5 fois ($x <= 5).
<?php
$x = 1;
while($x <= 5) {
echo "The number is: $x <br>";
$x++;
}
?>
2. do … while
Syntaxe :
do {
/* code to be executed; */
} while (condition is true);
Exemple:
<?php
$x = 1;
do {
echo "The number is: $x <br>";
$x++;
} while ($x <= 5);
?>
3. for
Syntaxe :
for (init_counter; test_counter; increment_counter) {
/* code to be executed; */
}
Paramèters:
initcounter: initialise le compteur de la boucle
testcounter: Evaluer la condition d’arrêt de la boucle.
incrementcounter: incrémentation/décrémentation du compteur.
38
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
<?php
$colors = array("red", "green", "blue", "yellow");
6. Les fonctions
Une fonction est une bloque de code qui peut être utilisé plusieurs fois dans un programme.
Le langage PHP présente la possibilité de déclarer des fonctions sur une page web. Par contre
une fonction ne sera exécutée que lorsqu’on lui fait appel (et non pas lors de l’affichage de la
page).
function nom_function() {
/*code à executer;*/
}
Des informations peuvent être envoyées à une fonction à travers les arguments qui sont
déclarés entre les parenthèses et séparés par des virgules.
Exemple :
<?php
function familyName($fname, $year) {
echo $fname."Born in".$year. "<br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
Les fonctions en PHP peuvent avoir une valeur de retour qui sera renvoyée en utilisant le mot
clé return.
Exemple :
<?php
function sum($x, $y) {
$z = $x + $y;
return $z;
}
39
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
7. Les tableaux:
Un tableau stocke plusieurs valeurs en une seule variable, il permet de stocker plusieurs
valeurs à la fois.
Exemple :
Soit une liste d’éléments (une liste de noms de voitures), le stockage des voitures dans des
variables individuelles sera comme suit :
$cars1 = "Volvo";
$cars2 = "BMW";
$cars3 = "Toyota";
En php:
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
Example
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
Cet exemple permet de créer un tableau indexé nommé $cars, et d’affecter trois éléments à ce
tableau, et d’imprimer un texte qui contient les valeurs du tableau.
40
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Example
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo count($cars);
?>
Pour faire une boucle et imprimer toutes les valeurs d’un tableau indexé, vous devez utiliser
la boucle for.
Example
<?php
$cars = array("Volvo", "BMW", "Toyota");
$arrlength = count($cars);
Ou:
$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";
Exemple
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
echo "Peter is " . $age['Peter'] . " yearsold.";
?>
Pour faire une boucle et imprimer toutes les valeurs d’un tableau indexé, vous devez utiliser la
boucle Foreach.
Exemple
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
41
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Vous pouvez stocker les données du tableau ci-dessus dans un tableau de deux dimensions
$cars = array
(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
Maintenant le tableau de deux dimensions $cars contient quatre tableaux, et possède deux
indice : l’indice des lignes et l’indice des colonnes.
Pour accéder aux éléments du tableau $carsvous devez pointer sur les deux indices (celui des
lignes et celui des colonnes).
Exemple
<?php
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
?>
Vous pouvez aussi utiliser la boucle for dans une autre boucle for pour obtenir les éléments du
tableau $cars (vous devez toujours pointer sur les deux indices)
Exemple
<?php
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
?>
42
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
8. Les sessions
Une session est une façon de stocker des informations (dans les variables) pour être utilisé sur
plusieurs pages.
Les informations sont stockées sur le serveur (Contrairement à un cookie, l'information n’est
pas stocké sur l'ordinateur des utilisateurs.).
Donc les variables de session contiennent des informations sur un seul utilisateur, et sont
disponibles pour toutes les pages en une seule application.
Remarque: Si vous avez besoin d'un stockage permanent, vous pouvez stocker les données
dans une base de données.
Démarrage d'une session PHP
Une session est lancée avec la fonction session_start ().
Les variables de session sont définis avec la variable globale PHP: $ _SESSION.
Maintenant, nous allons créer une nouvelle page appelée "démo _session 1.php". Dans cette
page, nous commençons une nouvelle session de PHP et fixer des variables de session:
Example
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>
</body>
</html>
Remarque: La fonction session_start () doit être la première chose dans votre document.
Avant toutes les balises HTML.
43
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
Ensuite, nous créons une autre page appelée "demo_session2.php". Depuis cette page, nous
allons accéder aux informations de session, nous avons mis sur la première page ("session de
démonstration 1.php").
Notez que les variables de session ne sont font pas transmettre individuellement à chaque
nouvelle page. Il faut ouvrir la session au début de chaque page (session_start ()).
Notez également que toutes les valeurs de variables de session sont stockés dans la variable
globale $ _SESSION:
Example
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>
</body>
</html>
Une autre façon de montrer toutes les valeurs de variables de session pour une session
utilisateur est d'exécuter le code suivant:
Example
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
exemple
<? php
session_start ();
?>
<! DOCTYPE html>
<html>
<body>
<? php
// Pour changer une variable de session, à l'écraser
_SESSION ["Couleur de fav"] = "yellow" $;
print_r ($ _ SESSION);
44
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
?>
</ body>
</ html>
Example
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// remove all session variables
session_unset();
</body>
</html>
L’exemple suivant représente un simple formulaire HTML avec deux inputs et un bouton
envoyer:
Example
<html>
<body>
</body>
</html>
Lorsque l’utilisateur remplit le formulaire ci-dessus et click sur le bouton envoyer, les
données du formulaire seront envoyées vers un fichier PHP qui s’appelle « welcome.php »
pour le traitement. Dans cet exemple, les données du formulaire sont envoyées avec la
méthode HTTP POST.
Pour afficher les données envoyées, vous pouvez simplement afficher toutes les variables en
utilisant la fonction echo. Le fichier welcome.php contient le code suivant
<html>
<body>
45
Beghoura Mohamed Amine Développement d’Applications Web
2ème Année Licence Informatique
</body>
</html>
Example
<html>
<body>
</body>
</html>
</body>
</html>
46