SYSTEME D INFORMATION

Dimension: px
Commencer à balayer dès la page:

Download "SYSTEME D INFORMATION"

Transcription

1 AgroParisTech Grignon 1A SYSTEME D INFORMATION MMIP - UFR d'informatique ufr.informatique@agroparistech.fr Support rédigé par David DOUSSOT : doussot@agroparistech.fr

2 SOMMAIRE Système d'information : Présentation générale... 5 Architecture, technologies, organisation... 8 Conception et réalisation...15 Profils des métiers...17 Etude sommaire d'une technologie Client HTML Le navigateur HTML URL : Uniform Ressource Locator HTML, Hyper Text Markup Language HTML : premier exemple Normes et outils La syntaxe HTML : balises L'interprétation des pages HTML Le document HTML minimal Balises de mise en page Mise en forme, attributs standards Les listes Les styles Les feuilles de style Feuille de style : exemple Feuille de style : fichier HTML Feuille de style : fichier CSS Les images Ancres et liens hypertextes Les tableaux Scinder une page en blocs...52 Les formulaires HTML Les balises <form></form> Les contrôles graphiques HTML AgroParisTech, ufr d informatique Sommaire page 1

3 Prise en main de l'outil de développement TD HTML TD HTML TD HTML TD HTML TD HTML TD HTML TD HTML Programmation : principes de base Ordinateur : architecture et codage...75 Langages de programmation Types et variables Instructions Branchements conditionnels Schémas itératifs...89 Procédures et fonctions PHP PHP : histoire et état des lieux PHP : principe de fonctionnement Premier exemple de code Notions de base Structures de contrôle Interactions avec l'utilisateur Formulaire validé par lui-même Tableaux Fonctions Ressources AgroParisTech, ufr d informatique Sommaire page 2

4 TD PHP TD PHP TD PHP TD PHP TD PHP TD PHP Organiser les données du Système d'information TD Base de données Bases de données : concepts Bases de données relationnelles Introduction à MySQL TD Base de données TD Base de données Le langage SQL : SELECT Gestion de projet Un projet, c'est quoi? Les grands rôles dans un projet Les phases Méthodologie et documents Chiffrage AgroParisTech, ufr d informatique Sommaire page 3

5 Projet final : un intranet dynamique Démarrage du projet Projet PHP : en-tête, pages dynamiques Projet PHP : premier formulaire Projet PHP : base de données Projet PHP : connexion à la base Projet PHP : extraction de données Projet PHP : point architecture Projet PHP : affichage de la liste Projet PHP : sécurisation du site Projet PHP : notion de session Projet PHP : gestion de session Le langage SQL : INSERT, UPDATE, DELETE Projet PHP : mise à jour de la base Projet PHP : gestion des adresses Projet PHP : formulaire complexe Projet PHP : covoiturage Projet PHP : écrans du covoiturage Ressources AgroParisTech, ufr d informatique Sommaire page 4

6 Système d'information : présentation générale AgroParisTech, ufr d informatique Système d'information : présentation générale page 5

7 AgroParisTech, ufr d informatique Système d'information : présentation générale page 6

8 Système d'information : présentation générale AgroParisTech, ufr d informatique Déroulement cours 1 (amphi) L entreprise et son système d information : architecture et technologies TD 1 à 3 cours 2 (amphi) TD 4 TD 5 à 8 cours 3 (amphi) TD 9 à 13 cours 4 (amphi) TD 14 à 19 Fonctionnement du client HTML Programmation QCM programmation Langage PHP Base de données : concepts, relations, modélisation. requêtes SQL de consultation et mise à jour, API php Conception d'une base de données, début du projet Gestion de projet : les bases Projet : intranet et covoiturage, évaluation AgroParisTech, ufr d informatique Système d'information : présentation générale page 7

9 Sommaire des thèmes abordés Architecture, technologies, organisation Conception et réalisation Profils des métiers Étude sommaire d une technologie Le système d information (SI) de l entreprise Gestion de l entreprise (back office) Services aux clients (front office) Relations prospects (action commerciale, CRM) Base de données points d accès AgroParisTech, ufr d informatique Système d'information : présentation générale page 8

10 Préparer un week end à Lisbonne de chez soi, via internet, par téléphone, ou bien d une agence côté CLIENT point de réservation service central de réservation côté SERVEUR Places disponibles côté Client Les étapes de la réservation 1 AR pour 2 personnes, Paris-Lisbonne, départ le 6/2/2004, retour le 9/2/2004 AF225 + AF567 = 500 x 2 TAP071 + TAP072 = 456 x 2 XA charter = 280 x 2 côté Serveur AgroParisTech, ufr d informatique Système d'information : présentation générale page 9

11 côté Client Les étapes de la réservation côté Serveur 1 1 AR pour 2 personnes, Paris-Lisbonne, départ le 6/2/2004, retour le 9/2/2004 AF225 + AF567 = 500 x 2 / TAP071 + TAP072 = 456 x 2 / XA charter = 280 x 2? conditions d annulation pour le charter pas de remboursement, sauf assurance complémentaire côté Client Les étapes de la réservation côté Serveur 1 1 AR pour 2 personnes, Paris-Lisbonne, départ le 6/2/2004, retour le 9/2/2004 AF225 + AF567 = 500 x 2 / TAP071 + TAP072 = 456 x 2 / XA charter = 280 x 2 2? conditions d annulation pour le charter pas de remboursement, sauf assurance complémentaire? coût de l assurance 5% prix du voyage AgroParisTech, ufr d informatique Système d'information : présentation générale page 10

12 côté Client Les étapes de la réservation côté Serveur 1 1 AR pour 2 personnes, Paris-Lisbonne, départ le 6/2/2004, retour le 9/2/2004 AF225 + AF567 = 500 x 2 / TAP071 + TAP072 = 456 x 2 / XA charter = 280 x 2 2? conditions d annulation pour le charter pas de remboursement, sauf assurance complémentaire 3? coût de l assurance 5% prix du voyage réservation ferme TAP!? mode de paiement (CB / chèque) côté Client Les étapes de la réservation côté Serveur 1 1 AR pour 2 personnes, Paris-Lisbonne, départ le 6/2/2004, retour le 9/2/2004 AF225 + AF567 = 500 x 2 / TAP071 + TAP072 = 456 x 2 / XA charter = 280 x 2 2? conditions d annulation pour le charter pas de remboursement, sauf assurance complémentaire 3? coût de l assurance 5% prix du voyage 4 réservation ferme!? mode de paiement (carte bancaire / chèque) indication n de carte + date de validité validation paiement carte + ordre émission billets AgroParisTech, ufr d informatique Système d'information : présentation générale page 11

13 côté Client Les étapes de la réservation côté Serveur 1 1 AR pour 2 personnes, Paris-Lisbonne, départ le 6/2/2004, retour le 9/2/2004 AF225 + AF567 = 500 x 2 / TAP071 + TAP072 = 456 x 2 / XA charter = 280 x 2 2? conditions d annulation pour le charter pas de remboursement, sauf assurance complémentaire 3? coût de l assurance 5% prix du voyage 4 réservation ferme!? mode de paiement (carte bancaire / chèque) quelle infrastructure pour ces opérations? 5 indication n de carte + date de validité validation paiement carte + ordre émission billets Le système d information : une architecture client / serveur Base de données : Oracle, DB/2, SQL server, mysql Serveur : machine(s) et logiciels Clients : terminal passif (3270 / 5250) micro-ordinateur : client lourd ou léger? navigateur Web : le client universel Clients Serveur BD AgroParisTech, ufr d informatique Système d'information : présentation générale page 12

14 Le système d information de l entreprise, aujourd hui HTML Serveur Web Serveur d applications HTML BD HTML Applications HTML Postes clients Légende : information statique ou dynamique code exécutable (programme) Où l information est-elle traitée? HTML HTML HTML HTML Postes clients Serveur Web client léger : Serveur d applications peu ou pas de traitement sur le client (programmation en JavaScript) côté serveur, trois types de solutions applicatives (Microsoft, Java, PHP) Légende : information statique ou dynamique code exécutable (programme) BD AgroParisTech, ufr d informatique Système d'information : présentation générale page 13

15 Et la structuration? HTML HTML Serveur Web Serveur d applications BD HTML HTML Front Office Applications Back Office Les composants et les pratiques Développement particulier Progiciel de gestion intégré (PGI, ERP) autonomie ou sous-traitance? régie ou forfait? Back Office externalisation (infogérance)? Front Office AgroParisTech, ufr d informatique Système d'information : présentation générale page 14

16 Sommaire des thèmes abordés Architecture, technologies, organisation Conception et réalisation Profils des métiers Étude sommaire d une technologie SI : concevoir, développer, gérer Besoins conseil, cahier des charges Réalisation service, maîtrise d ouvrage / d œuvre, forfait / assistance technique Déploiement logistique, formation Exploitation infogérance? Maintenance TMA? P R O J E T AgroParisTech, ufr d informatique Système d'information : présentation générale page 15

17 Cycle en V Cahier des charges Spécifications générales Tests utilisateurs - pré-production Tests de qualification et d intégration Spécifications détaillées Tests unitaires Codage Cycle en V : parodie AgroParisTech, ufr d informatique Système d'information : présentation générale page 16

18 Sommaire des thèmes abordés Architecture, technologies, organisation Conception et réalisation Profils des métiers Étude sommaire d une technologie Un projet d évolution du SI? communication technique métier organisation expression des besoins X X X spécifications fonctionnelles X X X spécifications techniques X X X architecture X X X X réalisation X X X X tests X X X livraison et déploiement X X X AgroParisTech, ufr d informatique Système d'information : présentation générale page 17

19 Le profil des informaticiens du projet Communication : écouter, expliquer, accompagner Fonctionnel : connaître le métier de l entreprise, comprendre les enjeux et savoir formuler les besoins Technique : contrôler et assembler les outils qui l encapsulent Organisation : gérer, piloter, coordonner management & organisation consultant maîtrise d œuvre directeur de projet, chef de projet maîtrise d ouvrage analyste technique développeur fonctionnel consultant architecte consultant architecte expertise UV européenne AgroParisTech, ufr d informatique Système d'information : présentation générale page 18

20 Sommaire des thèmes abordés Architecture, technologies, organisation Conception et réalisation Profils des métiers Étude sommaire d une technologie Le web Invention récente : 1992 au CERN Tim Bernes Lee Au départ : sites documentaires liens hypertextes Technologie : HTTP et HTML AgroParisTech, ufr d informatique Système d'information : présentation générale page 19

21 HTML : un premier exemple Chargeons une page Distinguons entre la présentation et le fichier-source : HTML est un langage de description d information Le navigateur Internet interprète ce langage pour présenter l information HTML permet de décrire : du texte des images des liens entre pages une image du texte un lien vers une autre page un formulaire de saisie AgroParisTech, ufr d informatique Système d'information : présentation générale page 20

22 Historique du Web Le web à l'origine : permet d'accéder à des pages d'informations reliées par des liens hypertextes nécessite uniquement la présence d'un navigateur Web sur le poste client permet de générer des pages dynamiquement pour des applications spécifiques et limitées (ex : moteur de recherche) Evolution du Web Développement des pages dynamiques : générées à partir d'une base de données : pas besoin d'écrire des centaines de pages HTML (ex : site de presse) apportent un contenu personnalisé à l'utilisateur (ex : Mon Yahoo!) ne nécessitent pas d'installation sur le poste de l'utilisateur (ex : annuaire de l'école) AgroParisTech, ufr d informatique Système d'information : présentation générale page 21

23 Technologies du Web dynamique Microsoft ASP (.Net) Active Server Page Fonctionne uniquement sous Windows Java : Servlets/JSP programmation objet richesse des interfaces PHP : communauté libre très populaire pour les sites Internet simple à apprendre Web dynamique : principes (1 / 3) Formulaire : - champs de saisie - bouton de validation AgroParisTech, ufr d informatique Système d'information : présentation générale page 22

24 Web dynamique : principes (2 / 3) Transmission des données du formulaire Réponse à la demande Web dynamique : principes (3 / 3) 1 : le navigateur rassemble les informations du formulaire, il se connecte au serveur et lui transmet ces informations dans une requête HTTP 2 : le serveur accepte la connexion reçoit la requête, retrouve les informations transmises et recherche les données correspondantes 4 : le navigateur affiche la page et rompt la connexion 3 : le serveur génère dynamiquement une page avec le résultat, l envoie en réponse HTTP au navigateur AgroParisTech, ufr d informatique Système d'information : présentation générale page 23

25 Web dynamique : session Le dialogue entre le navigateur et le serveur est déconnecté : 1. Le navigateur se connecte au serveur 2. La navigateur envoie une requête 3. Le serveur renvoie une réponse 4. La connexion est rompue! Comment assurer le suivi de l'utilisateur (ex : webmail, panier dans un site de commerce)? Web dynamique : cookies 1 : le navigateur rassemble les informations du formulaire, il se connecte au serveur et lui transmet ces informations dans une requête HTTP 2 : le serveur accepte la connexion reçoit la requête, retrouve les informations transmises et recherche les données correspondantes. Il génère également un cookie et garde en mémoire les informations associées 3 : le serveur génère dynamiquement une page avec le résultat, l envoie en réponse HTTP au navigateur, accompagnée du cookie. 4 : Le navigateur garde le cookie et affiche la page 5 : lors de la requête suivante, le navigateur retransmet le cookie au serveur, qui saura ainsi identifier l utilisateur... 5 : etc. 3 : le serveur génère une page en fonction de l utilisateur identifié par son cookie clavel doussot AgroParisTech, ufr d informatique Système d'information : présentation générale page 24

26 Client HTML AgroParisTech, ufr d'information Client HTML page 25

27 AgroParisTech, ufr d'information Client HTML page 26

28 Le navigateur HTML (1 / 2) Le navigateur ou browser est avant tout un client HTTP. C est grâce à ce logiciel que l utilisateur visualise les informations qu il télécharge depuis le Web. Les fonctions de base du navigateur Web Il émet les requêtes (Queries) HTTP à destination des serveurs Web. Il interprète les documents HTML qui lui sont envoyés en retour. Il fournit des outils destinés à faciliter la navigation (gestionnaire de Bookmarks, Historique des visites,...). Un contenu multimédia Tous les navigateurs peuvent afficher du texte formaté en HTML et des images au format GIF ou JPG ; La plupart des navigateurs ne se limitent plus à l interprétation des pages HTML. Par l intermédiaire d extensions (Plug-ins), le navigateur Web peut désormais traiter tout type de documents multimédias : son, images animées... Bien que non officiellement standardisées, ces extensions acquièrent parfois un statut de standard de fait (plug-in RealAudio pour la diffusion de fichiers sonores). AgroParisTech, ufr d'information Client HTML page 27

29 Le navigateur HTML (2 / 2) Le navigateur Web est aujourd hui perçu comme l interface universelle et standardisée d accès aux ressources du réseau. Intégration des protocoles Internet Le navigateur Web n est plus un simple client HTTP. La plupart des navigateurs du marché sont aussi des clients d autres applications Internet : SMTP (Messagerie électronique), FTP (transfert de fichiers), NNTP (news),... Un client léger (thin-client) Le navigateur Web est le client standard des architectures Client / Serveur Internet. Un OS au dessus de l OS Le navigateur Web possède des capacités d exécution d applications distribuées : moteurs d exécution de scripts inclus dans les pages HTML (JavaScript et VBScript) ; machine virtuelle Java pour l exécution d applets ; conteneur de composants binaires distribués (ActiveX). Navigateurs disponibles Microsoft Internet Explorer Mozilla, Firefox Opera AgroParisTech, ufr d'information Client HTML page 28

30 URL : Uniform Resource Locator Utilité URL signifie : Uniform Resource Locator Une URL identifie de manière unique une ressource dans un réseau internet ou intranet. Différents types d'url Consultation : Téléchargement : ftp://ftp.mozilla.org Mail : mailto:webmaster@agroparistech.fr Forme générale protocole:numéro_de_port//nom_ou_adresse_serveur/emplacement le protocole indique la syntaxe d'échange entre le client et le serveur ; le numéro de port indique un chemin d'écoute particulier sur le serveur (par défaut : 80 pour http, 21 pour ftp, etc.) ; le nom/l'adresse du serveur indique comment le retrouver sur le réseau l'emplacement indique l'emplacement exact de la ressource demandée sur le serveur. AgroParisTech, ufr d'information Client HTML page 29

31 HTML, Hyper Text Markup Language HTML est le langage de formatage de documents diffusés sur le World Wide Web. Il a été défini par Tim Berners-Lee, un ingénieur du CERN (Centre Européen de Recherche Nucléaire) aussi inventeur du protocole HTTP et aujourd hui président du W3 Consortium. HTML n est pas un langage de programmation. HTML est un langage de description de page. Il spécifie la façon dont les données qu il contient devront être formatées à l affichage ou à l impression par le client HTTP. HTML est standardisé par les instances de gestion de l Internet. Cette standardisation le rend portable sur différentes plates-formes matérielles et logicielles sans adaptations préalables. HTML est un sous-ensemble de SGML un langage standardisé de formatage de documents multi-supports beaucoup plus complexe et fonctionnellement plus riche (utilisé notamment par les éditeurs d ouvrages de référence : notices techniques,...). Des feuilles de styles écrites au format CSS (Cascading Style Sheet) sont souvent associées aux pages HTML. Le présent support ne se veut pas exhaustif. Il permet d'acquérir les bases nécessaires à la création de pages web. Des informations supplémentaires peuvent être trouvées facilement sur le web! AgroParisTech, ufr d'information Client HTML page 30

32 HTML : premier exemple Code source <?xml version="1.0" encoding="iso "?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" " <html xmlns=" xml:lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=iso " /> <title> AgroParisTech </title> </head> <body style="text-align:center"> <div id="contenu"> <img src="img/logo.png" alt="logo AgroParisTech" /> <h1>bonjour!</h1> </div> </body> </html> AgroParisTech, ufr d'information Client HTML page 31

33 Normes et outils Normes La norme HTML a évolué pour atteindre la version 4.0 HTML est maintenant remplacé par XHTML (compatible XML) qui en est à la version 1.1. Désormais, lorsque nous parlerons de HTML dans le présent document, il faudra entendre XHTML. La norme utilisée est déclarée en début de page et référence une URL de validation sur le site du W3C Les spécifications des normes peuvent être consultées sur le site Il est important de se conformer aux normes, notamment pour permettre l accès des sites aux personnes qui disposent de navigateurs vocaux ou en braille (cf. Pour vérifier la conformité d'une page web : Un site de référence francophone : Outils De nombreux outils permettent de générer automatiquement du code HTML, mais il est cependant important de connaître celui-ci afin de comprendre et manipuler le code généré, et de pouvoir y ajouter du code dynamique (par exemple du PHP) Outils de bureautique : Microsoft Office, OpenOffice Outils dédiés : Microsoft Frontpage, Macromedia Dreamweaver MX AgroParisTech, ufr d'information Client HTML page 32

34 La syntaxe HTML : balises Les instructions HTML sont nommées balises (en Anglais «tag»). Elles se composent : - soit de deux identificateurs écrits en minuscule (une balise ouvrante entre < et >, et une balise fermante entre </ et >) qui encadrent une chaîne de caractères : <balise>une chaîne de caractères</balise> - soit d un seul identificateur écrit en minuscules (entre < et />) : <balise /> Les balises peuvent être imbriquées : <balise1> <balise2>... </balise2> </balise1> Certaines balises possèdent des paramètres, dits attributs, qui spécifient plus précisément leur effet sur le texte à formater. Ces attributs sont eux aussi écrits en minuscules, à l'intérieur de la balise unique ou de la balise ouvrante, et leur valeur est écrite entre " " : <balise att1="x" att2="y"> chaîne de caractères </balise> <balise att1="x" att2="y"/> Référence en ligne : AgroParisTech, ufr d'information Client HTML page 33

35 L interprétation des pages HTML Les fichiers HTML portent généralement l'extension html. Un fichier correspond à une page d'affichage dans le navigateur. La chaîne DOCTYPE suivante placée en début de fichier indique la norme utilisée ainsi que sa version au navigateur : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" " Une erreur de syntaxe dans l écriture d une page HTML n entraîne pas d erreur à l interprétation par le navigateur. Toute balise mal orthographiée est simplement ignorée par le navigateur, ou corrigée naturellement par celui-ci. Les suites de caractères d espacement, les tabulations de même que les retours-chariot n ont aucun effet sur l interprétation du code HTML par le navigateur. L interprétation du code HTML : ceci est un essai d affichage de code HTML générera l affichage suivant : ceci est un essai d affichage de code HTML AgroParisTech, ufr d'information Client HTML page 34

36 Le document HTML minimal (1 / 2) Structure de base d un document HTML Tout document HTML inclut au moins le texte suivant : <?xml version="1.0" encoding="iso "?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" " <html xmlns=" xml:lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=iso " /> <meta name="keywords" content="agronomie,ina-pg"> <meta name="revisit-after" content="30 days" /> <title>ma première page HTML</title> </head> <body> <div> </div> </body> </html> L interprétation de ce code HTML n entraîne aucun affichage dans fenêtre du navigateur. Balises <html></html> La balise <html> spécifie la nature du document au navigateur. L'attribut xml:lang indique la langue du texte Balises <body></body> Les balises <body> délimitent le corps du document (là où se trouvent le texte et les images affichées dans la fenêtre du navigateur). AgroParisTech, ufr d'information Client HTML page 35

37 Le document HTML minimal (2 / 2) Balises <head></head> Les balises <head> délimitent un ensemble d informations, relatives à la page et non affichées par le navigateur (sauf title). Balise <meta> La balise <meta> spécifie des informations qui ne sont pas affichées par le navigateur, mais qui peuvent être lues par les serveurs HTTP et par certains moteurs de recherche. Balises <title></title> Seul le texte «Ma première page HTML» inscrit entre les balises <title></title> est visible dans la barre de titre du navigateur. Le titre du document sert aussi au référencement de la page dans les favoris du navigateur. AgroParisTech, ufr d'information Client HTML page 36

38 Balises de mise en page Le rôle de ces balises est de séparer différentes parties du document pour en organiser la lecture. <div></div> Cette balise permet de regrouper des éléments (pour leur affecter un style particulier par exemple) avec saut de ligne avant et après. <hr /> Horizontal Rule Cette balise trace un trait de séparation dans le document. <p></p> marque de paragraphe Cette balise est une marque de paragraphe et fonctionne comme le signe des logiciels de traitement de texte. <p >texte d un paragraphe centré</p> <br /> fin de ligne Cette balise marque une fin de ligne sans saut de paragraphe. <span></span> regroupement Cette balise permet de regrouper des éléments (pour leur affecter un style particulier par exemple) sans saut de ligne avant ni après. Il est obligatoire d'utiliser des balises <div></div> ou <p></p> dans la section <body></body> afin de découper le contenu de la page : on ne peut pas par exemple mettre du texte directement à l'intérieur de <body></body>. AgroParisTech, ufr d'information Client HTML page 37

39 Mise en forme, attributs standards Ces commandes permettent de mettre en forme des parties de texte. Mise en forme spécialisée HTML intègre un certain nombre de balises de mise en forme standard, dont notamment : acronym address blockquote cite code em strong Balise Utilisation acronyme adresse citation longue (sur plusieurs lignes) citation courte code informatique texte mis en valeur texte renforcé Les balises de titre (Headers) Les balises de type <hn></hn> délimitent le texte des titres, un peu comme dans un modèle Word. On dénombre 6 niveaux de titres. <h2 >titre de niveau 2 </h2> Attributs standard La plupart des balises acceptent les attributs suivants : Attributs Utilisation class classe (cf. page suivante) id nom unique pour identifier l'élément style style (cf. page suivante) title bulle d'aide lang langue acceskey raccourci clavier tabindex ordre de parcours par tabulation TD H1 AgroParisTech, ufr d'information Client HTML page 38

40 Les listes Les listes de définitions Ce type de liste permet l affichage d une suite de définitions à la manière d un dictionnaire. Le terme défini se trouve alors en retrait par rapport à sa définition ou est affecté d un style différent (italique par exemple). source HTML <dl> <dt>insive</dt> <dd>agroparistech</dd> <dt>ecp</dt> <dd>ecole Centrale de Paris</dd> </dl> Affichage Navigateur INSIVE AgroParisTech ECP Ecole Centrale de Paris Les listes à puces source HTML Affichage Navigateur <ul> premier item <li>premier item</li> <li>second item</li> second item </ul> Avec un style approprié, ces listes permettent également de définir des menus. Les listes à numéros source HTML <ol> <li>premier item</li> <li>second item</li> </ol> Affichage Navigateur 1. premier item 2. second item AgroParisTech, ufr d'information Client HTML page 39

41 Les styles Styles par défaut et styles personnalisés Le navigateur applique un formatage par défaut aux différents éléments d'une page HTML La plupart des balises (dont les balises de mise en forme et de mise en page des 2 pages précédentes) admettent cependant un attribut style qui contient un ensemble de déclarations séparés par des points virgule, permettant au concepteur de la page de définir son apparence exacte. Définir un style Au niveau d une balise : <span style="color: red">texte en rouge</span> En en-tête de fichier : <head> <style type="text/css"> h1 {color:red; font-weight: bold} </style> </head> Dans une feuille de style (CSS) : <head> <link rel="stylesheet" href="styles.css" type="text/css" /> </head> On peut redéfinir le style d'une balise existante, ou utiliser un nouveau nom qui sera alors référencé par l'attribut class de la balise:.fond {color: blue} <body class="fond"> </body> AgroParisTech, ufr d'information Client HTML page 40

42 Les feuilles de style (1 / 2) Exemple de contenu d'une feuille de style Les feuilles de style sont définies dans des fichiers portant l'extension.css : h1 {color:red; font-weight: bold}.fond {color:blue} Propriétés de texte Exemple font-family : Arial; font-style : italic; font-weight : bold; font-size : x-small; font-size : 18pt; font-size : 150%; text-decoration : underline; text-transform : uppercase; Valeurs possibles Noms de police normal, italic, oblique normal, bold, bolder, lighter, 100, 200, 300, xx-small, x-small, small, medium, large, x-large, xxlarge, larger, smaller none, underline, overline line-through, blink capitalize, uppercase, lowercase, none Propriétés de couleur Exemple color : red; color : #fd4a88; color : rgb(125,32,98); background-color : blue; background-image : url("im.jpg") Valeurs possibles Noms de couleurs, ou codes RGB Idem url(" "), none AgroParisTech, ufr d'information Client HTML page 41

43 Les feuilles de style (2 / 2) Propriétés de placement Exemple text-align : center; margin-top : 1em margin-bottom : 2ex margin-left : 12px margin-right : 2cm float : left Valeurs possibles left, right, center, justify 1em :hauteurd'un caract ère 1ex :hauteurdu x 1cm :1 centim ère 1pt :1 point Idem Idem Idem left, right, center Utilisé pour rendre un bloc flottant, c'est-à-dire le superposer à un autre Propriétés de bordure Exemple border-style : solid border-top, border-bottom, border-left, border-right border-width : thin border-width : 3px Valeurs possibles none, hidden, dotted, dashed, solid, double, groove, ridge, inset, outset idem margin thin, medium, thick Ressources AgroParisTech, ufr d'information Client HTML page 42

44 Feuille de style: exemple Astuces Les navigateurs permettent d'afficher la source d'une page consultée : on peut ainsi déterminer comment celle-ci a été réalisée. On peut aussi repérer en en-tête l'emplacement de la ou des feuilles de style pour les télécharger. Un générateur de CSS en ligne : Quelques exemple du potentiel des feuilles de style AgroParisTech, ufr d'information Client HTML page 43

45 Feuille de style : fichier HTML <?xml version="1.0" encoding="iso "?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" " <html xmlns=" xml:lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=iso " /> <title> AgroParisTech </title> <link rel="stylesheet" type="text/css" href="styles.css" /> </head> <body style="text-align:center"> <div id="titre"> <h1>agroparistech</h1> </div> <div id="contenu"> <h1 class="titre1">les départements</h1> <ul> <li>siafee</li> <li>svs</li> <li>spab</li> <li>omip</li> <li>sesg</li> <li>mmip</li> </ul> </div> </body> </html> AgroParisTech, ufr d'information Client HTML page 44

46 Feuille de style : fichier CSS * { background-color: lightgray; } #titre { text-align: center; } #titre h1 { color: white; background-color: #00918A; margin-left: 1px; margin-right: 1px; margin-top: 1px; margin-bottom: 1px; border-top: 1px solid #E9E9E9; border-left: 1px solid #E9E9E9; border-right: 1px solid #E9E9E9; border-bottom: 1px solid #E9E9E9; } #contenu { text-align: left; color: #BD2647; } #contenu ul li { list-style-type: square ; } h1.titre1 { color: #00918A; border-bottom: 2px solid #00918A; } # indique à quelle section (div) on applique un style particulier. On peut également indiquer le contexte hiérarchique d'un style. TD H2 AgroParisTech, ufr d'information Client HTML page 45

47 Les images Avec HTML, on a la possibilité de référencer des éléments multimédias tels que les images. Les principaux navigateurs Web interprètent les images GIF, JPG et PNG. L'utilisation des mages GIF est déconseillée pour cause de brevet. Référencer une image Pour insérer une image dans une page Web il faut indiquer au navigateur la localisation de cette image sur Internet au moyen d une URL relative ou absolue. <img src=" /> <img src="./logorom2.jpg" /> Les attributs spécifiques de la balise <img /> La balise <img /> admet de nombreux attributs : alt permet de spécifier un texte alternatif qui sera affiché sur les navigateurs n affichant pas les images width et height spécifient la longueur et la largeur de l image (elles contribuent à diminuer le temps de calcul pour l affichage des images) TD H3 AgroParisTech, ufr d'information Client HTML page 46

48 Ancres et liens hypertextes (1 / 2) Ces balises sont utilisées pour l établissement de liens entres pages ou entre différentes parties d un même texte. Les ancres <a id=" "> </a> Les ancres permettent de marquer un endroit précis (signet) d un texte pour que cet endroit puisse être référencé par un lien hypertexte. <a id="identificateur_signet"> texte qui fait partie de l ancre </a> Les liens <a href=" "> </a> La balise <a href=" "> </a> délimite une chaîne de caractères ou une image qui représente alors un lien vers une autre page HTML, un signet à l intérieur de la même page ou vers toute ressource Web référencée par une URL. Le texte placé entre les balises apparaît par défaut souligné pour indiquer qu il s agit d un lien (une image liée apparaît encadrée). Quand on clique sur ce lien, la navigation passe à la ressource désignée par la lien. <a href="désignation_du_lien"> texte explicatif du lien qui apparaît souligné </a> Exemples pour la désignation du lien : "#finpagea","cours_page_b.html","cours_page_11.html#debutpagea" Les liens hypertextes peuvent aussi référencer d autre ressources Web. <a href="ftp://ftp.download.fr/patch.zip">chargement</a> La balise ci-dessus lie le mot «chargement» à un serveur FTP et lance (lorsqu il est activé) le chargement du fichier «patch.zip» L'attribut style peut prendre des valeurs spécifiques à la mise en forme d'un lien AgroParisTech, ufr d'information Client HTML page 47

49 Ancres et liens hypertextes (2 / 2) Ancre : début de la page A <a name="debutpagea"> Début de la page A (Ancres et Liens) </a> Lien : vers la fin de la page A <a href="#finpagea"> cliquez ici pour aller en fin de page </a> Lien : vers la page B <a href="cours_page_b.html"> cliquez ici (parc de la Défense) </a> Lien-image : vers la page B <a href="cours_page_b.html"> <img src="defense_clic.jpg" align="left"> </a> Ancre : fin de la page A <a name="finpagea"> Fin de la page A (Ancres et Liens) </a> Lien : retour vers la page A <a href="cours_page_a.html#debutpagea"> cliquez ici pour revenir à la page A </a> AgroParisTech, ufr d'information Client HTML page 48

50 Les tableaux (1 / 3) Les balises <table>, <tr>et <td> La structure de base d un tableau HTML s articule autour de trois balises fondamentales : <table> </table>, qui indique le début et la fin du tableau. <tr> </tr>, qui définit une ligne du tableau. <td> </td>, qui définit une cellule du tableau (à l intérieur d une ligne donnée). Titres de tableau et de colonnes <thead></thead>, <tbody></tbody>, <tfood></tfoot> permettent de structurer un tableau <th></th> est utilisé à la place de <td></td> pour les titres de colonne <caption></caption> permet de spécifier un titre pour le tableau <summary></summary> permet d'associer un texte au tableau Attributs align : l'alignement horizontal valign : alignement vertical cellpadding : espace entre les bords des cellule et le texte cellspacing : espace entre les cellules border : bordure width : taille en px ou en % AgroParisTech, ufr d'information Client HTML page 49

51 Les tableaux (2 / 3) Exemple de source HTML <table summary="un exemple de tableau" border="2" cellpadding="2" cellspacing="2" > <caption> Exemple de tableau </caption> <thead> <tr> <th> Thème </th> <th> Seq. </th> <th> Heures </th> </tr> </thead> <tbody> <tr> <td> HTML </td> <td> 1 </td> <td align="center" valign="middle"> 12 </td> </tr> <tr> <td> PHP </td> <td> 2 </td> <td align="center" valign="middle"> 24 </td> </tr> </tbody> </table> Affichage AgroParisTech, ufr d'information Client HTML page 50

52 Les tableaux (3 / 3) Les attributs colspan et rowspan permettent de gérer respectivement la fusion des cellules en colonne et en ligne. Exemple de source HTML <table width="50%" border="1" cellpadding="5"> <tr> <td> 2001 </td> <td> 2002 </td> <td> 2003 </td> </tr> <tr> <td rowspan="2"> 2004 </td> <td colspan="2"> Janvier </td> </tr> <tr> <td> 01/01 </td> <td> 15/01 </td> </tr> </table> Affichage AgroParisTech, ufr d'information Client HTML page 51

53 Scinder une page en blocs Forme habituelle d'un site Bandeau supérieur Menu à gauche Technique utilisée Beaucoup de sites font appels à des imbrications de tableaux pour l'organisation de leur page. Cette pratique est à proscrire : les tableaux ne doivent servir qu'à organiser des données en tableau! Par contre, on peut organiser une page en utilisant les balises <div></div> couplées à des styles, pour définir des sections superposées ou juxtaposées : HTML : <div id="menugauche"> </div> <div id="contenu"> </div> CSS : #menugauche { float: left; width: 250px; } #contenu { margin-left: 250px; } TD H4 TD H5 AgroParisTech, ufr d'information Client HTML page 52

54 Les formulaires HTML Les formulaires HTML constituent l interface homme machine (ou GUI : Graphical User Interface) des applications HTML/Web. Le «programmeur» HTML dispose d un ensemble de contrôles graphiques (champs de saisie, listes déroulantes,...) qui permettent d'ajouter de l'interactivité. Contrôles graphiques Utilité Les formulaires permettent d'interagir avec l'utilisateur. Ils sont notamment utilisés dans : Les moteurs de recherche Les sites de commerce électronique Les questionnaires en ligne Presque toute application web interactive! AgroParisTech, ufr d'information Client HTML page 53

55 Les balises <form></form> <form action=" method="get"> <p><label for="nom">nom :</label> <input type="text" size="30" name="nom" /></p> <p><label for="prenom">prénom :</label> <input type="text" size="20" name="prenom" /></p> <p><input type="submit" name="btaction" value="ok" /> <input type="reset" name="btannuler" value="annuler" /></p> </form> La balise <form> comprend deux attributs principaux : action : précise l URL du programme serveur appelé method : get (par défaut), post essentiellement La méthode get Le contenu du formulaire est encodé sous la forme d une QueryString constituée d une concaténation de l URL du paramètre ACTION et du contenu (encodé) du formulaire : laire?btaction=ok&prenom=henri&nom=dupont La méthode post Dans le cas de la méthode POST le contenu (encodé) du formulaire est envoyé dans le corps de la requête. Ceci permet de soumettre au serveur des requêtes plus longues (voire même des fichiers). AgroParisTech, ufr d'information Client HTML page 54

56 Les contrôles graphiques HTML La plupart des balises de composant HTML admettent les options suivantes : name = nom du composant value= valeur saisie Contrôle Code source <input type="text" size="20" name="champsaisie" value="defaut" /> <input type="password" size="20" name="champpassword" value="defaut" /> <textarea name="zonet" rows="2" cols="20"> valeur multiligne </textarea> <input type="checkbox" name="caseacocher" value="valeur1" checked="checked" />choix A <input type="radio" name="grpoption" value="valeura" checked="checked" />option A <input type="radio" name="grpoption" value="valeurb" />option B <select name="listederoulante"> <option value="valeura">optiona</option> <option value="valeurb">optionb</option> <option value="valeurc" selected="selected">optionc</option> </select> <select name="liste" multiple="multiple"> <option value="valeura">optiona</option> <option value="valeurb" selected="selected">optionb</option> <option value="valeurc" >optionc</option> </select> <input type="submit" name="boutonvalider" value="executerscript" /> <input type="reset" name="boutonreinitialiser" value="effacerformulaire" /> <input type="hidden" name="variablecachee" value="valeurcachee" /> TD H6 AgroParisTech, ufr d'information Client HTML page 55

57 AgroParisTech, ufr d'information Client HTML page 56

58 Prise en main de l'outil de développement AgroParisTech, ufr d informatiqueprise en main de l'outil de développement page 57

59 AgroParisTech, ufr d informatiqueprise en main de l'outil de développement page 58

60 Prise en main de l'outil de développement (1 / 4) Easy PHP Easy PHP est un logiciel qui permet d'installer et de prendre en charge facilement sur une machine dôtée du système d'exploitation Windows : le serveur Web Apache ; PHP ; la base de données MySQL ; l'interface de configuration de MySQL phpmyadmin. Eclipse Eclipse est un outil de développement créé par IBM. IBM a ensuite "offert" cet outil au "monde du logiciel libre". Le développement d'eclipse est maintenant géré par une fondation qui regroupe un grand nombre d'acteurs du logiciel (IBM, Borland, BEA) : Eclipse est au départ destiné au développement d'applications Java. Il nécessite d'ailleurs que Java soit installé sur la machine pour fonctionner. Mais les possibilités de cet outils sont extensibles à l'infini grâce à un mécanisme de plugin qu'il suffit de télécharger et d'enregistrer dans le sousrépertoire plugins du répertoire d'installation d'eclipse. PHP Eclipse PHP Eclipse est un plugin Eclipse qui permet de gérer des projets contenant des fichiers HTML et PHP. Il est développé en Allemagne : AgroParisTech, ufr d informatiqueprise en main de l'outil de développement page 59

61 Prise en main de l'outil de développement (2 / 4) Démarrage d'easy PHP Menu : Démarrer > Programmes > Programmation > EasyPHP 1.8 > EasyPHP Apparaît alors la fenêtre suivante : Vérifier que Apache et MySQL apparaissent bien tous les deux avec le statut Démarré. Si MySQL ne démarre pas, supprimer le répertoire MySQL contenu dans le répertoire N:\data et copier dans N:\data le répertoire C:\Program Files\EasyPHP1-8\mysql\data\mysql (pour obtenir de nouveau un répertoire N :\ data\mysql) EasyPHP doit être démarré et fonctionner correctement pour tester des fichiers HTML et PHP au sein d'eclipse! AgroParisTech, ufr d informatiqueprise en main de l'outil de développement page 60

62 Prise en main de l'outil de développement (3 / 4) Démarrage d'eclipse Menu : Démarrer > Programmes > Programmation > Eclipse La durée de lancement est assez conséquente, à cause de l'antivirus. En effet le lancement d'eclipse repose sur la lecture de nombreux fichiers, tous analysés par Sophos Antivirus. Dans la boîte de dialogue Worspace Launcher, choisir N:\www. Cocher Use this as dafault and do not ask again. Cliquer sur OK. En cas d'erreur on peut plus tard revenir a cette affichage avec le menu File > Switch Workspace... Si l'affichage Welcome apparaît, le fermer. AgroParisTech, ufr d informatiqueprise en main de l'outil de développement page 61

63 Prise en main de l'outil de développement (4 / 4) Utilisation d'eclipse Pour chaque série de TD (HTML, puis PHP) on créera un nouveau projet avec le menu : File > New > Projet..., en choisissant PHP > PHP Projet Ensuite, on peut créer des fichiers HTML ou PHP dans le projet. Lors de l'ouverture d'un fichier le PHP Browser doit apparaître automatiquement ; sinon, utiliser le menu : Window > Show View > PHPEclipse Web Development > PHP Browser AgroParisTech, ufr d informatiqueprise en main de l'outil de développement page 62

64 TD HTML AgroParisTech, ufr d informatique TD HTML page 63

65 AgroParisTech, ufr d informatique TD HTML page 64

66 TD HTML 1 Introduction aux exercices Les différents exercices de ce document consistent d'abord à réaliser un minisite personnel. Chaque élève suivra le cheminement proposé pour réaliser son propre site avec un certain degré de liberté quant aux choix des attributs des styles, du moment que le travail réalisé reste conforme à l'esprit de l'exercice. Le support de cours ne contient pas forcément tous les éléments nécessaires à la réalisation, mais indique des sites internet de référence qui permettront à l'étudiant de trouver par lui-même les informations dont il aura besoin. Réalisation Il s'agit tout d'abord de réaliser une page avec : une zone de titre; un titre de niveau 1 positionné dans la zone de titre ; une zone de contenu ; un titre de niveau 1 positionné dans la zone de contenu ; un texte positionné dans la zone de contenu ; une ligne de séparation horizontale. AgroParisTech, ufr d informatique TD HTML page 65

67 TD HTML 2 Ajouter une feuille de style à la page pour prendre en compte les éléments suivants : la zone de titre est encadrée, avec un fond et une bordure de couleur ; les titres de niveau 1 ont un aspect différent dans chaque section. Compléter ensuite la page et sa feuille de style avec les éléments suivants : deux titres de niveau 2 ; deux listes à puces ; deux lignes de séparation horizontale. AgroParisTech, ufr d informatique TD HTML page 66

68 TD HTML 3 Compléter la page précédente, avec le contenu suivant : une image de fond qui vient remplacer la couleur de fond de la zone de titre; une image insérée dans le contenu de la page. Indication : l'attribut float appliqué au style d'une image permet de positionner celle-ci par rapport au texte. AgroParisTech, ufr d informatique TD HTML page 67

69 TD HTML 4 (1 / 3) Compléter la page précédente, avec le contenu suivant : une nouvelle zone de menu à gauche de la zone contenu ; une liste insérée dans la zone de menu, avec un ensemble de liens vers les différentes pages du site, sachant que le lien vers la page courante n'est pas activé et est d'une couleur différente. Indication : l'attribut float appliqué au style d'une zone permet de positionner celle-ci par rapport aux autres zones. AgroParisTech, ufr d informatique TD HTML page 68

70 TD HTML 4 (2 / 3) Créer une nouvelle page basée sur la même feuille de style et accessible via le menu. Cette page contient un CV, organisé avec des titres de niveau 2, et avec un parcours scolaire affiché sous forme de tableau. Le style des éléments de la première colonne est différent de celui des éléments des autres colonnes, et le tableau possède une bordure. Compléter ensuite les autres parties du CV. AgroParisTech, ufr d informatique TD HTML page 69

71 TD HTML 4 (3 / 3) Créer une nouvelle page basée sur la même feuille de style et accessible via le menu. Cette page contient un ensemble de lien vers des sites, organisés dans une liste. Un clic sur un lien ouvre la page correspondante dans une nouvelle fenêtre du navigateur. AgroParisTech, ufr d informatique TD HTML page 70

72 TD HTML 5 Copier les 3 pages précédemment réalisées ainsi que les feuilles de styles et les images nécessaires dans un nouveau répertoire. Modifier ensuite la feuille de style pour obtenir une apparence complètement différente du même contenu, en faisant notamment en sorte que le menu soit désormais positionné horizontalement au dessus du contenu. Indication : display: inline; appliqué au style d'une liste permet d'afficher celleci horizontalement. AgroParisTech, ufr d informatique TD HTML page 71

73 TD HTML 6 Il s'agit de créer un formulaire web. Reproduire aussi fidèlement que possible celui qui est affiché dans la copie d'écran ci-dessous. Indication : les balises fieldset permettent de regrouper plusieurs champs, et les balises legend permettent de donner un titre à un tel regroupement. AgroParisTech, ufr d informatique TD HTML page 72

74 Programmation : principes de base AgroParisTech, ufr d informatique Programmation page 73

75 AgroParisTech, ufr d informatique Programmation page 74

76 Programmation : principes de base AgroParisTech, uer d informatique Sommaire Ordinateur : architecture et codage Langages de programmation Types et variables Instructions Branchements conditionnels Schémas itératifs Procédures et fonctions AgroParisTech, ufr d informatique Programmation page 75

77 Ordinateur : architecture globale Un ordinateur est constitué de : Un (ou plusieurs) processeur (CPU) De la mémoire : RAM De stockage des données : disque dur Des périphériques : D'entrée : clavier, souris De sortie : écran, imprimante D'entrée-sortie : clé USB Un ordinateur est doté d'un système d'exploitation qui fait l'interface avec les programmes : Windows, Linux, MacOS Ordinateur : fonctionnement Processeur : Cadencé par un cristal de quartz Fréquence : nombre d'impulsions par seconde Accomplit des instructions : Opération Opérandes AgroParisTech, ufr d informatique Programmation page 76

78 Ordinateur : fonctionnement Familles d'instructions : Accès à la mémoire Opérations arithmétiques : +, -, *, / Opérations logiques : and, or Contrôle : if, while Ordinateur : codage des données Les données sont représentées en binaire : puissances de 2, représentées par 0 ou 1 Par exemple : 123 = = 2^6 + 2^5 + 2^4 + 2^3 + 2^1 + 2^0 123 ==> AgroParisTech, ufr d informatique Programmation page 77

79 Ordinateur : codage des données Les données sont traitées par «paquets» : un ordinateur 32 bits traitent 32 unités binaires à la fois L'unité de base est l'octet : 8 bits Avec un octet, on peut représenter : Un nombre compris entre 0 et 255 Une lettre en ASCII (65 ==> A, 66==> B...) etc. Ordinateur : codage hexadécimal L'écriture binaire est très verbeuse On regroupe les bits par paquets de 4 pour compter en puissances de 16 : 1 ==> 1, 2 == 2, ==> A, ==> F Par exemple : 123 ==> ==> 7B AgroParisTech, ufr d informatique Programmation page 78

80 Codage : à retenir On n'a généralement pas besoin de faire les conversions pour programmer Par contre, on doit connaître les limites (par exemple 255 est le nombre maximal qu'on peut coder avec un octect) L'hexadécimal est parfois utile : en HTML les composantes RGB d'une couleur sont codées sur 3 octets en hexadécimal Sommaire Ordinateur : architecture et codage Langages de programmation Types et variables Instructions Branchements conditionnels Schémas itératifs Procédures et fonctions AgroParisTech, ufr d informatique Programmation page 79

81 Programmation : principes Plusieurs types de langages de programmation : Langage machine Langage de plus haut niveau Un programme écrit dans un langage de haut niveau doit être «traduit» : Interprété : traduction au fur et à mesure Compilé : traduction complète avant exécution Exemples de langages Langages interprétés : Matlab PHP Langages compilés : Pascal C Java (semi-compilé) AgroParisTech, ufr d informatique Programmation page 80

82 Langages : autre typologie Selon la manière de poser et résoudre le problème : Langage procéduraux : Matlab, C, PHP Langages objet : C++, Java Langages formels : CAML Etc. En première année, nous nous intéressons uniquement aux langages procéduraux! Langages procéduraux Des suites d'instructions élémentaires sont regroupées en procédures ou fonctions L'enchaînement global est réalisé dans une procédure d'entrée Les instructions sont exécutées les unes à la suite des autres, sauf si : Condition d'exécution : if Répétition d'exécution : for, while AgroParisTech, ufr d informatique Programmation page 81

83 Sommaire Ordinateur : architecture et codage Langages de programmation Types et variables Instructions Branchements conditionnels Schémas itératifs Procédures et fonctions Les données du programme Un programme effectue des opérations sur des données : Opérations arithmétiques Autres opérations de transformation (ex : sur les chaînes de caractères) Opérations logiques : comparaison Ces données sont : Des constantes : invariables Des variables AgroParisTech, ufr d informatique Programmation page 82

84 Typage Le programme doit connaître le type de données manipulées Ce typage peut être : Explicite : Pascal, C Implicite : Matlab, PHP Un typage implicite signifie que le langage détermine le type automatiquement en fonction des données affectées dans la variable sinon il faut «déclarer» la variable Les variables Une variable est un moyen de représenter et manipuler une donnée d'un programme Une variable correspond à un espace de la mémoire de l'ordinateur Il peut y avoir des «conventions de nommage» : par exemple le nom d'une variable commence par $ en PHP AgroParisTech, ufr d informatique Programmation page 83

85 Affectation des variables Une variable n'a de sens que si elle contient une donnée Le fait de mettre une valeur dans une variable s'appelle l' «affectation» On peut affecter dans une variable : Une valeur (ex : 2, "toto") Une autre variable Le résultat d'une opération Affectation des variables En général, c'est le signe = qui est utilisé (:= en Pascal) L'affectation se fait toujours de la droite vers la gauche!! $a = 123 $b = $a $a = = $a... a ??? b 123?... AgroParisTech, ufr d informatique Programmation page 84

86 Nombres et chaînes de caractères La conversion d'un nombre en chaîne de caractère est généralement implicite Par contre, la conversion d'une chaine de caractères en nombre demande généralement l'utilisation d'une fonction du langage Ainsi : ==> 3 "2" + "1" ==> "21" Cependant, en PHP l'opérateur de concaténation (.) est distinct de l'addition (+) Sommaire Ordinateur : architecture et codage Langages de programmation Types et variables Instructions Branchements conditionnels Schémas itératifs Procédures et fonctions AgroParisTech, ufr d informatique Programmation page 85

87 Enchaînement des instructions Par convention, on met une instruction par ligne Un séparateur peut être nécessaire : souvent le ; Les instructions peuvent être regroupées dans des blocs : une variable déclarée dans un bloc n'existe pas à l'extérieur de celui-ci (notion de «portée» d'une variable) Quelques instructions en PHP $a = 12; // Les noms de variables // commencent par $ en PHP { // Début de bloc $b = $a * $a; echo "Carré de $a = $b"; } // Fin de bloc echo "Carré de $a = $b"; // Impossible! AgroParisTech, ufr d informatique Programmation page 86

88 Sommaire Ordinateur : architecture et codage Langages de programmation Types et variables Instructions Branchements conditionnels Schémas itératifs Procédures et fonctions Branchements conditionnels Les branchements conditionnels permettent de modifier l'exécution du programme selon les valeurs des variables Typiquement : si condition alors bloc vrai sinon bloc faux AgroParisTech, ufr d informatique Programmation page 87

89 Branchements conditionnels La condition peut être une variable ou toute opération qui renvoie vrai ou faux (comparaison arithmétique par exemple) Le bloc vrai est exécuté quand la condition est vrai, sinon c'est le bloc faux Le bloc faux est facultatif Conditions : à savoir L'égalité doit se distinguer de l'affectation : généralement == au lieu de = Négation : ~ en Matlab,! en PHP On peut combiner plusieurs conditions : opérateurs and, or, xor emploi des parenthéses possible ne pas oublier que (notation PHP) :! ( A and B) =!A or!b! (A or B) =!A and!b AgroParisTech, ufr d informatique Programmation page 88

90 Exemple : calcul de racine // On suppose une suite d'instruction // ayant conduit à ce que la variable // $a contienne un nombre réel if ($a >= 0) { $r = sqr($a); echo "Racine de $a : $r"; } else { echo $a. " n'est pas un nombre positif, pas de calcul de racine!"; } Sommaire Ordinateur : architecture et codage Langages de programmation Types et variables Instructions Branchements conditionnels Schémas itératifs Procédures et fonctions AgroParisTech, ufr d informatique Programmation page 89

91 Schémas itératifs Les schémas itératifs permettent de répéter l'exécution d'un bloc d'instructions 2 grands types de schémas : schéma for : lorsque le nombre de répétitions est connu à l'avance, gère intrinséquement un compteur schéma while : lorsque la fin des répétitions dépend d'une condition logique, ne gère pas de compteur Schémas itératifs Si on souhaite avoir un compteur dans un schéma while, il faut le gérer soi-même et penser à le modifier à chaque itération Un schéma for peut toujours être transformé en schéma while, mais la réciproque n'est pas vraie AgroParisTech, ufr d informatique Programmation page 90

92 Exemple : calcul de factorielle // On suppose une suite d'instruction // ayant conduit à ce que la variable // $a contienne un nombre entier positif $f = 1; for ($i=1; $i<=$a; $i++) { $f = $f*$i; } $f = 1; $c = 1; while ($c <= $a) { $f = $f * $c; $c = $c + 1; } Les collections Il arrive souvent qu'on ait à gérer un grand nombre de données similaires et à leur appliquer des traitements similaires On peut alors gérer ces données dans des collections qui permettront de facilement les manipuler dans des itérations 2 grands types de collection : les tableaux : indicés à partir de 0 ou 1 les tableaux indexés : on peut alors choisir de faire correspondre une valeur à un index choisi AgroParisTech, ufr d informatique Programmation page 91

93 Exemple de tableau Remplir puis afficher un tableau des 10 premiers multiples strictements positifs de 3 : for ($i=1; $i<=10; $i++) { $multiples[$i] = $i * 3; } foreach ($multiples as $index => $valeur) { echo "$index multiple : $valeur\n"; } Exemple de tableau indexé On associe les capitales aux pays : $capitales["france"] = "Paris"; $capitales["royaume Uni"] = "Londres"; $capitales["allemagne"] = "Berlin"; foreach ($capitales as $index => $valeur) { echo "$index a pour capitale $ville\n"; } AgroParisTech, ufr d informatique Programmation page 92

94 Sommaire Ordinateur : architecture et codage Langages de programmation Types et variables Instructions Branchements conditionnels Schémas itératifs Procédures et fonctions Procédure et fonctions Les procédures et fonctions permettent l'organisation et la réutilisation du code Contrairement à une procédure, une fonction renvoie un résultat (plusieurs possibles avec Matlab) Les procédures et fonctions peuvent prendre des paramètres d'entrée Bien sûr les variables déclarées dans une procédure ou fonction n'existent pas en dehors de celle-ci AgroParisTech, ufr d informatique Programmation page 93

95 Gestion des variables Soit une fonction pour calculer la factorielle d'un nombre entier positif : function factorielle($nombre) { $resultat = 1; for ($i = 2; $i <= $nombre ; $i++) { $resultat = $resultat * $i; } return $resultat; } Gestion des variables Paramètre d'entrée : $nombre $nombre contiendra ce qu'on passe au moment de l'appel de la fonction : directement un nombre ou une autre variable Variables locales à la fonction : $resultat $i Paramètre de retour : la valeur contenue dans $resultat AgroParisTech, ufr d informatique Programmation page 94

96 Exemples d'appels $resultat = factorielle(4); // $nombre prendra la valeur 4 $b = 5; $r = factorielle($b); // $nombre prendra la valeur de $b : 5 On n'a pas besoin de connaître le nom des variables utilisées dans la fonction! Seuls comptent leur nombre et l'ordre! AgroParisTech, ufr d informatique Programmation page 95

97 AgroParisTech, ufr d informatique Programmation page 96

98 PHP AgroParisTech, ufr d informatique PHP page 97

99 AgroParisTech, ufr d informatique PHP page 98

100 PHP : histoire et état des lieux Un peu d'histoire 1994 : création de PHP/FI (Personal Home Page Tools/Form Interpreter) par Rasmus Lerdof (Canada) pour évaluer la consultation de son CV en ligne : mise à disposition du code pour tout le monde : redéveloppement du coeur par 2 étudiants (Andi Gutmans et Zeev Zuraski, Israëm) pour donner PHP (PHP: Hypertext Processor) : 8 millions de sites basés sur PHP : 15 millions de sites basés sur PHP. Evolution du langage Au départ basé sur le langage Perl, PHP a été réécrit ensuite en langage C. Le moteur a été réécrit plusieurs fois. D'abords procédural, le langage a évolué a partir de la version 4.0 pour intégrer les technologies objet. Principales caractéristiques Le moteur PHP s'intègre au serveur web Apache : il prend alors en charge toutes les pages avec une extension.php. PHP est un langage interprété : il n'y a pas de phase de compilation et les erreurs sont découvertes au moment de l'exécution. La syntaxe est très inspirée du langage C, tout en apportant beaucoup de simplification, notamment dans la gestion des variables. Remarque : dans le présent support, on n'aborde pas les caractéristiques objet de PHP ; le code décrit est compatible PHP 3.0 et versions ultérieures. AgroParisTech, ufr d informatique PHP page 99

101 PHP : principe de fonctionnement Principe des applications web Poste client Serveur 1 : Requete (GET ou POST) Navigateur Web 2 : Réponse Serveur HTTP Apache + Module PHP Les applications web fonctionnent grâce à des échanges réseau entre un logiciel client (le navigateur web) et un logiciel serveur (le serveur web). Ces échanges sont basés sur le protocole HTTP : le navigateur envoie une requête au serveur web et reçoit du contenu à afficher. La navigation sur un site est constituée d'un ensemble de requêtes/réponses qui s'enchaînent. Il y a 2 types de requêtes : les requête de type GET (barre d'url et clic sur un lien) et les requêtes de type POST (validation de formulaire). Apport de PHP Les pages HTML sont des pages de contenu statique stockées dans le système de fichier du serveur. Les pages PHP contiennent du code HTML, mais aussi du code PHP qui est exécuté sur le serveur au moment de la requête et produit du code HTML ; la page est dite dynamique, car le contenu final HTML renvoyé au navigateur peut changer selon le contexte. PHP nécessite l'ajout et la configuration d'un module spécifique dans le serveur web Apache. AgroParisTech, ufr d informatique PHP page 100

102 Premier exemple de code (1 / 2) Exemple simple <?php echo "<?xml vers ion=\ "1.0 \ " encoding=\ " I SO \"?> "?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" " <html xmlns=" xml:lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=iso " /> <meta name="keywords" content="agronomie,ina-pg"> <meta name="revisit-after" content="30 days" /> <title>ma première page PHP</title> </head> <body> <div> Bonjour nous sommes le : <?php $date = date("d-m-y"); echo "$date"; // Affichage de la date?> </div> </body> </html> Affichage AgroParisTech, ufr d informatique PHP page 101

103 Premier exemple de code (2 / 2) Code HTML généré Si on demande l'affichage du code source dans le navigateur : <?xml version="1.0" encoding="iso "?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" " <html xmlns=" xml:lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=iso " /> <meta name="keywords" content="agronomie,ina-pg"> <meta name="revisit-after" content="30 days" /> <title>ma première page PHP</title> </head> <body> <div> Bonjour nous sommes le : O </div> </body> </html> Le navigateur reçoit et interprète toujours du code HTML car le code PHP est évalué au niveau du serveur. Contrairement à une page HTML, on ne peut donc pas tester une page PHP directement en l'ouvrant depuis le système de fichier sans passer par une connexion HTTP sur un serveur de type Apache. AgroParisTech, ufr d informatique PHP page 102

104 Notions de base Code PHP au sein d'une page HTML Le code PHP est inséré directement au sein d'une page contenant du HTML. Le code PHP doit cependant être contenu dans des balises spéciales : <?php...?> ou <?...?>. Du code HTML est produit grâce à l'instruction echo. On peut mettre plusieurs instructions au sein d'une même balise <??>. Une instruction est toujours terminée par un ;. <? echo $variable;?> peut être condensé en <?= $variable?>. Pour être reconnu par l'interpréteur PHP, le fichier doit porter l'extension.php. Syntaxe de base L'instruction echo permet de générer de l'affichage HTML au sein d'une page. Les chaînes de caractères sont écrites entre "" : on doit faire précéder un " d'un \ pour l'inclure au sein d'une chaîne. Les noms de variables commencent toujours par le caractère $. Les variables n'ont pas besoin d'être déclarées, ni d'être typées ; elles sont créées implicitement lors de la première utilisation. Le langage fournit un certain nombre de fonction prédéfinies ; lors d'un appel de fonction, les paramètres sont passés entre ( ) et séparés par des,. Les commentaires sont écrits en commençant par // sur une ligne ou entre /* et */ sur plusieurs lignes. Les accolades {} permettent de délimiter des blocs d'instructions. Remarque : lorsqu'on respecte la norme XHTML, les caractères <? de la première ligne sont interprétés comme une balise PHP. Il faut donc obligatoirement générer cette première ligne avec une instruction PHP echo. TD P1 AgroParisTech, ufr d informatique PHP page 103

105 Structures de contrôle PHP propose toutes les structures de contrôle classiques. Tests conditionnels <??> if (is_numeric($texte)) { echo "La variable contient un nombre"; } else { echo "La variable contient du texte"; } On peut enchaîner des tests avec l'instruction elseif. On peut utiliser l'instruction switch lorsqu'on a beaucoup de conditions. Schémas itératifs <? for ( $i = 1; $i <= 10 ; $i++) { echo $i. ' '; } $i = 1; while ($i<=10) { echo $i. ' '; $i++; }?> <??> foreach(range(1, 10) as $i) { } <?= $i?> TD P2 AgroParisTech, ufr d informatique PHP page 104

106 Interactions avec l'utilisateur (1 / 2) Principe général Dans une application web, l'interaction avec l'utilisateur est essentiellement fondée sur la validation de formulaire HTML, qui provoque l'envoie de données vers le serveur et l'affichage de nouvelles informations en provenance de celui-ci. Des technologies telles que Javascript permettent la gestion d'événements, mais celle-ci reste locale au navigateur et donc limitée. Formulaire : côté client Soit un fichier formulaire.php :... <body> <div> </form> </div> </body>... <form action="validation_formulaire.php" method="post"> <p><label for="nom">nom :</label> <input type="text" size="30" name="nom" /></p> <p><label for="prenom">prénom :</label> <input type="text" size="20" name="prenom" /></p> <p><input type="submit" name="btaction" value="ok" /> <input type="reset" name="btannuler" value="annuler" /></p> Il faut préciser dans la balise form le nom du fichier PHP qui traitera les données, ainsi que la méthode de transfert de ces données (POST conseillé). Il est important de donner un nom à chaque élément du formulaire : ce nom permet ensuite de retrouver les valeurs associées saisies par l'utilisateur. AgroParisTech, ufr d informatique PHP page 105

107 Interactions avec l'utilisateur (2 / 2) Formulaire : côté serveur Le formulaire précédent est traité par validation_formulaire.php :... <body> <div> <? if (empty($_post["nom"]) or empty($_post["prenom"])) { echo "Vous devez saisir un nom et un prénom!"; } else { $nom = $_POST["nom"]; $prenom = $_POST["prenom"]; echo "Bonjour $prenom $nom"; }?> </div> </body> Enchaînement formulaire.php validation_formulaire.php (résultat HTML) Interprétation de validation_formulaire.php 1. Le navigateur rassemble les informations saisies dans le formulaire (nom et prénom) et les envoie par une méthode POST au serveur. 2. Le serveur interprèle validation_formulaire.php avec les données reçues et génère un flux HTML résultat renvoyé au navigateur. AgroParisTech, ufr d informatique PHP page 106

108 Formulaire validé par lui-même (1 / 2) Principe Dans l'exemple précédent, lorsque l'utilisateur s'est trompé ou s'il veut faire une nouvelle saisie, il soit revenir en arrière en utilisant la touche back du navigateur. Il est souvent plus judicieux d'afficher le formulaire et le résultat sur une même page : lors du premier accès, la méthode GET est employée ; lors de la validation, la méthode POST est employée. Exemple AgroParisTech, ufr d informatique PHP page 107

109 Formulaire validé par lui-même (2 / 2)... <body> <div> <? if ($_SERVER["REQUEST_METHOD"] == "POST") { // on est appelé par la méthode POST, donc // en validation du formulaire if (empty($_post["nom"]) or empty($_post["prenom"])) { echo "Vous devez saisir un nom et un prénom!"; } else { $nom = $_POST["nom"]; $prenom = $_POST["prenom"]; echo "Bonjour $prenom $nom"; } }?> <form action="toutenun.php" method="post"> <p><label for="nom">nom :</label> <input type="text" size="30" name="nom" /> </p> <p><label for="prenom">prénom :</label> <input type="text" size="20" name="prenom" /> </p> <p><input type="submit" name="btaction" value="ok" /> <input type="reset" name="btannuler" value="annuler" /> </p> </form> </div> </body>... TD P3 AgroParisTech, ufr d informatique PHP page 108

110 Tableaux Exemples précédents Dans les précédents exemples de code, on a : $_SERVER["REQUEST_METHOD"] $_POST["nom"] $_POST["prenom"] $_SERVER et $_POST sont en fait des tableaux associatifs pré-remplis. Tableaux associatifs Un tableau associatif permet de faire correspondre des valeurs à des clés : <?php // Création d'un tableau de 3 éléments $tableau = array(1=>"rouge", 2=>"bleu", 3=>"jaune"); // Ajout d'un élément à la fin du tableau $tableau[] = "vert"; // Modification du 2ème élément $tableau[2] = "vert"; // Affichage du 3ème élement echo $tableau[3]; // Ajout d'un élément associé à "rien" $tableau["rien"] = "transparent"; // affichage de tout tableau : // Array ( [1] => rouge [2] => vert... ) print_r($tableau); // Parcours du tableau foreach ($tableau as $index => $couleur) { echo "<br /> $index => $couleur"; } // Effacement du 2ème élément unset($tableau[2]);?> // Effacement de tout le tableau unset($tableau); TD P4 AgroParisTech, ufr d informatique PHP page 109

111 Fonctions Quelques fonctions prédéfinies Chaînes de caractères Dates Tableaux strlen($chaine) : longueur d'une chaîne strpos($chaine, $car) : position d'un caractère strtolower($chaine) : conversion minuscules strtoupper($chaine) : conversion majuscules getdate() : date et heure gettimeofday() : heure actuelle date($format, $date) : formatage count($tableau) : nombre d'éléments sort($tableau) : tri Fonctions définies par l'utilisateur PHP permet de créer des fonctions : <?php function factorielle($nombre) { $resultat = 1; for ( $i = 2; $i <= $nombre ; $i++) { $resultat = $resultat * $i; } return $resultat; }?> On peut définir des fonctions dans des fichiers.php et les utiliser dans d'autres fichiers grâce à l'instruction include : <?php include "fonctions.php"; echo factorielle(5);?> TD P5 AgroParisTech, ufr d informatique PHP page 110

112 Ressources Installation Développement AgroParisTech, ufr d informatique PHP page 111

113 AgroParisTech, ufr d informatique PHP page 112

114 TD PHP AgroParisTech, ufr d informatique TD PHP page 113

115 AgroParisTech, ufr d informatique TD PHP page 114

116 TD PHP 1 Créer un nouveau projet pour distinguer les TD PHP des TD HTML. En s'inspirant de l'exemple du cours, créer un fichier td1.php. Lorsqu'on appelle l'url correspondant au fichier dans un navigateur Web, on doit voir s'afficher : la date actuelle formatée en titre de niveau 1 ; l'heure actuelle formatée en titre de niveau 2. Remarque : on peut trouver de l'ide sur la fonction date sur le site AgroParisTech, ufr d informatique TD PHP page 115

117 TD PHP 2 Les schémas itératifs permettent notamment de générer du code HTML conséquent par programmation. Il s'agit, dans un fichier td2.php, d'écrire 2 boucles imbriquées afin de générer un tableau contenant la table de multiplication des entiers de 1 à 10. AgroParisTech, ufr d informatique TD PHP page 116

118 TD PHP 3 Il s'agit, dans un fichier td3.php, de proposer à l'utilisateur un formulaire permettant de saisir un nombre et de calculer en retour la factorielle de ce nombre (grâce à une itération). On vérifie également que la saisie de l'utilisateur est correcte (nombre entier). AgroParisTech, ufr d informatique TD PHP page 117

119 TD PHP 4 Il s'agit, dans un fichier td4.php, de proposer à l'utilisateur un formulaire permettant de convertir une somme en vers une ancienne monnaie nationale. On utilise pour cela 2 tableaux associatifs : $nom_devise = array( "FRF" => "franc français", "DEM" => "mark allemand", "ESP" => "peseta espagnole", "BEF" => "franc belge", "GRD" => "drachme grecque", "IEP" => "livre irlandaise", "ITL" => "lire italienne", "NLG" => "florin néerlandais", ); Permet de générer la liste déroulante grâce à une itération. L'attribut value de chaque option est égal au nom court de la devise en 3 lettres. $un_euro = array( "FRF" => , "DEM" => , "ESP" => , "BEF" => , "GRD" => , "IEP" => , "ITL" => , "NLG" => , ); Permet de réaliser la conversion lors de la validation du formulaire. AgroParisTech, ufr d informatique TD PHP page 118

120 TD PHP 5 Il s'agit, dans un fichier td5.php, de : écrire 2 fonctions aire_triangle(...) et aire_rectangle(...) qui renvoient respectivement l'aire d'un triangle et d'un rectangle en fonction de la base et de la hauteur ; écrire un formulaire permettant à l'utilisateur de saisir une base, une hauteur et de sélectionner une forme pour obtenir l'aire correspondante. On vérifiera également les données saisies par l'utilisateur. AgroParisTech, ufr d informatique TD PHP page 119

121 AgroParisTech, ufr d informatique TD PHP page 120

122 Organiser les données du Système d'information AgroParisTech, ufr d informatique Organiser les données du Système d'information page 121

123 AgroParisTech, ufr d informatique Organiser les données du Système d'information page 122

124 Organiser les données du système d information Définir l architecture du système d information, ce n est pas seulement concevoir les composants et organiser leurs interactions. C est aussi spécifier les informations qui seront exploitées, définir leurs liens et leur organisation, leur accessibilité et leur protection : A partir d un cahier des charges, faire l inventaire des données et des relations Concevoir le modèle de données Choisir et mettre en œuvre un SGBD Administrer la base de données Étudions la problématique de l organisation des données à travers un exemple AgroParisTech, ufr d informatique Organiser les données du Système d'information page 123

125 GIE agricole : cahier des charges (simplifié) Des agriculteurs possèdent des parcelles Une parcelle a un et un seul propriétaire un agriculteur possède une ou plusieurs parcelles Pour exploiter ces parcelles, les agriculteurs font appel à un GIE. Celui-ci fournit de la main d œuvre d appoint, à la journée. Cette main d œuvre est assurée par des employés du GIE. Chaque employé du GIE a un tarif, qui constitue son salaire journalier brut. GIE agricole : cahier des charges (simplifié) Le GIE paie ses employés mensuellement, en fonction de leurs interventions. Chaque intervention concerne une parcelle, un employé et un nombre de jours. Le système d information désiré doit pouvoir fournir : la liste des agriculteurs, la liste des employés la liste des interventions par employé la liste des interventions par agriculteur AgroParisTech, ufr d informatique Organiser les données du Système d'information page 124

126 Inventaire des données (simplifié) nom et prénom (agriculteur) nom et prénom (employé GIE) parcelle : nom, superficie, lieu et propriétaire employé : numéro insee et salaire journalier agriculteur : lieu de résidence interventions : employé, parcelle, date de début, nombre de jours Quelle structure pour représenter ces données? Représenter les agriculteurs nom et prénom (agriculteur) nom et prénom (employé GIE) parcelle : nom, superficie, lieu et propriétaire employé : numéro insee et salaire journalier agriculteur lieu de résidence : Disposition en table Une ligne = un agriculteur = un enregistrement de la table Question : comment distinguer les deux Christian Martoz? Plus généralement, est-il acceptable d utiliser la résidence pour distinguer des homonymes? AgroParisTech, ufr d informatique Organiser les données du Système d'information page 125

127 Une clé primaire pour la table Une colonne particulière permet d identifier de manière unique chaque agriculteur On l appelle la clé primaire primaire de la table Ici, cette clé est une valeur numérique que l on augmente (incrémente) à chaque ajout d un nouvel agriculteur La table agriculteur a quatre champs Chaque champ représente une propriété de l information "Agriculteur" et il est associé à une colonne Chaque champ a un type qui caractérise les valeurs qu il peut prendre Le champ AGR_IDF est "auto-incrémenté" et c est la clé primaire de la table. AgroParisTech, ufr d informatique Organiser les données du Système d'information page 126

128 Récapitulons - table La table est l unité de stockage dans une base de données Une table est associée à une entité du modèle de données. Elle répertorie toutes les apparitions (occurrences) de cette entité. Chaque ligne (enregistrement) de la table représente une occurrence de l entité Chaque propriété de l entité est représentée par une colonne (champ) Récapitulons clé primaire Dans chaque table, on distingue une information particulière, la clé primaire, qui identifie de manière unique chaque occurrence : il ne peut y avoir deux valeurs identiques de clé primaire dans la table. Attention, la clé primaire n est pas forcément limitée à une seule colonne Par exemple, quelle est la clé primaire de la table distance_villes? AgroParisTech, ufr d informatique Organiser les données du Système d'information page 127

129 Et maintenant, les parcelles Une parcelle a un nom, elle est située en un lieu précis et elle a une superficie Une parcelle a aussi un propriétaire : comment l indiquer dans la table des parcelles? Désigner le propriétaire Une parcelle a un nom, elle est située en un lieu précis et elle a une superficie Le champ PAR_AGR_IDF désigne le propriétaire Il définit une relation entre les deux tables AgroParisTech, ufr d informatique Organiser les données du Système d'information page 128

130 Une relation un à plusieurs Un agriculteur peut posséder plusieurs parcelles Une parcelle a un et un seul propriétaire La relation entre les tables est une relation un à plusieurs. Elle est matérialisée, du côté «plusieurs», par une clé étrangère 1 n La table employe Un employé a : un numéro de sécurité sociale, un nom, un prénom et un tarif journalier Faut-il une clé primaire autoincrémentée pour cette table? AgroParisTech, ufr d informatique Organiser les données du Système d'information page 129

131 Quelle relation entre les tables parcelle et employe? Un employé peut être amené à travailler sur plusieurs parcelles Sur une même parcelle, peuvent travailler plusieurs employés (simultanément ou l un après l autre) C est une relation plusieurs à plusieurs : on la représente par une nouvelle table Une relation plusieurs à plusieurs représentée par la table intervention 1 n n 1 L employé Grandet a travaillé à la parcelle du pré au vent, 5 jours à partir du 5 juillet 2004 AgroParisTech, ufr d informatique Organiser les données du Système d'information page 130

132 Exercice : concevoir un modèle de données Base de données cinématographique : Un film a un titre, un budget de production, des recettes ; il est joué par des acteurs ; il est réalisé par un metteur en scène Chaque acteur jouant dans un film touche un cachet ; il a une année de naissance et éventuellement de décès ; il parle une langue maternelle Chaque réalisateur est originaire d un pays et a une année de naissance et éventuellement de décès Concevez le modèle de données! Consulter et mettre à jour une base de données SQL (Structured Query Language) est le langage qui permet de manipuler une base de données relationnelles Une instruction (ou requête) SQL permet de : consulter (SELECT) modifier (UPDATE) ajouter (INSERT) supprimer (DELETE) En PHP, la fonction mysql_query permet de soumettre une requête SQL au SGBD mysql AgroParisTech, ufr d informatique Organiser les données du Système d'information page 131

133 Consultation (1) select * from agriculteur le résultat est une table temporaire select agr_nom, agr_prn from agriculteur where agr_res = 'ARITH' ARITH' Comment répondre à la question : quelles sont les résidences des agriculteurs? Consultation (2) résidences des agriculteurs? select agr_res from agriculteur comment obtenir un résultat ordonné? supprimer les doublons? select agr_res from agriculteur order by agr_res select distinct agr_res from agriculteur order by agr_res AgroParisTech, ufr d informatique Organiser les données du Système d'information page 132

134 Consultation (3) Quels sont les propriétaires de parcelles? select agr_nom, par_nom from agriculteur, parcelle where agr_idf = par_agr_idf Nombre de parcelles pour chaque propriétaire? select agr_nom, count(par_nom) from agriculteur, parcelle where agr_idf = par_agr_idf group by agr_nom Pour approfondir et pratiquer L outil PhpMyAdmin accessible via easyphp (clic droit sur l icône easyphp, puis choix de «Administration») AgroParisTech, ufr d informatique Organiser les données du Système d'information page 133

135 AgroParisTech, ufr d informatique Organiser les données du Système d'information page 134

136 TD Base de Données AgroParisTech, ufr d informatique TD Base de Données page 135

137 AgroParisTech, ufr d informatique TD Base de Données page 136

138 Bases de données : concepts Limites rencontrées Lorsqu'on manipule des variables en informatiques, les données associées sont stockées dans la mémoire vive (RAM) de l'ordinateur. Ce mode de fonctionnement présente cependant des limites : les données n'existent que pendant le temps de fonctionnement de l'application : en cas de redémarrage de l'application, tout est perdu ; la mémoire vive est très limitée en taille par rapport à l'espace disque ; on ne peut pas partager les données entre différentes applications ; etc. Stocker des données dans des fichiers permet de pallier certains de ces inconvénients, cependant : il faut définir à chaque fois comment on stocke les données, et l'expliquer éventuellement aux concepteurs d'autres applications ; il est difficile de représenter des données complexes (de type 1 à plusieurs par exemple) ; pour retrouver une donnée particulière, on est obligé de parcourir une bonne partie du fichier ; les modifications concurrentes posent problème. Invention des bases de données C'est pour cela qu'ont été inventées les bases de données, qui sont des systèmes offrant des fonctionnalités avancées pour la gestion d'information sur des supports de stockage persistants. Il y a différentes familles de bases de données, distinctes selon la manière dont les données sont stockées et dont elles communiquent avec des programmes. Les bases de données les plus répandues sont les bases de données relationnelles, apparues au début des années AgroParisTech, ufr d informatique TD Base de Données page 137

139 Bases de données relationnelles Les bases de données relationnelles offrent un haut niveau d'abstraction pour le stockage de données sur disque. Elles offrent notamment : un formatage et un typage des données sous forme de colonnes au sein d'une table ; un regroupement de plusieurs tables au sein d'une base ; une indexation des données pour les retrouver rapidement ; la possibilité de définir des relations entre des données issues de plusieurs tables (par exemple : plusieurs adresses pour une même personne) ; des possibilités de connexions depuis différents langages de programmation : API (Application Programming Interface) un langage d'interrogation et de modification normalisé : SQL (Structured Query Language). Base API Requete ou mise à jour SQL Réponse Table Enregistrements Index Relation AgroParisTech, ufr d informatique TD Base de Données page 138

140 Introduction à MySQL Logiciels de base de données Il existe différentes implémentations de bases de données : bases de données commerciales : Oracle IBM DB2 Microsoft SQLServer Microsoft Access bases de données Open Source : MySQL PostgreSQL MySQL Base développée par la société MySQL AB : MySQL est très utilisée en conjonction avec PHP pour produire des sites web dynamiques. MySQL a la réputation d'être une base de données simple à utiliser, performante et très robuste. PhpMyAdmin est une application PHP développée pour administrer une base MySQL à distance via un simple navigateur web : Cette application est intégrée à EasyPHP. PhpMyAdmin permet également de visualiser les ordres SQL qui permettent d'obtenir telle ou telle information ou d'executer telle ou telle action. AgroParisTech, ufr d informatique TD Base de Données page 139

141 TD Base de données 1 Objectifs de l'exercice Il s'agit de mettre en pratique les principes des bases de données sur un exemple. Tout d'abord il faudra créer un schéma de données (les différentes tables et leur relations) avec des exemples de données, puis il faudra trouver les requêtes appropriées pour réaliser des interrogations sur ce schéma. Nous utiliserons pour ce faire MySQL et PHPMyAdmin ; ces 2 outils sont inclus dans la distribution EaxyPHP installée sur les postes et téléchargeable gratuitement sur : Outil PhpMyAdmin On peut utiliser PhpMyAdmin en faisant un clic droit sur l'icône EasyPHP en bas à droite de l'écran et en choisissant "Administration" puis "Gestion BDD", ou plus directement, lorsque EasyPHP est démarré, en tapant dans un navigateur l'adresse AgroParisTech, ufr d informatique TD Base de Données page 140

142 TD Base de données 1 Sujet de l'exercice Sur de nombreux canaux français, la navigation commerciale a laissé la place à la navigation de plaisance. Ainsi la société Starboat s'est fait une réputation dans la location de pénichettes aux touristes. Pour améliorer la productivité, elle a décidé d'équiper chacune de ses bases d'un logiciel de gestion adapté à leurs activité. Dans un premier temps, il faut concevoir le modèle de données de ce logiciel. Ce modèle sera conçu au fur et à mesure de manière interactive en utilisant PhpMyAdmin, sachant que lorsqu'on se trompe, cet outil permet facilement d'effectuer des rectifications. On commence par créer une base Starboat. Les bateaux On crée une première table Bateau dans notre base sachant que chaque bateau : est bien entendu identifié par une clé primaire unique ; est baptisé ; correspond à un type de modèle (classique, terrasse, ou flying bridge) ; a été terminée à une date donnée ; a navigué un certain nombre d'heures. Une fois cette première table créée, on y insère un certain nombre de données d'exemple pour valider les champs et leur type. On considère par exemple une base avec 10 bateaux. AgroParisTech, ufr d informatique TD Base de Données page 141

143 TD Base de données 1 Les modèles de bateau : complexification Finalement, on ne veut pas se contenter d'avoir le nom du type de modèle, mais on souhaite associer à chaque modèle des informations complémentaires : puissance du moteur en CV ; présence ou non d'une prise électrique ; nombre de couchages. On crée donc une nouvelle table Modele pour prendre en compte ces caractéristiques en plus du nom du modèle. On saisit des données d'exemple pour les 3 types de modèle. Au lieu de référencer directement le nom du modèle, la table Bateau est alors modifiée pour que la référence au modèle se fasse sous la forme d'une association vers la table Modele. Les révisions Chaque bateau est révisé régulièrement par un technicien (la base exemple compte actuellement 2 techniciens). A chaque révision, le technicien devra remplir l'application en indiquant : qui a réalisé la révision ; la date ; le nombre d'heures de navigation du bateau au moment de la révision ; les interventions réalisées, sous forme de texte libre. AgroParisTech, ufr d informatique TD Base de Données page 142

144 TD Base de données 2 Les locations Toutes les locations sont enregistrées dans la base. En plus des informations évidentes à saisir pour une location, on souhaite avoir la possibilité de saisir au retour du bateau : le nombre d'heures de navigation effectuées ; le montant versé au titre des dommages infligés au bateau ; un commentaire libre. AgroParisTech, ufr d informatique TD Base de Données page 143

145 Le langage SQL : SELECT Introduction SQL signifie Structured Query Langage. La dernière norme du langage date de 1992 : on parle de SQL/92 ou SQL 2. SQL est insensible à la casse (différence minuscule/majuscule). Syntaxe du SELECT L'ordre select permet de retrouver des données dans une base en spécifiant les champs que l'on souhaite, ainsi que des critères de recherche. Syntaxe générale : SELECT COL1,COL2,COL3 FROM TABLE1,TABLE2 WHERE COL1=COL2 AND COL3 LIKE 'A%' ORDER BY COL1 Seule la première ligne est obligatoire! Elle permet d'indiquer les colonnes des valeurs qui nous intéressent dans différentes tables. La deuxième ligne permet de restreindre l'ensemble ramené sur certaines conditions qui peuvent concernées les valeurs de certains champs. La troisième ligne permet de contrôler l'ordre dans lequel les enregistrements sont ramenés. Valeurs et types SQL permet de manipuler de champs de type numérique, chaîne de caractères et dates. Les chaînes de caractères sont à mettre entre ' et '. % permet de remplacer une partie de chaîne de caractères. AgroParisTech, ufr d informatique TD Base de Données page 144

146 TD Base de données 2 Une fois le schéma terminé et complété avec un certain nombre de données d'exemple, on écrira un certain nombre de requêtes SQL de type SELECT pour réaliser les affichages suivants : la liste des bateaux ; la liste des bateaux classés par ordre alphabétique ; la liste des bateaux accompagnés des informations correspondant à leur modèle et classés par modèle ; le nombre total de bateaux ; la liste de toutes les bateaux de type Flying Bridge ; le nombre de bateaux de type classique ; le dernier bateau révisée ; la liste de tous les bateaux en cours de location ; la liste des bateaux qui ont subi un dommage en cours de location. AgroParisTech, ufr d informatique TD Base de Données page 145

147 AgroParisTech, ufr d informatique TD Base de Données page 146

148 Gestion de projet AgroParisTech, ufr d informatique Gestion de projet page 147

149 AgroParisTech, ufr d informatique Gestion de projet page 148

150 Gestion de projet AgroParisTech, uer d informatique Sommaire Un projet, c'est quoi? Les grands rôles dans un projet Les phases Méthodologie et documents Chiffrage AgroParisTech, ufr d informatique Gestion de projet page 149

151 Sommaire Un projet, c'est quoi? Les grands rôles dans un projet Les phases Méthodologie et documents Chiffrage Un projet, c'est... Définition simple : intention, plan à réaliser Limité dans le temps : un début et une fin Implique différentes compétences : notion d'équipe projet AgroParisTech, ufr d informatique Gestion de projet page 150

152 Un projet, ça implique... De la réalisation, mais aussi.. De la préparation Du suivi Un bilan Notion de ROI Un projet doit être rentable : Rapporter des clients, de l'argent ; Economiser du temps, des efforts ROI : Return Of Investment AgroParisTech, ufr d informatique Gestion de projet page 151

153 Un projet ça coûte Budget lié au ROI : Plan budgétaire Risques Contractualisation Sommaire Un projet, c'est quoi? Les grands rôles dans un projet Les phases Méthodologie et documents Chiffrage AgroParisTech, ufr d informatique Gestion de projet page 152

154 La MOA Maîtrise d'ouvrage : terme franco-français Il s'agit de celui qui paye : Demandeur Donneur d'ordre Contractant La MOE Maîtrise d'oeuvre Il sagit de celui qui réalise : Organise Réalise Livre Facture Contractant AgroParisTech, ufr d informatique Gestion de projet page 153

155 Pleins d'autres acteurs Les juristes Les sous-traitants Les testeurs Les exploitants Sommaire Un projet, c'est quoi? Les grands rôles dans un projet Les phases Méthodologie et documents Chiffrage AgroParisTech, ufr d informatique Gestion de projet page 154

156 Le cycle en V Cliquez pour ajouter un plan Cahier des charges Tests utilisateurs - pré-production Analyse Tests de qualification et d intégration Conception Tests unitaires Codage AgroParisTech, ufr d informatique Gestion de projet page 155

157 Sommaire Un projet, c'est quoi? Les grands rôles dans un projet Les phases Méthodologie et documents Chiffrage AgroParisTech, ufr d informatique Gestion de projet page 156

158 Notion de Jalons Il est important de savoir où on va Il faut décomposer les grandes phases du projets en étapes Il faut répartir le travail Plan documentaire Modèles de document : Cahier des charges Analyse Conception Architecture Tests Livraison Intallation Exploitation AgroParisTech, ufr d informatique Gestion de projet page 157

159 Sommaire Un projet, c'est quoi? Les grands rôles dans un projet Les phases Méthodologie et documents Chiffrage Plusieurs méthodes Chiffrage macroscopique Chiffrage par comptage des instructions Chiffrage par points de fonctions Chiffrage par ration Chiffrage commercial Chiffrage expert AgroParisTech, ufr d informatique Gestion de projet page 158

160 Gestion de l'humain Loi de Parkinson : «work expands to fill the time available for its completion» ; Syndrôme de l'étudiant... AgroParisTech, ufr d informatique Gestion de projet page 159

161 AgroParisTech, ufr d informatique Gestion de projet page 160

162 Projet final : un intranet dynamique AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 161

163 AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 162

164 Démarrage du projet But du projet Les différentes étapes décrites dans ce document consistent à réaliser un intranet dynamique en PHP. Chaque élève suivra le cheminement proposé pour réaliser son propre intranet des élèves, avec un certain degré de liberté quant aux choix des attributs des styles, du moment que le travail réalisé reste conforme à l'esprit de l'exercice. L'intranet disposera des fonctionnalités suivantes : protection d'accès par identification ; gestion d'annuaire : modification de ses informations personnelles ; recherche selon certains critères. gestion simple de covoiturage. Démarrage du projet Créer un sous-répertoire intranet dans votre répertoire N:\www. Lancer l'outil de développement et créer un nouveau projet nommé intranet dans votre répertoire N:\www : N:\www\intranet\ AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 163

165 Projet PHP : en-tête, pages dynamiques Il s'agit tout d'abord de réaliser une en-tête commune à toutes les pages de l'intranet, sous forme d'une feuille de style et d'un fichier PHP. Cette en-tête comprend : un logo (pas forcément vintage comme dans les copies d'écran) ; un titre ; une barre de menu, comprenant les items suivants : Annuaire Covoiturage Mes informations Déconnexion Dans un premier temps, deux fichiers sont donc ajoutés au projet : N:\www\intranet\intranet.css N:\www\intranet\entete.inc. Ensuite, créer dans l'environnement de développement les fichiers correspondants aux différentes options du menu, avec l'en-tête et un contenu vide dans un premier temps : N:\www\intranet\annuaire.php N:\www\intranet\covoiturage.php N:\www\intranet\mesinformations.php N:\www\intranet\deconnexion.php Remarque : l'instruction PHP include permet d'inclure un fichier PHP AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 164

166 Projet PHP : premier formulaire Nous commençons par créer la page de recherche dans l'annuaire : N:\www\intranet\annuaire.php Il s'agit de créer un formulaire contenant au moins 2 champs de saisie : le nom : identifié nom dans le formulaire, le prénom : identifié par prenom dans le formulaire. La validation du formulaire renvoie vers la même page annuaire.php, celle-ci recherche donc si des valeurs ont été transmises par le formulaire. Si ce n'est pas le cas, un message d'erreur est affiché à l'utilisateur, l'invitant à saisir des valeurs pour les champs : AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 165

167 Projet PHP : base de données (1 / 3) Nous allons maintenant créer une base de données pour notre Intranet, qui contiendra dans un premier temps une table des élèves. Etape 1 : création de la base Lancer un navigateur, et se connecter à l'adresse suivante : Cliquer ensuite sur le lien "Gestion BDD" On arrive alors sur l'application d'administration de MySQL, ce qui nous permet de créer une nouvelle base intranet : AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 166

168 Projet PHP : base de données (2 / 3) Etape 2 : création de la table des élèves Créer une nouvelle table ELV contenant 8 champs : AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 167

169 Projet PHP : base de données (3 / 3) Etape 3 : définition des champs On crée les champs suivants : Nom Type Null possible Clé primaire Index Commentaire ELVIDF INT X Clé primaire, autoincrémentée ELVNOM VARCHAR(50) X Nom ELVPRN VARCHAR(50) X Prénom ELVLOG VARCHAR(20) X Login ELVMDP VARCHAR(20) Mot de passe ELVNSS DATE X Date de naissance ELVPTB VARCHAR(20) X Numéro de portable ELVMEL VARCHAR(50) X Adresse Une fois la table créée, cliquer sur le menu Insé rer pour insérer des données d'exemple. AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 168

170 Projet PHP : connexion à la base Il s'agit maintenant de retrouver les enregistrements de la base de données correspondant aux valeurs saisies dans le formulaire. Pour cela, nous commencerons par créer un nouveau fichier qui contiendra toutes les opérations effectuées sur la base de données, regroupées au sein de fonctions. Cette manière de faire permet de séparer l'affichage des opérations en base de données, ce qui permet d'avoir un site mieux organisé et plus facile à maintenir. Créer le fichier fonctions.inc.php (qui contiendra toutes les fonctions utilisées dans les différentes page du site) dans le projet, avec le contenu suivant : // Les informations de configuration define("bd_serveur","localhost"); define("bd_utilisateur","root"); define("bd_motdepasse",""); define("bd_base","intranet"); // Ouverture de la connexion function ouvre_connexion() { mysql_connect(bd_serveur, bd_utilisateur, bd_motdepasse) or die(mysql_error()); mysql_select_db(bd_base) or die(mysql_error()); } //Fermeture de la connexion function ferme_connexion() { mysql_close(); } AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 169

171 Projet PHP : extraction de données Suite du fichier fonctions.inc.php, avec la fonction qui permet de retrouver une liste d'élèves avec une partie de leur nom et/ou de leur prénom : // Retrouve tous les élèves correspondant à // un ensemble nom, prenom function get_eleves($nom, $prenom) { $nom = "%${nom}%"; $prenom = "%${prenom}%"; // On construit et on lance une requête $resultat = mysql_query("select elvidf, elvnom, elvprn from elv where elvnom like '${nom}' and elvprn like '${prenom}'") or die(mysql_error()); } // On construit un tableau de tableaux // avec les élèves qui correspondent $eleves = array(); $compteur = 0; // On parcourt les enregistrements while ($ligne = mysql_fetch_row($resultat)) { $eleve = array(); $eleve["id"] = $ligne[0]; $eleve["nom"] = $ligne[1]; $eleve["prenom"] = $ligne[2]; // On ajoute les élèves dans un tableau $eleves[$compteur] = $eleve; $compteur++; } return $eleves; AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 170

172 Projet PHP : point architecture Notre application fonctionnera selon le schéma suivant : Enchaînement des opérations : 1. Envoi d'une requête au serveur lors de la validation du formulaire ; 2. Récupération des valeurs des paramètres ; 3. Ouverture d'une connexion sur la base de données ; 4. Récupération de la liste d'élèves correspondant aux paramètres ; 5. Fermeture de la connexion sur la base de données ; 6. Génération de la nouvelle page dynamique avec le formulaire et la liste ; 7. Envoi de la page au navigateur pour affichage. AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 171

173 Projet PHP : affichage de la liste On utilise maintenant la fonction get_eleves pour afficher dans un tableau la liste des élèves qui correspondent aux données saisies dans le formulaire : Ensuite, lorsqu'on clique sur un nom du tableau, ses informations détaillées s'affichent, grace à une fonction get_eleve qui prend en paramètre un identifiant d'élève : Remarque : On peut passer un paramètre directement dans une URL de la manière suivante : annuaire.php?ideleve=2 (2 étant le numéro de l'élève) AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 172

174 Projet PHP : sécurisation du site On souhaite désormais protéger notre site contre les intrusions, en obligeant l'utilisateur à s'identifier avant de pouvoir accéder à une page. On crée donc une page index.php avec un formulaire permettant de saisir un login et un mot de passe : Le formulaire envoie ses paramètres à la même page index.php. Celle-ci vérifie que le login de l'utilisateur existe et que le bon mot de passe a été saisi, grâce à une nouvelle fonction à développer dans fonctions.inc.php : function authentification($login, $motdepasse) Cette fonction renvoie 0 si l'authentification n'est pas bonne, sinon elle renvoie le numéro d'identifiant de l'utilisateur. Si l'authentification est correcte, on redirige l'utilisateur vers la page annuaire.php avec la commande suivante : header("location: annuaire.php"); Lorsque l'utilisateur arrive sur la page d'accueil, il n'est redirigé vers la page d'annuaire que s'il s'est logué correctement. Par contre, pour l'instant, rien n'empêche un utilisateur d'arriver directement à la page annuaire.php en tapant directement son URL dans la barre d'adresse du navigateur. AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 173

175 Projet PHP : notion de session Par nature, le dialogue entre un navigateur web et un serveur web est déconnecté, c'est-à-dire que la connexion n'est pas maintenue entre les deux lors de la navigation. Pour chaque chargement de page, les étapes se déroulent de la manière suivante : 1. Le navigateur initialise une connexion réseau avec le serveur web ; 2. Le navigateur transmet l'url de la page demandée ; 3. Le serveur retrouve la page et transmet son contenu au navigateur ; 4. La connexion est rompue. Cependant, dans la plupart des sites dynamiques on a besoin de "suivre" un utilisateur pendant sa navigation (par exemple : webmail, remplissage d'un chariot virtuel sur un site de commerce électronique). Le mécanisme des sessions permet de suivre un utilisateur par l'intermédiaire de cookies selon le schéma suivant : AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 174

176 Projet PHP : gestion de session PHP permet d'initialiser la gestion d'une session, et d'y associer des informations différentes pour chaque utilisateur : Pour utiliser la session dans une page : session_start() Conserver une information dans la session : $_SESSION["nom_information"] = $valeur Retrouver une information de la session : $valeur = $_SESSION["nom_information"] Arrêter la gestion des sessions : session_unset() session_destroy() Les sessions permettent de conserver des informations entre plusieurs pages PHP pour la navigation d'un même utilisateur sur le site. En effet, une variable d'un fichier PHP n'existe par contre que le temps d'exécution de ce fichier, c'est-à-dire que le temps de génération de la page web correspondante. Typiquement, après identification d'un utilisateur : on place l'identifiant de l'utilisateur connecté dans la session ; au début de chaque fichier PHP, on vérifie que l'identifiant de l'utilisateur stocké dans la session n'est pas vide ; si l'identifiant est vide, alors on met dans la session un message d'erreur, et on redirige l'utilisateur vers la page de connexion dans laquelle on affiche le message d'erreur ; on détruit la session lorsque l'utilisateur décide de se déconnecter. Les sessions sont associées à un timeout, c'est-à-dire qu'elles expirent automatiquement au bout d'un certain temps d'inactivité de l'utilisateur. Nous pouvons maintenant finaliser la sécurité de notre intranet sur la base de ces informations. AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 175

177 Le langage SQL : INSERT, UPDATE, DELETE Syntaxe INSERT L'ordre SQL insertpermet d'insérer des enregistrements dans une table. Syntaxe générale : INSERT INTO TABLE(COL1,COL2,COL3) VALUES(VAL1,VAL2,VAL3) L'exécution de cet ordre renvoie le nombre d'enregistrements affectés, c'està-dire 1 normalement. Syntaxe UPDATE L'ordre SQL update permet de modifier des enregistrements déjà présents dans une table. Syntaxe générale : UPDATE TABLE SET COL1=VAL1, COL2=VAL2 WHERE COL3=VAL3 L'exécution de cet ordre renvoie le nombre d'enregistrements affectés par la modification. Syntaxe DELETE L'ordre SQL delete permet de supprimer des enregistrements présents dans une table. Syntaxe générale : DELETE FROM TABLE WHERE COL1=VAL1 L'exécution de cet ordre renvoie le nombre d'enregistrements affectés par la suppression. AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 176

178 Projet PHP : mise à jour de la base On souhaite maintenant compléter la page mesinformations.php afin de permettre à l'utilisateur connecté de modifier les informations qui le concernent : On écrit donc une nouvelle fonction modifie_eleve dans fonctions.inc.php, qui prend en paramètre un tableau contenant toutes les informations sur un élève et qui contient notamment une instruction analogue à celle-ci (mais sur une seule ligne!) : mysql_query("update elv set elvidf=${id}, elvnom='${nom}', elvprn='${prenom}', elvnss='${naissance}', elvptb='${portable}', elvmel='${mail}' where elvidf=${id}"); AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 177

179 Projet PHP : gestion des adresses On souhaite maintenant associer des adresses (étudiante et chez les parents) à chaque élève pour compléter ses informations. On a donc une relation de type "un à plusieurs" entre la table ELV et la table ADR. Cette relation est matérialisée par le champ ADRELVIDF qui joue le rôle de "clé étrangère" : il indique à quel élève est rattachée une adresse. Les champs soulignés constituent la clé primaire d'une table. Ainsi, un élève est identifié de manière unique par la valeur du champs ELVIDF et une adresse par la combinaison des valeur des champs ADRELVIDF et ADRNUM (numéro de l'adresse : 1 pour l'adresse personnelle, 2 pour l'adresse chez les parents). Nous pouvons maibtenant créer la nouvelle table ADR dans la base MySQL. AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 178

180 Projet PHP : formulaire complexe On complète le formulaire mesinformations.php pour ajouter la prise en compte des deux adresses de chaque élève : On considère que les 2 enregistrements de la table ADR ne sont pas créés au départ pour chaque élève. Ceux-ci ne sont créés que lorsque l'élève a validé pour la première fois le formulaire précédent. On crée donc une fonction modifie_adresse dans fonctions.inc.php, qui est appelée après modifie_eleve,lors de la validation du formulaire dans mesinformations.php, et qui va d'abord tester si une adresse existe ou pas déjà en base pour décider d'exécuter un ordre SQL UPDATE ou un ordre SQL INSERT. Ensuite, on complète aussi la page annuaire.php pour faire afficher également les adresses de l'élève sélectionné. AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 179

181 Projet PHP : covoiturage On complète désormais la page covoiturage.php pour ajouter une fonctionnalité de gestion de covoiturage à notre intranet : Par défaut, la page de covoiturage propose 2 formulaires : un formulaire pour rechercher un covoiturage ; un formulaire pour proposer un covoiturage. Il faut donc : créer les nouvelles tables nécessaires dans la base ; créer les nouvelles fonctions nécessaires dans fonctions.inc.php ; implémenter la gestion des formulaires. Indication : la relation entre un élève et un covoiturage proposé est de type "un à plusieurs" ; par contre lorsqu'un élève est inscrit dans un covoiturage proposé par un autre élève, on a une relation "plusieurs à plusieurs" qui se concrétise par une table intermédiaire spécifique. AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 180

182 Projet PHP : écrans du covoiturage Formulaire d'inscription à un covoiturage Liste des covoiturages en cours AgroParisTech, ufr d informatique Projet final : un intranet dynamique page 181

Formation HTML / CSS. ar dionoea

Formation HTML / CSS. ar dionoea Formation HTML / CSS ar dionoea le HTML Hyper Text Markup Language langage descriptif composé de balises interprété par le navigateur page HTML = simple fichier texte (bloc notes, vim,...) les déclarations

Plus en détail

HTML, CSS, JS et CGI. Elanore Elessar Dimar

HTML, CSS, JS et CGI. Elanore Elessar Dimar HTML, CSS, JS et CGI Elanore Elessar Dimar Viamen GPAs Formation, 13 avril 2006 Sommaire Qu est-ce que HTML? HTML : HyperText Marckup Language XML : extensible Marckup Language Qu est-ce que HTML? HTML

Plus en détail

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15 .. CSS Damien Nouvel Damien Nouvel (Inalco) CSS 1 / 15 Feuilles de styles Plan 1. Feuilles de styles 2. Sélecteurs 3. Attributs Damien Nouvel (Inalco) CSS 2 / 15 Feuilles de styles Déportation des styles

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN LES GRANDES ETAPES DE CREATION D UN WEB DESIGN PENSER LA STRUCTURE ET LE THEME DU SITE STRUCTURE ET THEME DU SITE Taille (le site sera-t-il extensible ou fixe?) Organisation Thème Couleurs Illustrations

Plus en détail

Les outils de création de sites web

Les outils de création de sites web Tuto 1ère séance - p1 Les outils de création de sites web Sources : Réalisez votre site web avec HTML5 et CSS3 de Mathieu Nebra (Edition Le Livre du Zéro) site fr.openclassrooms.com (anciennement «site

Plus en détail

Programmation Internet Cours 4

Programmation Internet Cours 4 Programmation Internet Cours 4 Kim Nguy ên http://www.lri.fr/~kn 17 octobre 2011 1 / 23 Plan 1. Système d exploitation 2. Réseau et Internet 3. Web 3.1 Internet et ses services 3.1 Fonctionnement du Web

Plus en détail

Présentation du Framework BootstrapTwitter

Présentation du Framework BootstrapTwitter COUARD Kévin HELVIG-LARBRET Blandine Présentation du Framework BootstrapTwitter IUT Nice-Sophia LP-SIL IDSE Octobre 2012 Sommaire I. INTRODUCTION... 3 Définition d'un framework... 3 A propos de BootstrapTwitter...

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING Durée : 3J / 21H Formateur : Consultant expert en PAO et Web-marketing. Groupe de : 4 max Formation au web marketing Objectifs : Mettre en oeuvre des

Plus en détail

3. RÉALISATION ET QUALIFICATION D UN PROTOTYPE 3.1 Réalisation d un prototype CRÉATION D UNE PAGE WEB STATIQUE AU FORMAT HTML

3. RÉALISATION ET QUALIFICATION D UN PROTOTYPE 3.1 Réalisation d un prototype CRÉATION D UNE PAGE WEB STATIQUE AU FORMAT HTML Page:1/20 CRÉATION D UNE PAGE WEB STATIQUE AU FORMAT HTML Objectifs de l activité pratique : Notions sur le HTML, le WEB et le W3C Créer une page web statique au format HTML : - les marqueurs ou balises

Plus en détail

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE

Plus en détail

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP IFT1147 Programmation Serveur Web avec PHP Un bref survol du langage HTML HMTL HTML: Hypertext Markup Language HTML est essentiellement un langage de description de structure de document (par exemple titre,

Plus en détail

Initiation à html et à la création d'un site web

Initiation à html et à la création d'un site web Initiation à html et à la création d'un site web Introduction : Concevoir un site web consiste à définir : - l'emplacement où ce site sera hébergé - à qui ce site s'adresse - le design des pages qui le

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

Introduction à Expression Web 2

Introduction à Expression Web 2 Introduction à Expression Web 2 Définitions Expression Web 2 est l éditeur HTML de Microsoft qui répond aux standard dew3c. Lorsque vous démarrez le logiciel Expression Web 2, vous avez le choix de créer

Plus en détail

Bernard Lecomte. Débuter avec HTML

Bernard Lecomte. Débuter avec HTML Bernard Lecomte Débuter avec HTML Débuter avec HTML Ces quelques pages ont pour unique but de vous donner les premiers rudiments de HTML. Quand vous les aurez lues, vous saurez réaliser un site simple.

Plus en détail

JOOMLA 1.5 avancé SUPPORT DE COURS + annexe

JOOMLA 1.5 avancé SUPPORT DE COURS + annexe JOOMLA 1.5 avancé SUPPORT DE COURS + annexe SOMMAIRE 1. LA GESTION DES MODULES... Page 2 2. MODIFICATION DE SON TEMPLATE... Page 6 3. LA CREATION DE DIAPORAMA... Page 9 4. LA CREATION DE SONDAGE... Page

Plus en détail

STID 2ème année : TP Web/PHP

STID 2ème année : TP Web/PHP STID 2ème année : TP Web/PHP Plan de travail et aide mémoire jean.arnaud@inria.fr Ce document est composé de cinq parties : Un aide mémoire sur les aspects pratiques de la création de sites Une introduction

Plus en détail

Tutoriel : Feuille de style externe

Tutoriel : Feuille de style externe Tutoriel : Feuille de style externe Vous travaillerez à partir du fichier cerise.htm que vous ouvrirez dans NVU. Commencez par remplacer le contenu de la balise Title par : Comment débuter une recherche?

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

Diffuser un contenu sur Internet : notions de base... 13

Diffuser un contenu sur Internet : notions de base... 13 Diffuser un contenu sur Internet : notions de base... 13 1.1 Coup d œil sur l organisation de cet ouvrage.............. 15 Préambule : qu est-ce qu une page web?................ 16 À propos du HTML...........................

Plus en détail

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4 MAILING Table des matières KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4 INSERER UNE IMAGE (OU UNE PHOTO) PAS DE COPIER / COLLER... 5 INSERER UN TABLEAU...

Plus en détail

1 ère Université WEB. Courbevoie Samedi 21 octobre 2006. Votre site interactif sur internet.

1 ère Université WEB. Courbevoie Samedi 21 octobre 2006. Votre site interactif sur internet. 1 ère Université WEB Courbevoie Samedi 21 octobre 2006 Votre site interactif sur internet. Programme de la journée. 10H30 - Introduction Université web Votre site interactif sur internet. 10H35 Généralités

Plus en détail

Création de formulaires interactifs

Création de formulaires interactifs SESSION 16 Création de formulaires interactifs Programme de la session Lancer un sondage en utilisant divers éléments d'entrée de formulaire Traiter les entrées utilisateur Activer un script à partir d'un

Plus en détail

Utilisation de l éditeur.

Utilisation de l éditeur. Utilisation de l éditeur. Préambule...2 Configuration du navigateur...3 Débloquez les pop-up...5 Mise en évidence du texte...6 Mise en évidence du texte...6 Mise en page du texte...7 Utilisation de tableaux....7

Plus en détail

Petite définition : Présentation :

Petite définition : Présentation : Petite définition : Le Web 2.0 est une technologie qui permet la création de réseaux sociaux, de communautés, via divers produits (des sites communautaires, des blogs, des forums, des wiki ), qui vise

Plus en détail

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation. 1 Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation. Voici un mode opératoire qui vous guidera dans l utilisation de

Plus en détail

Dans nos locaux au 98 Route de Sauve 30900 NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Dans nos locaux au 98 Route de Sauve 30900 NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur FORMATION FORFAIT WEB DEVELOPPEUR Qualification ISQ OPQF Formacode 46 125 Certification de titre professionnel Web Designer + modules optionnels : Développement PHP/MySQL avancé, Web App, CMS e-boutique

Plus en détail

Sana Sellami. sana.sellami@lsis.org Licence Professionnelle SIL 2011-2012

Sana Sellami. sana.sellami@lsis.org Licence Professionnelle SIL 2011-2012 Sana Sellami sana.sellami@lsis.org Licence Professionnelle SIL 2011-2012 Connaître les principales techniques pour la création de sites web Se familiariser avec les langages du web Rendre dynamique le

Plus en détail

CREATION d UN SITE WEB (INTRODUCTION)

CREATION d UN SITE WEB (INTRODUCTION) CREATION d UN SITE WEB (INTRODUCTION) Environnement : World Wide Web : ordinateurs interconnectés pour l échange d informations ( de données) Langages : HTML (HyperText Markup Language) : langages pour

Plus en détail

Silfid : Agence de création de site internet, formations et Conseils Retour sommaire

Silfid : Agence de création de site internet, formations et Conseils Retour sommaire Sommaire ILFID vous accueille dans sa salle de formation équipée d ordinateurs en réseau et connectés internet, d'un vidéo- Sprojecteur et tableau blanc. Nos solutions sont éligibles aux critères de financement

Plus en détail

ECLIPSE ET PDT (Php development tools)

ECLIPSE ET PDT (Php development tools) ECLIPSE ET PDT (Php development tools) Eclipse Eclipse est un IDE (Integrated Development Environment)).C estun projet de la Fondation Eclipse visant à développer tout un environnement de développement

Plus en détail

ENVOI EN NOMBRE DE Mails PERSONNALISES

ENVOI EN NOMBRE DE Mails PERSONNALISES MAILING ENVOI EN NOMBRE DE Mails PERSONNALISES 2 Téléchargement 3 Installation 6 Ecran d accueil 15 L envoi de mails 22 Envoi d un document HTML crée avec Word (envoi en base 64) 25 Le compte courriel

Plus en détail

E-MAILING & NEWSLETTER NEWSLETTER RESPONSIVE

E-MAILING & NEWSLETTER NEWSLETTER RESPONSIVE E-MAILING & NEWSLETTER NEWSLETTER RESPONSIVE mcbenveniste@gmail.com 09/2013 E-MAILING & NEWSLETTER L e-mailing consiste à envoyer des emails simultanément à un nombre important de destinataires dont le

Plus en détail

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org Les sites Internet dynamiques contact : Patrick VINCENT pvincent@erasme.org Qu est-ce qu un site Web? ensemble de pages multimédia (texte, images, son, vidéo, ) organisées autour d une page d accueil et

Plus en détail

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv> Langage HTML (2 partie) «Je n'ai fait que prendre le principe d - hypertexte et le relier au principe du TCP et du DNS et alors boum! ce fut le World Wide Web!» Tim Berners-Lee

Plus en détail

Les services usuels de l Internet

Les services usuels de l Internet Les services usuels de l Internet Services principaux (applications) disponibles sur l Internet Courrier électronique (mail) - protocole SMTP (Simple Mail Transfer Protocol) inclut maintenant tous types

Plus en détail

www.evogue.fr SUPPORT DE COURS / HTML

www.evogue.fr SUPPORT DE COURS / HTML L i a m T A R D I E U www.evogue.fr SUPPORT DE COURS / HTML Sommaire Sommaire... 2 Présentation... 3 Introduction... 3 Fonctionnement... 3 Historique... 4 Navigateurs... 6 Définition... 6 Historiquement...

Plus en détail

TD HTML AVEC CORRECTION

TD HTML AVEC CORRECTION TD HTML AVEC CORRECTION On utilisera Notepad++ comme éditeur sur Windows Vous créez un répertoire www sous vos répertoires personnels et vous mettrez vos pages dedans. Créez vos fichiers HTML et n oubliez

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

Séance d ED n 5 : HTML et JavaScript

Séance d ED n 5 : HTML et JavaScript Séance d ED n 5 : HTML et JavaScript EXERCICE 1 1) le but de cet exercice est de construire l'interface suivante en html: une réponse : 1)

Plus en détail

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA OBJECTIFS : manipuler les fenêtres et l environnement Windows, gérer ses fichiers et dossiers, lancer les applications bureautiques présentes sur son poste. PUBLIC

Plus en détail

Guide de réalisation d une campagne e-mail marketing

Guide de réalisation d une campagne e-mail marketing Guide de réalisation d une campagne e-mail marketing L ère des envois d e-mails en masse est révolue! Laissant la place à une technique d e-mail marketing ciblé, personnalisé, segmenté et pertinent. La

Plus en détail

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006 I. INTRODUCTION 1. Présentation du formateur et des élèves 2. Historique internet : d'où ça vient a. Historique général : 3 étapes majeures 1. l'histoire de l'informatique débute en 1942 avec la première

Plus en détail

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant

Plus en détail

Normes techniques 2011

Normes techniques 2011 Normes techniques 2011 Display classique Formats Livrables Footer p 2 p 3 p 4 Opérations spéciales Publi-rédactionnel Jeu concours Quiz Lien partenaire Habillage Accueil panoramique Sponsoring de rubrique

Plus en détail

Logiciels de référencement

Logiciels de référencement Outils Logiciels de référencement Afin de contrôler la qualité de son référencement, d optimiser et d améliorer son positionnement, il peut être utile d utiliser des outils couvrant tout ou partie du référencement.

Plus en détail

Formation Webmaster : Création de site Web Initiation + Approfondissement

Formation Webmaster : Création de site Web Initiation + Approfondissement Contactez notre équipe commerciale au 09.72.37.73.73 Aix en Provence - Bordeaux - Bruxelles - Geneve - Lille - Luxembourg - Lyon - Montpellier - Nantes - Nice - Paris - Rennes - Strasbourg - Toulouse Formation

Plus en détail

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées? Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites Quelles solutions peuvent être employées? Présentation d une des solutions Conclusion Aujourd hui le web est

Plus en détail

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech Autour du web Une introduction technique Première partie : HTML Georges-André SILBER Centre de recherche en informatique MINES ParisTech silber@cri.ensmp.fr http://www.cri.ensmp.fr/people/silber/cours/2010/web

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado - RAPPORT AUDIT SEO Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado 17 septembre 2013 Table des matières Optimisation structurelle 2 Optimisation des standards, performances et

Plus en détail

CMS Made Simple Version 1.4 Jamaica. Tutoriel utilisateur Récapitulatif Administration

CMS Made Simple Version 1.4 Jamaica. Tutoriel utilisateur Récapitulatif Administration CMS Made Simple Version 1.4 Jamaica Système de gestion de contenu CMS Made Simple est entièrement gratuit sous licence GPL. Tutoriel utilisateur Récapitulatif Administration Le système de gestion de contenu

Plus en détail

HTML. Notions générales

HTML. Notions générales 1 HTML Le langage HTML est le langage de base permettant de construire des pages web, que celles-ci soient destinées à être affichées sur un iphone/android ou non. Dans notre cas, HTML sera associé à CSS

Plus en détail

< Atelier 1 /> Démarrer une application web

< Atelier 1 /> Démarrer une application web MES ANNOTATIONS SONT EN ROUGE : Axel < Atelier 1 /> Démarrer une application web Microsoft France Tutorial Découverte de ASP.NET 2.0 Sommaire 1 INTRODUCTION... 3 1.1 CONTEXTE FONCTIONNEL... 3 1.2 CONTEXTE

Plus en détail

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014 Identification du contenu des évaluations Septembre 2014 Tous droits réservés : Université de Montréal Direction des ressources humaines Table des matières Excel Base version 2010... 1 Excel intermédiaire

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

Plus en détail

Alfresco Guide Utilisateur

Alfresco Guide Utilisateur Alfresco Guide Utilisateur ATELIER TECHNIQUE DES ESPACES NATURELS - 1 Table des matières Alfresco Guide Utilisateur...1 Accéder à la GED de l'aten...3 Via un client FTP...3 Onglet Général...3 Onglet Avancé...3

Plus en détail

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web Manuel d utilisation du module Liste de cadeaux PRO par Alize Web INSTALLER ET CONFIGURER LE MODULE (BACK OFFICE) 2 Réglages des performances 2 Télécharger le module 3 Installer le module 4 Configurer

Plus en détail

Notes pour l utilisation d Expression Web

Notes pour l utilisation d Expression Web EICW Formation Webmaster Notes pour l utilisation d Expression Web G. Barmarin 2008-2009 1 /21 Table des matières 1 Introduction... 3 2 Installer Expression Web... 4 3 Explorer et personnaliser l interface

Plus en détail

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09 AISL - Architecture et Intégration des Systèmes Logiciels - 2011-2012 webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09 Administrer un serveur et

Plus en détail

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web NFA016 : Introduction O. Pons, S. Rosmorduc Conservatoire National des Arts & Métiers Pour naviguer sur le Web, il faut : 1. Une connexion au réseau Réseau Connexion physique (câbles,sans fils, ) à des

Plus en détail

<Créer un site Web. avec/> Suzanne Harvey

<Créer un site Web. avec/> Suzanne Harvey aire l o c s texte n o c le Dans Suzanne Harvey Conseillère pédagogique en informatique Service local du RÉCIT Commission scolaire de Saint-Hyacinthe Québec, Canada suzanne.harvey@prologue.qc.ca

Plus en détail

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

Plus en détail

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web Réseau informatique TIC TC - IUT Montpellier Internet et le Web Ensemble d'ordinateurs reliés entre eux et échangeant des informations sous forme de données numériques But : Rendre disponible l information

Plus en détail

Groupe Eyrolles, 2003, ISBN : 2-212-11317-X

Groupe Eyrolles, 2003, ISBN : 2-212-11317-X Groupe Eyrolles, 2003, ISBN : 2-212-11317-X 3 Création de pages dynamiques courantes Dans le chapitre précédent, nous avons installé et configuré tous les éléments indispensables à la mise en œuvre d une

Plus en détail

Gestion des documents avec ALFRESCO

Gestion des documents avec ALFRESCO Gestion des documents avec ALFRESCO 1 INTRODUCTION : 2 1.1 A quoi sert ALFRESCO? 2 1.2 Comment s en servir? 2 2 Créer d un site collaboratif 3 2.1 Créer le site 3 2.2 Inviter des membres 4 3 Accéder à

Plus en détail

Progression secrétariat

Progression secrétariat Progression secrétariat I. Notions de base A. L'Unité Centrale et les périphériques 1. Unité centrale a) Le Schéma de principe (1) Entrée et sortie des informations, traitement des informations, en interne

Plus en détail

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables

Plus en détail

Publier dans la Base Documentaire

Publier dans la Base Documentaire Site Web de l association des ingénieurs INSA de Lyon Publier dans la Base Documentaire Remarque : la suppression des contributions n est pas possible depuis le Front-Office. lbuisset Page 1 18/09/2008

Plus en détail

SOMMAIRE 1 INTRODUCTION 4 2 GUIDE D UTILISATION ET TUTORIAUX VIDEOS EN LIGNE 4 3 CONTACTER VOTRE SUPPORT 4 4 RACCOURCIS CLAVIER 5

SOMMAIRE 1 INTRODUCTION 4 2 GUIDE D UTILISATION ET TUTORIAUX VIDEOS EN LIGNE 4 3 CONTACTER VOTRE SUPPORT 4 4 RACCOURCIS CLAVIER 5 SOMMAIRE 1 INTRODUCTION 4 2 GUIDE D UTILISATION ET TUTORIAUX VIDEOS EN LIGNE 4 3 CONTACTER VOTRE SUPPORT 4 4 RACCOURCIS CLAVIER 5 5 ADMINISTRER SON SITE WEBGAZELLE CMS 2.0 5 5.1 Configuration minimale

Plus en détail

Programmation Web TP1 - HTML

Programmation Web TP1 - HTML Programmation Web TP1 - HTML Vous allez réaliser votre premier site Web dans lequel vous présenterez la société SC, agence spécialisée dans la conception des sites internet. 1 - Une première page en HTML

Plus en détail

Glossaire. www.themanualpage.org ( themanualpage.org) soumises à la licence GNU FDL.

Glossaire. www.themanualpage.org ( themanualpage.org) soumises à la licence GNU FDL. Glossaire Ce glossaire contient les termes techniques et de spécialité les plus employés dans cette thèse. Il emprunte, pour certaines d entre elles, les définitions proposées par www.themanualpage.org

Plus en détail

Formulaire pour envoyer un mail

Formulaire pour envoyer un mail Formulaire pour envoyer un mail AVERTISSEMENT : Ce tuto est une compilation de plusieurs sources trouvées sur internet, dont les références sont données à la fin de cet article. Le but de ce tutoriel n'est

Plus en détail

Guide pour la réalisation d'un document avec Open Office Writer 2.2

Guide pour la réalisation d'un document avec Open Office Writer 2.2 Guide pour la réalisation d'un document avec Open Office Writer 2.2 1- Lancement de l'application : Le Traitement de textes de la Suite OpenOffice peut être lancé : soit depuis le menu «Démarrer / Programmes/OpenOffice2.2/Writer

Plus en détail

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement Cursus Outils & Développement Vous êtes Consultant, Chef de Projets, Directeur des Systèmes d Information, Directeur Administratif et Financier, Optez pour les «formations Produits» Nous vous proposons

Plus en détail

Assistance à distance sous Windows

Assistance à distance sous Windows Bureau à distance Assistance à distance sous Windows Le bureau à distance est la meilleure solution pour prendre le contrôle à distance de son PC à la maison depuis son PC au bureau, ou inversement. Mais

Plus en détail

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall Internet DNS World Wide Web Mécanismes de base Exécution d'applications sur le web Divers Proxy, fire-wall 1 Les services usuels de l Internet Services principaux (applications) disponibles sur l Internet

Plus en détail

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES WEB & DÉVELOPPEMENT LES BASES DU WEB HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES LE LANGAGE HTML STRUCTURE D UNE PAGE En-tête et corps Syntaxe INSÉRER DES CONTENUS Texte : formatage (titre,

Plus en détail

Parcours guidé : créer des pages simples au format html avec Nvu 28/1/10

Parcours guidé : créer des pages simples au format html avec Nvu 28/1/10 Table des matières 1. AVANT-PROPOS... 4 1.1. PRESENTATION DE NVU... 4 1.2. CARACTERISTIQUES PRINCIPALES DE NVU... 4 1.3. OBJECTIF DE CE DOCUMENT... 4 1.4. PRE-REQUIS NECESSAIRES... 4 1.5. MODE D'EMPLOI

Plus en détail

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons Guide d'utilisation OpenOffice Calc AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons 1 Table des matières Fiche 1 : Présentation de l'interface...3 Fiche 2 : Créer un nouveau classeur...4

Plus en détail

Printer Administration Utility 4.2

Printer Administration Utility 4.2 Printer Administration Utility 4.2 PRINTER ADMINISTRATION UTILITY (PAU) MANUEL D'INSTALLATION Version 2.2 Garantie Bien que l'entreprise se soit efforcée au maximum de rendre ce document aussi précis et

Plus en détail

Prise en main rapide

Prise en main rapide Prise en main rapide 4 Dans cette leçon, vous découvrirez les fonctionnalités de création de page web de Dreamweaver et apprendrez à les utiliser dans l espace de travail. Vous apprendrez à : définir un

Plus en détail

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte» Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte» Espace collaboratif Co-Ment Date : 01/12/2013 Référence du Projet : Chef de Projet : www.cndp.fr/climatscolaire Caroline

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1 AOLbox Partage de disque dur Guide d utilisation Partage de disque dur Guide d utilisation 1 Sommaire 1. L AOLbox et le partage de disque dur... 3 1.1 Le partage de disque dur sans l AOLbox... 3 1.1.1

Plus en détail

Utiliser un CMS: Wordpress

Utiliser un CMS: Wordpress Utiliser un CMS: Wordpress Annie Danzart Annie.Danzart@telecom-paristech.fr Wordpress Concevoir un site web statique Concevoir un site web dynamique Choisir un hébergement Choix du CMS Wordpress: installation

Plus en détail

GUIDE D UTILISATION CRÉER SON SITE WEB - PROJET RESCOL

GUIDE D UTILISATION CRÉER SON SITE WEB - PROJET RESCOL GUIDE D UTILISATION CRÉER SON SITE WEB - PROJET RESCOL 1. Avant de commencer Il existe plusieurs éditeurs de pages Web qui vous permettent de construire un site Web. Nous vous conseillons toutefois de

Plus en détail

145A, avenue de Port Royal, Bonaventure (Québec) G0C 1E0 Sans frais : 1 888 765 4636 www.solutioninfomedia.com

145A, avenue de Port Royal, Bonaventure (Québec) G0C 1E0 Sans frais : 1 888 765 4636 www.solutioninfomedia.com Guide de l utilisateur CMS 1 Navigation dans le CMS... 2 1.1 Menu principal... 2 1.2 Modules tableau... 3 1.3 Modules formulaire... 5 1.4 Navigation dans le site Web en mode édition... 6 2 Utilisation

Plus en détail

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim 01/03/2013 Le rôle de Serveur Web (IIS) dans Windows Server 2008 R2 vous permet de partager des informations avec des utilisateurs sur Internet, sur un intranet ou un extranet. Windows Server 2008 R2 met

Plus en détail

USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation TP 1

USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation TP 1 USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation TP 1 Objectifs du TP Ce TP a pour but de vous faire découvrir l environnement de travail que vous utiliserez dans le cadre des TP

Plus en détail

MODE D'EMPLOI DU CONTRIBUTEUR WEB UAPV "CONTRIBUER DANS UNE RUBRIQUE DU SITE WEB"

MODE D'EMPLOI DU CONTRIBUTEUR WEB UAPV CONTRIBUER DANS UNE RUBRIQUE DU SITE WEB MODE D'EMPLOI DU CONTRIBUTEUR WEB UAPV "CONTRIBUER DANS UNE RUBRIQUE DU SITE WEB" Quelques conseils pour bien contribuer 1 Paramétrer votre navigateur web 2 Accéder au module de gestion des pages web 2

Plus en détail

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09 INFORMATIQUE & WEB Code du diplôme : CP09 Passionné par l informatique et le web, vous souhaitez obtenir une certification dans un domaine porteur et enrichir votre CV? PARCOURS CERTIFICAT PROFESSIONNEL

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc Gestion du parc informatique des collèges du département du Cher Manuel d utilisation de la solution de gestion de Parc Table des matières 1. Préambule... 3 2. Pré requis... 3 3. Objectifs... 3 4. Connexion

Plus en détail

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers? Aide [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers? Au sein d'un ordinateur, les données et les fichiers sont stockés suivant une structure d'arbre appelée arborescence. Pour

Plus en détail