Académique Documents
Professionnel Documents
Culture Documents
Dhieb
Programmation Web :
Fiche16 : Création d’une page web statique : Front-end+ Back-end (HTML5) (CSS3)
</body>
</html>
1- <!DOCTYPE html>est la première ligne, elle indique que le fichier décrit une page en HTML5
2- lang="fr"est un attribut qui spécifie que la langue du document est les
français. À l'intérieur de la page on peut voir deux zones :
3- <head>qui donne les entêtes de la page et qui se termine par </head>
4- <body>qui donne le corps de la page (tout le contenu) et qui se termine par </body>
<head>
<meta charset="utf-8" /> il s'agit d'une balise qui fonctionne toute
En-tête
seule, et qui possède un attribut
« charset » (ensemble de caractères) qui possède une valeur « utf-8 ».
</head>
<title>Titre</title>la balise title qui fonctionne par paire (ouverture et
fermeture de la balise)
<h1> : balise de titre principal, il ne devrait y en avoir qu'une par <h2>,<h3>,..<h6>: sous titres.
page. </h1> , </h2> , </h3> …
<p> : balise de paragraphe utilisée pour écrire du texte.
Remarquons que même si ce n’est pas obligatoire, on indente les blocs pour pouvoir s'y retrouver facilement !
1
NSI Première Interaction M/M/W Mme M. Feida B.Dhieb
Exemple : à l'aide de bloc Note créer la page suivante, la sauver en page1.html puis l'ouvrir avec un
navigateur.
<!DOCTYPEhtml> On y distingue bien les
<html> différents styles par défaut de
<head> h1, h2 et p.
<metacharset="utf-8"/> Ajouter des balises de :
<title>Bonjour!</title>
1-lien hypertextes(interactif)
</head>
<body> 2-insertion d’images
<h1> Mon beau titre</h1> 3- <a href=”#top”>ancre dirigeant
<section> vers le haut de la page</a>
<h2>J'aime</h2> (interactif)
<p>les biscottes et le nutella</p> Exemple :
</section> <a href=’ www.w3schools.com’>
<section> Lien Utile</a>
<h2>Je n'aime pas</h2>
<p>la haine</p>
</section>
</body>
</html>
Autres balises importantes :
Exemple : à l'aide de bloc Note créer une autre page, la sauver en page1.css et enregistrez dans le
même répertoire que votre fichier html.
Tapez dans page1.css les lignes suivantes
Pour les couleurs, vous pouvez ultérieurement se référer à
p{ ce lien :
color : blue; http://www.tutorialspoint.com/html5/html5_color_names
} .htm
h1 {
font-size : 50px; On peut agir sur l’intensité des couleurs Rouge, Verte et
background-color: rgb(123, 95, 10); Bleue par des valeurs entre 0 et 255.
} rgb : rouge, vert, bleu
2
NSI Première Interaction M/M/W Mme M. Feida B.Dhieb
Ensuite, intégrez ce fichier dans la source html avec la ligne suivante dans le head de la page avec la
ligne :
<link rel="stylesheet"href="page1.css">
L’objectif de ce cours n’est pas la maîtrise de CSS3. Cependant si vous voulez embellir vos pages HTML et en
savoir plus sur le sujet, vous trouverez aussi une liste non exhaustive des propriétés CSS sur ce site : Mémento
des propriétés CSS
Cependant pour identifier un élément d’une page, toutes les balises précédentes peuvent contenir deux attributs
permettant de les identifier :
• class : contient un ou plusieurs noms séparés par des espaces. Elles seront utilisées dans la feuille de style
CSS. Plusieurs balises peuvent avoir la même class
• id : permet d’attribuer un identifiant représentant une seule balise unique dans le fichier
Pour cela ajoutez à la feuille de style précédente page1.css Et dans les balises html du fichier page1.html, ajouter les
les lignes suivantes : attributs suivants :
.TresGros{
font-size : 100px; <p class="TresGros">le matin les
biscottes et le nutella</p>
}
#enrouge{
<p class="TresGros" id="enrouge">le
color : red; matin</p>
}
NB : 2 autres possibilités pour introduire un code CSS ; dans le code HTML, entre les 2 balises <Style>
et </Style>, dans l’entête entre <Head> et </Head> ou bien dans le corps entre <Body> et </Body>.
Bien entendu, il n’y a pas que ces 2 attributs ! Nous en avons déjà rencontré quelques ’uns : src pour insérer une
image, href pour insérer un lien. Vous trouverez ici une liste de tous les attributs.
• Distingue bien la différence entre l’attribue class et id. Quels sont leurs domaines d’actions ?
• Que peut-on dire de la ligne de code CSS p {color : blue;} . Quel est son impact ici ? Que traite en priorité
CSS ? De quel couleur serait un nouveau texte dans une nouvelle balise <p> ?
3
NSI Première Interaction M/M/W Mme M. Feida B.Dhieb
Plusieurs possibilités s’offrent :
1. Réaliser des échanges clients/serveurs en passant par des requêtes HTTP. Avec l’envoi et la réception des
données d’un formulaires par exemple. Dans ce cas les données échangées transitent via des allers retours
sur le réseau. Côté serveur un langage (du type de PHP) est nécessaire pour traiter les données reçues et
renvoyer un message au client. Tout cela prend du temps !
2. Réaliser les calculs, affichages, programmes côté client avec un langage adapté comme JavaScript. Un
interpréteur de JavaScript est d’office intégré dans la quasi totalité des navigateurs (firefox, google chrome
etc.). L’avantage de traiter les informations côté client est la vitesse d’exécution, inutile alors de faire des
grands allers retours serveur/client.
Une liste d’évènement non exhaustive :
Javascript est un langage développé en 1995 par Brendan Eich pour Netscape,
Actuellement version 13 - ECMA-262 (Juin 2022)
.
Caractéristiques Javascript :
• Langage de script
• Interprété (et non compilé),
• Interactivité avec l’environnement d’exécution
• Orienté objet
• "Permissif", certains diront "souple"
• Code javascript écrit par l’auteur du site
• Exécution côté client (= sur la machine de l’internaute)
ATTENTION l’objectif de ce cours n’est pas d’apprendre le langage JavaScript mais d’appréhender à travers
des exemples simples de ce langage la notion d’évènements.
4
NSI Première Interaction M/M/W Mme M. Feida B.Dhieb
2 méthodes sont possibles pour l’insertion d’un code Javascript :
1- Entre les balises <Script> et </Script> dans le head de la page HTML
2- Dans un fichier ayant l’extension .Js, et on assure la liaison avec le code html suivant :
<scriptsrc="page1.js"type="application/javascript"></script>
Analysons ce code :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Bonjour!</title>
<script type="application/javascript">
function salut(){
window.alert("Salut à toi élève NSI")
}
function clicSVP(element){
if (element.id=="choix1")
window.alert("GOURMAND(E) !")
else if (element.id=="choix2")
window.alert("Bravo c'est bon pour la santé")
}
</script>
</head>
<body onload="salut()";>
<h1> Clique sur ton aliment préféré </h1>
<ol>
<li><button id="choix1" onclick="clicSVP(this)"> chocolat
</button></li>
<li><button id="choix2" onclick="clicSVP(this)"> carottes
</button></li>
</ol>
</body>
</html>
• Repère et donne la liste de tous les évènements HTML de cette page. Donne leur rôle.
• Quelles sont les différences entre Python et JavaScript pour définir une fonction ? (ou
procédure ici, car elle ne retourne rien…)
• A ton avis que représente le paramètre this appelé dans la fonction clicSVP(this). Quel est le
rôle des identifiants dans ce cas ?
5
NSI Première Interaction M/M/W Mme M. Feida B.Dhieb
6
NSI Première Interaction M/M/W Mme M. Feida B.Dhieb
7
NSI Première Interaction M/M/W Mme M. Feida B.Dhieb
Vocabulaire
Le protocole HTTP définit les requêtes envoyées par le client sur le serveur. Une requête client est de la forme :
Ligne de statut (c’est la version HTTP du serveur avec un code retourné 200,403,404,500
etc. qui indique si c’est ok, s’il y a une erreur ...)
En-tête (le logiciel du serveur, son système d’exploitation, le type de fichier, sa longueur,
les cookies etc.)
(saut de ligne)
Corps de réponse (le fichier html ou autre)
8
NSI Première Interaction M/M/W Mme M. Feida B.Dhieb
Le client annonce au serveur qu’il veut communiquer avec la version 1.1 du protocole HTTP et il veut accéder à
la ressource test.html par la méthode GET.
L’inconvénient du protocole HTTP c’est que les données sont transmises « en clair ». Une personne mal
intentionnée peut les intercepter. Le protocole HTTPS chiffre (code) les messages avant de les transmettre afin de
palier à cet inconvénient. Les pages chiffrées sont reconnaissables par leur URL qui commence toujours par https://
9
NSI Première Interaction M/M/W Mme M. Feida B.Dhieb
Formulaire d’une page Web :
Toute page HTML peut être enrichie de formulaires interactifs, qui invitent vos visiteurs à renseigner des
informations : saisir du texte, sélectionner des options, valider avec un bouton. . . tout est possible !
Nous arrivons cependant aux limites du langage HTML car il faut ensuite pouvoir analyser les informations que le
visiteur a saisie. . . et cela ne peut pas se faire en langage HTML. Comme nous allons le voir, le traitement des
résultats doit s’effectuer dans un autre langage : PHP, Python, Ruby.…
• <form> Cette balise délimite le formulaire. Elle peut prendre comme attributs :
• action : qui donne l’URL où doivent être envoyées les données
• method : les 2 méthodes d’envois pour un formulaire GET ou POST
• <input > Champ de formulaire qui selon l’attribut type peut correspondre à du texte (text), un bouton
(submit), des boutons radios (radio), un email (email), un mot de passe (password),...
• <label> texte qui affiche le texte correspondant au <input>
• <textarea> Zone de saisie multiligne
• <select> Liste déroulante
• <option> Élément d’une liste déroulante
Le but de ce cours n’est pas de te faire devenir un pro du formulaire mais de t’en faire comprendre ses principes.
Tu trouveras ici tout complément nécessaire pour une utilisation plus approfondie.
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8"/>
<title>Bonjour!</title>
</head>
<body>
<form action="…"method="get">
<p>
<inputtype="text"name="prenom"/>
<inputtype="submit"value="Valider"/>
</p>
</form>
</body>
</html>
➢ La sécurité :
Comme on vient de le voir avec la méthode GET les données sont transmises en clair dans l’URL en ajoutant à la
fin « ?donnée=valeur ».
On comprend facilement que ce n’est pas terrible si on veut transmettre un mot de passe, un code bancaire, bref
une donnée sensible. Dans ce cas on préférera la méthode POST.
➢ La taille :
Les navigateurs imposent des limites à la taille de l’URL. En cas de dépassement la réponse à la requête est le
code d’erreur 404. On doit donc dans ce cas utiliser la méthode POST qui transmet les données dans le cors de la
réponse à la requête, et donc n’est pas limité en taille.
Cross-Origin Resource Sharing :cors
➢ Accès :
Le fait d’avoir les données dans l’URL peut offrir à l’utilisateur de nouvelles possibilités.
Tu as directement accès à la réponse sans passer par le fichier html. De plus tu peux créer un raccourci dans un site
directement sur ce lien de réponse.
Par exemple sur ta page web de cuisine, tu veux faire une recherche sur wikipédia sur le chocolat, tu peux mettre
directement en raccourci :
https://fr.wikipedia.org/wiki/Index.php?search=chocolat
• Pour récupérer les données en php, il faut posséder un serveur qui gère le php ou utiliser un serveur qui
fonctionne avec un autre langage (ex :PYTHON).
• En python, on récupère la variable passée par la méthode POST par le script $_POST['prenom']
• Un fichier php peut être au départ un fichier de type html, mais il contient au moins un bloc de code
php délimité par <?php ou <?PHP et ?> . Le fichier comporte l’extension .php
• La fonction echo écrit un texte, une variable. Pour concaténer un texte et une variable, php utilise le
point.
Pour les sitesWeb en Python, il existe un frameWork qui gère toute la partie serveur : Django.
Pour les sitesWeb en Php, il existe plusieurs frameWorks qui gèrent toute la partie serveur : Symphony3, Lavarel,.…