Académique Documents
Professionnel Documents
Culture Documents
R. Lefebvre
S. Turrin
F. Vercouter
2022 - 2023
Objectifs du cours
• Savoirs
• Connaître les fonctionnalités des technologies Web
• Connaître les principaux éléments des technologies Web
• Savoir-faire
• Utiliser les principales fonctions des technologies permettant la construction
d’un site Web
• Utiliser un maximum les ressources disponibles sur Internet
Plan du cours
Cours Thème Description Document à rendre
1 Introduction Paradigme Client-Serveur + Outils
2 HTML Balises principales
3 HTML Les liens et les tableaux
4 CSS Introduction - Sélecteurs
5 CSS Propriétés
6 CSS Positionnement
Congés Impression PDF OpenClassRooms
7 PHP Les langages de programmation
8 PHP PHP et Formulaires HTML
9 PHP Fonctions
10 Javascript Syntaxe
11 Javascript Interaction avec le DOM
Révision
Documents à rendre
pour le 4 novembre
via Moodle !!!
https://openclassrooms.com/fr/courses/1603881
-apprenez-a-creer-votre-site-web-avec-html5-et-
css3
• Le paradigme Client-Serveur
• Les technologies
• Les outils
Le paradigme Client-Serveur
Le paradigme Client-Serveur
CLIENT
Envoi d'une requête SERVEUR WEB
Envoi d'une
Réponse requête
CLIENT INTERNET
Réponse
Définition
• Dans une relation Client-Serveur, une entité (le client) demande quelque chose (la
requête) à une autre entité (le serveur) qui la lui fournit ou pas (la réponse).
Les 4 couches les plus basses (1 à 4) sont généralement gérées par l’OS (Windows ou Mac OS/X).
Les 3 couches supérieures (5 à 7) sont gérées par des applications à part entière (Firefox, Explorer, …).
Le côté serveur
• Le serveur reçoit des demandes et fabrique des réponses.
• Pour ce faire il utilise des langages comme le PHP pour faire des
calculs, structurer des données ou en récupérer dans une base de
données à l’aide de SQL (Structured Query Langage).
Contenu généré par le serveur (www.ephec.be)
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!--[if IE]><![endif]--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="description" content="Bacheliers
en Droit, e-Bussiness, Comptabilité, Marketing, Commerce extérieur, Technologie de l'Informatique, Automatique, Electromécanique." /> <meta name="generator" content="Drupal 7 (https://www.drupal.org)" /> <link rel="canonical" href="https://www.ephec.be/" /> <link
rel="shortlink" href="https://www.ephec.be/" /> <meta property="og:site_name" content="EPHEC" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://www.ephec.be/" /> <meta property="og:title" content="EPHEC" /> <meta
name="twitter:card" content="summary" /> <meta name="twitter:url" content="https://www.ephec.be/" /> <meta name="twitter:title" content="EPHEC" /> <meta itemprop="name" content="EPHEC" /> <meta name="dcterms.title" content="EPHEC" /> <meta name="dcterms.type"
content="Text" /> <meta name="dcterms.format" content="text/html" /> <meta name="dcterms.identifier" content="https://www.ephec.be/" /> <link rel="apple-touch-icon" sizes="180x180" href="/sites/all/themes/custom/expansion/dist/images/favicons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/sites/all/themes/custom/expansion/dist/images/favicons/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/sites/all/themes/custom/expansion/dist/images/favicons/favicon-16x16.png"> <link
rel="manifest" href="/sites/all/themes/custom/expansion/dist/images/favicons/site.webmanifest"> <link rel="mask-icon" href="/sites/all/themes/custom/expansion/dist/images/favicons/safari-pinned-tab.svg" color="#ff6a10"> <meta name="msapplication-TileColor"
content="#ff6a10"> <meta name="theme-color" content="#ffffff"> <title>EPHEC | Le chemin pratique vers la réussite</title> <style type="text/css" media="all">@import url("/modules/system/system.base.css?pqrm14");</style> <style type="text/css" media="all">@import
url("/sites/all/modules/contrib/date/date_api/date.css?pqrm14");</style> <style type="text/css" media="all">@import url("/sites/all/modules/custom/expansion_compliance/css/expansion_compliance.css?pqrm14");@import
url("/sites/default/files/honeypot/honeypot.css?pqrm14");@import url("/sites/all/modules/contrib/webform/css/webform.css?pqrm14");</style> <style type="text/css" media="all">@import url("/sites/all/themes/custom/expansion/dist/styles/main.css?pqrm14");</style> <script
type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- window.jQuery || document.write("<script
src='/sites/all/modules/contrib/jquery_update/replace/jquery/1.10/jquery.min.js'>\x3C/script>") //--><!]]> </script> <script type="text/javascript" src="/misc/jquery-extend-3.4.0.js?v=1.10.2"></script> <script type="text/javascript" src="/misc/jquery.once.js?v=1.2"></script> <script
type="text/javascript" src="/misc/drupal.js?pqrm14"></script> <script type="text/javascript" src="/sites/all/modules/contrib/jquery_update/replace/ui/external/jquery.cookie.js?v=67fb34f6a866c40d0570"></script> <script type="text/javascript"
src="/sites/all/modules/contrib/jquery_update/replace/misc/jquery.form.min.js?v=2.69"></script> <script type="text/javascript" src="/misc/ajax.js?v=7.67"></script> <script type="text/javascript" src="/sites/all/modules/contrib/jquery_update/js/jquery_update.js?v=0.0.1"></script>
<script type="text/javascript" src="/sites/all/modules/custom/expansion_compliance/js/expansion_compliance.js?pqrm14"></script> <script type="text/javascript" src="/sites/default/files/languages/fr_WZUj3p5zVXiNEC1AQOqUPX1Ru29JvMLNKKPuT68qxD4.js?pqrm14"></script>
<script type="text/javascript" src="/misc/progress.js?v=7.67"></script> <script type="text/javascript" src="/sites/all/modules/contrib/webform/js/webform.js?pqrm14"></script> <script type="text/javascript"
src="/sites/all/themes/custom/expansion/dist/scripts/main.js?pqrm14"></script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- jQuery.extend(Drupal.settings,
{"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"expansion","theme_token":"9G1nDiYj7emDP5xPnWta0gZUJlxPQepM3E2OPCB1Hxo","jquery_version":"1.10","css":{"modules\/system\/system.base.css":1,"sites\/all\/modules\/contrib\/date\/date_api\/date.css":1,"sites\/all
\/modules\/custom\/expansion_compliance\/css\/expansion_compliance.css":1,"public:\/\/honeypot\/honeypot.css":1,"sites\/all\/modules\/contrib\/webform\/css\/webform.css":1,"sites\/all\/themes\/custom\/expansion\/dist\/styles\/main.css":1},"js":{"\/\/ajax.googleapis.com\/
ajax\/libs\/jquery\/1.10.2\/jquery.min.js":1,"misc\/jquery-extend-
3.4.0.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/modules\/contrib\/jquery_update\/replace\/ui\/external\/jquery.cookie.js":1,"sites\/all\/modules\/contrib\/jquery_update\/replace\/misc\/jquery.form.min.js":1,"misc\/ajax.js":1,"sites\/all\/modules\/contrib\/jquer
y_update\/js\/jquery_update.js":1,"sites\/all\/modules\/custom\/expansion_compliance\/js\/expansion_compliance.js":1,"public:\/\/languages\/fr_WZUj3p5zVXiNEC1AQOqUPX1Ru29JvMLNKKPuT68qxD4.js":1,"misc\/progress.js":1,"sites\/all\/modules\/contrib\/webform\/js\/webfor
m.js":1,"sites\/all\/themes\/custom\/expansion\/dist\/scripts\/main.js":1}},"ajax":{"edit-submit":{"callback":"expansion_compliance_dismiss_form_submit","progress":{"type":"none"},"wrapper":"cookie-
compliance","event":"mousedown","keypress":true,"prevent":"click","url":"\/system\/ajax","submit":{"_triggering_element_name":"op","_triggering_element_value":"OK"}}},"urlIsAjaxTrusted":{"\/system\/ajax":true,"\/":true},"bgvideo":{"id":"o-Y-
AANUc74","type":"youtube"},"better_exposed_filters":{"views":{"news":{"displays":{"block_1":{"filters":[]}}},"agenda":{"displays":{"block_1":{"filters":[]}}}}}}); //--><!]]> </script> <!-- Google Tag Manager --> <script defer async>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-
NCXG32T');</script> <!-- End Google Tag Manager --> </head> <body class="html front not-logged-in no-sidebars page-node page-node- page-node-9 node-type-home i18n-fr" > <!-- Google Tag Manager (noscript) --> <noscript><iframe
src="https://www.googletagmanager.com/ns.html?id=GTM-NCXG32T" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id="skip-link"><a href="#main-content" class="element-invisible element-
focusable">Aller au contenu principal</a></div> <div id="cookie-compliance" class="cookie-compliance clearfix"> <div class="cookie-compliance__inner"> <div class="cookie-compliance__text"> <p>Ce site web utilise des cookies pour nous aider à vous apporter la meilleure
expérience de visite. En continuant votre navigation, vous acceptez l'utilisation des cookies. <a href="/mentions-legales">En savoir plus</a></p> </div> <form action="/" method="post" id="expansion-compliance-dismiss-form" accept-charset="UTF-8"><div><input class="cookie-
compliance__button form-submit" type="submit" id="edit-submit" name="op" value="OK" /><input type="hidden" name="form_build_id" value="form-OI8WnzvbzlcPiEvjXRUl2wVOlj7kVnof5eujDyKPs6g" /> <input type="hidden" name="form_id"
value="expansion_compliance_dismiss_form" /> </div></form> </div> </div> <noscript> <div class="cookie-compliance clearfix"> <div class="cookie-compliance__inner"> <div class="cookie-compliance__text"> <p>Ce site web utilise des cookies pour nous aider à vous apporter la
meilleure expérience de visite. En continuant votre navigation, vous acceptez l'utilisation des cookies. <a href="/mentions-legales">En savoir plus</a></p> </div> <form action="/" method="post" id="expansion-compliance-dismiss-form" accept-charset="UTF-
8"><div></div></form> </div> </div> </noscript> <header class="main-header"> <div class="top"> <div class="left"> <a href="#" class="trigger-main-nav"><i class="fa fa-bars" aria-hidden="true"></i>Nos formations</a> </div> <div class="right"> <nav class="header-nav secondary-
nav"> <ul class="menu"><li class="first expanded"><span class="nolink">Vie étudiante</span><ul class="menu"><li class="first leaf"><a href="/activites-culturelles">Activités, culture</a></li> <li class="leaf"><a href="/le-sport-lephec">Ephec sport</a></li> <li class="leaf"><a
href="/se-loger-pres-de-lephec">Logement</a></li> <li class="leaf"><a href="/le-conseil-des-etudiants-de-lephec">Conseil des Etudiants</a></li> <li class="leaf"><a href="/reussir-lephec">Aide à la réussite</a></li> <li class="leaf"><a href="/service-social-de-lephec">Service
social</a></li> <li class="leaf"><a href="/service-daccueil-et-daccompagnement-des-etudiants-en-situation-de-handicap">Enseignement inclusif</a></li> <li class="last leaf"><a href="/entreprendre-lephec">Etudiants entrepreneurs</a></li> </ul></li> <li class="leaf"><a href="/lephec-
pour-les-entreprises">Entreprises</a></li> <li class="expanded"><span class="nolink">International</span><ul class="menu"><li class="first leaf"><a href="/international/presentation">Présentation</a></li> <li class="leaf"><a href="/international/incoming-mobility">Incoming
mobility</a></li> <li class="leaf"><a href="/international/mobilite-sortante">Mobilité sortante</a></li> <li class="leaf"><a href="/international/la-codiplomation-bi-et-tri-diplomations">La codiplomation : bi et tri-diplomations</a></li> <li class="last collapsed"><a href="/short-
international-programmes">Short International Programmes</a></li> </ul></li> <li class="expanded"><span class="nolink">A propos</span><ul class="menu"><li class="first leaf"><a href="/historique-de-lephec">Historique</a></li> <li class="leaf"><a href="/le-mot-des-
directions">Le mot des Directions</a></li> <li class="leaf"><a href="/presse">PRESSE</a></li> <li class="leaf"><a href="/pedagogie-lephec">Pédagogie</a></li> <li class="leaf"><a href="/qualite-en-haute-ecole">Qualité en Haute École</a></li> <li class="leaf"><a href="/qualite-en-
promotion-sociale">Qualité en Promotion sociale</a></li> <li class="leaf"><a href="/responsabilite-societale-de-lephec">Responsabilité sociétale de l’EPHEC</a></li> <li class="leaf"><a href="/travailler-lephec">Travailler à l’EPHEC</a></li> <li class="last leaf"><a href="/vision-
valeurs-mission-reglements">Vision – valeurs – mission – règlements</a></li> </ul></li> <li class="leaf"><a href="/agenda">Agenda</a></li> <li class="leaf contact"><a href="/contact">Contact</a></li> <li class="last leaf cta"><a href="/sinscrire-lephec">Inscription</a></li> </ul>
</nav> <a href="#" class="trigger-search">Recherche</a> <div class="search-block"> <div id="block-search-form" class="block block-search"> <div class="content"> <form action="/" method="post" id="search-block-form" accept-charset="UTF-8"><div><div class="container-inline">
<h2 class="element-invisible">Formulaire de recherche</h2> <div class="form-item form-type-textfield form-item-search-block-form"> <label class="element-invisible" for="edit-search-block-form--2">Rechercher </label> <input title="Indiquer les termes à rechercher" type="text"
id="edit-search-block-form--2" name="search_block_form" value="" size="15" maxlength="128" class="form-text" /> </div> <div class="form-actions form-wrapper" id="edit-actions"><input type="submit" id="edit-submit--2" name="op" value="Rechercher" class="form-submit"
/></div><input type="hidden" name="form_build_id" value="form-1569gMGCezUc3fl86fgH7_vErO5v-42zfOAIebvMCcU" /> <input type="hidden" name="form_id" value="search_block_form" /> </div>
Le côté client
• De son côté, le client reçoit ces données brutes et les traite pour les
mettre en page.
• Les données brutes sont au format HTML.
• Pour le formatage on utilise le CSS
• et pour l’interaction avec l’utilisateur, on utilise Javascript et/ou AJAX
Interprétation côté client
Réponse
Interprétation de la page INTERNET
HTML
Javascript
Exécution de scripts
Contenu interprété par le client
Les différentes technologies
Technologies du Web
• HTML
• CSS
• Javascript
• Brut
• Via des librairies (JQuery, Bootstrap, …)
• PHP (du côté serveur)
• AJAX (protocole mêlant du XML et du javascript)
• XML, JSON
• Des bases de données et SQL
• …
W3C
• Le World Wide Web Consortium est une association internationale
qui définit les standards présents sur le web afin de permettre une
pérennité de ceux-ci et une compatibilité entre les différents acteurs.
• Il est composé des principaux acteurs du Web (Apple, Amazon,
Microsoft, Google, Facebook, …). Au 17 septembre 2020, il y avait 436
membres inscrits (https://www.w3.org/Consortium/Member/List).
• Les membres soumettent des propositions de technologies qui une
fois approuvées, deviennent des standards suivis par tous.
HTML
• HyperText Markup Language est un langage de balisage. Il permet de
structurer une page, de hiérarchiser les données qui composent la page.
• Exemple : <h1>Ceci est un titre</h1>
• Ce langage permet de :
• Créer des documents interopérables (fonctionnant sur tous type de clients)
• Donner une structure sémantique
• Inclure du contenu multimédia (images, vidéo, son, …)
• Créer des formulaires de saisies de données
• Intégrer des éléments programmables (applets, scripts)
• Permettre la navigation de pages en pages
• Permettait la mise en forme du contenu avant que le CSS ne soit créé.
• Le HTML est interprété côté CLIENT.
CSS
• Cascading Style Sheet est un langage de présentation. Il vient
compléter le code HTML pour expliquer aux navigateurs comment
présenter les choses (taille de font, couleur, position, …)
• Ce langage permet de :
• Séparer la mise en forme de la structure et des données d’une page
• Décliner les styles, les positionnements suivant le récepteur qui doit les
afficher
• Combiner différentes sources de mise en forme d’une manière hiérarchique
(Cascading)
• Le CSS est interprété côté CLIENT
Javascript
• C’est un langage de programmation (scripts) principalement utilisé du
côté client mais qui fait de plus en plus de percées du côté serveur
• Il permet de créer de l’interaction avec les utilisateurs et donc de
créer de l’intelligence du côté du client
• Ce langage permet de :
• Contrôler les données saisies dans des formulaires et d’effectuer certaines
actions lors de ces saisies
• Interagir avec le document HTML via l’interface Document Object Model
• Réaliser des services dynamiques (cosmétiques, ergonomiques, …)
• Dans le cadre de ce cours, nous verrons qu’il est interprété côté
CLIENT
AJAX
• Asynchronous Javascript And XML est un protocole utilisant plusieurs
technologies (Javascript côté client, XML et/ou JSON pour le transfert de
données et PHP (ou autre) côté serveur pour la création de la réponse)
• Il permet d’augmenter l’expérience de l’utilisateur en améliorant le confort
d’utilisation et les vitesses de réaction d’une page
• Il est largement utilisé sur toutes les pages des grands acteurs du Web
(Google, Facebook, …)
• Il combine plusieurs technologies et est offert, entre autres, au travers de
librairies comme JQuery
• Le javascript est exécuté du côté du CLIENT pour envoyer une requête à
laquelle le SERVEUR répondra en arrière plan, sans que la page ne doive
être rechargée.
AJAX - suite
• L’application la plus utilisée est la suggestion de recherche lors de la
saisie de mots dans Google Search
PHP
• PHP: Hypertext Preprocessor est un langage de scripts principalement
utilisé pour produire du contenu utilisable sur le Web. Le contenu est créé
à la demande en fonction des paramètres passés lors de la requête. Ce
contenu est donc dynamique.
• C’est un langage impératif (orienté objet depuis la version 5)
• Très largement utilisé et éprouvé tant au niveau de sa robustesse que de sa
sécurité
• Du côté serveur, d’autres solutions de génération de contenu sont
disponibles (Java, ASP.NET, C#, …)
• Interprété côté SERVEUR
Les outils
Navigateur Web
• Il s’agit du client sur lequel sera affichée votre page Web. Dans la
majorité des cas, le navigateur tournera sur votre PC ou votre
smartphone mais de plus en plus, avec les objets connectés, des
navigateurs tournent sur des frigos, des thermostats, des machines
industrielles, …
• Les principaux navigateurs sont Firefox, Safari, Internet Explorer ou
Google Chrome. Mais il en existe encore bien d’autres dont certains
pour un usage très limité et donc avec une compatibilité restreinte
Compatibilité des navigateurs
• Tous les navigateurs n’interprètent
pas les choses de la même manière.
http://caniuse.com