Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 ASP / Pages Web Statiques.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 ASP / Pages Web Statiques.
Novembre 2005 – Michel Desconnets PHP : théorie Objectif : introduire les concepts globaux permettant d'aborder la programmation en PHP.
1 Georgeta BĂDĂU CRÉATION ET GESTION DUN BLOG AVEC LA PLATE-FORME LEWEBPEDAGOGIQUE.COM Séance no.6.
Portée des variables VBA & Excel
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 (X)HTML / Pages Web Statiques.
Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 ASP / Pages Web Statiques.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
HTML Les types de balises
TP 3-4 BD21.
Formulaire HTML Introduction. Définition de formulaire.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
User management pour les entreprises et les organisations Auteur / section: Gestion des accès.
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
Gestion de la communication par établissement sur le site ville
Cours n°3 Les formulaires
La balise <FORM>:
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Common Gateway Interface
Oct.-2000DESS IIDEE © B. BAH 1 ASP Caractéristiques dun fichier ASP Son extension : « *.asp » La balise: Son indépendance vis à vis de toute plate–forme,
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Développement d’applications web
CPI/BTS 2 Programmation Web Introduction au PHP
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Le langage ASP Les variables d'environnement HTTP avec Request.
Administration de SharePoint
Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :
Développement Rapide dApplications Web avec.NET « Mon premier site »
Lycée Louis Vincent Séance 1
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Les instructions PHP pour l'accès à une base de données MySql
28 novembre 2012 Grégory Petit
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Programmation multimédia 3
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Chapitre 9 Les sous-programmes.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Initiation au web dynamique
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Animateur : Med HAIJOUBI
Structures des données
Javascript 1° PARTIE : LES BASES
PHP & My SQL.
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
PHP 5° PARTIE : LES COOKIES
JavaScript.
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Cours de programmation web
Programmation multimédia 3 Les Témoins (Cookies) Semaine 4 Préparé par Marc Aubé Source :
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Page 1Dernière mise à jour: 17 avril 2015 Service de l'enseignement des technologies de l'information, © HEC Montréal, Tous droits réservés.
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
Module : Pages Web Dynamiques (Production Électronique Avancée)
 Formulaires HTML : traiter les entrées utilisateur
Initiation au JavaScript
Initiation au web dynamique Licence Professionnelle.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Développement d’applications Web
Transcription de la présentation:

Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 ASP / Pages Web Statiques

ISIM 1 – Active Server Pages 2T. Bourdeaudhuy – IG 2 I Saison Plan du cours 4 séances de TP –Concepts et syntaxe de base, exigences de codage, formulaires –Les objets du serveur, utilisation des bases de données –Gestion des fichiers, Global.asa –Contrôle TP Evaluation –Exercices dun cours à lautre –Contrôles de connaissances par moodle –CTP Le CTP portera sur web statique ET web dynamique

ISIM 1 – Active Server Pages 3T. Bourdeaudhuy – IG 2 I Saison Supports de cours Ce poly Reference card ASP Feuille dexercices Elements de VBScript Aide VBSCRIPT au format HTML Compilé Tout est sous moodle (Cours REM2) !

ISIM 1 – Active Server Pages 4T. Bourdeaudhuy – IG 2 I Saison Séance 1 Concepts de base Client/Serveur, HTTP Caractéristiques ASP, Exigences de codage Syntaxe VBSCRIPT : –Structures de contrôle, –Modularité, –Chaînes de caractères, –Tableaux et Collections, –Mathématiques, –Dates (?) Objets Request et Response –Affichage –Récupération des données dun formulaire

Concepts de Base Client-Serveur Schéma Général dune requête HTTP URL Accès au serveur

ISIM 1 – Active Server Pages 6T. Bourdeaudhuy – IG 2 I Saison Schéma général dune requête HTTP Client Serveur Demande de connexion Tcp (Port 80) Connexion acceptée Requête HTTP Envoi dun page HTML Traitement de la requête : *.html aucune modification *.asp interprétation préalable du contenu des balises *.cgi, *.php … RFC1945 (HTTP/1.0 - mai 1996) RFC2616 (HTTP/1.1 - juin 1999) Couche application Mode connecté (TCP) mais pas de connexion permanente entre le client et le serveur Fermeture de la connexion Vérifiez par vous- même depuis P5 : telnet webasp 80

ISIM 1 – Active Server Pages 7T. Bourdeaudhuy – IG 2 I Saison URL Uniform Resource Locator (localisation uniformisée des ressources) permet au client d'identifier : –le type de protocole à utiliser –l'adresse précise de la ressource Format : RFC 1738 (déc 1994) Insensible à la casse Jeu de caractères US-Ascii (7 bits), encodage hexadécimal possible, recommandé pour # & ? : / { } ( ) | \ ^ ~ [ ] ` et espace [: ]/ [ ][? ] Bien faire la différence entre une url ( et un chemin local sur la machine (c:\...) ainsi quentre url absolue et relative

ISIM 1 – Active Server Pages 8T. Bourdeaudhuy – IG 2 I Saison Accès au serveur Racine physique du site (sur le serveur) –Utilisation dun chemin daccès : V:\ ( Répertoire Partagé) –NB: Si votre répertoire personnel nest pas monté au démarrage : net use v: \\webasp\login$ (Sous DOS) Répertoire virtuel du site (sur le web) –Utilisation dune URL : Exercice 1 : créer un fichier index.html : « Hello World » Exercice 1 : créer un fichier index.html : « Hello World »

Avant de commencer… Caractéristiques de lASP Exigences de codage Du bon sens et de bons réflexes

ISIM 1 – Active Server Pages 10T. Bourdeaudhuy – IG 2 I Saison Caractéristiques de lASP Solution Microsoft pour le Web Dynamique ( DOT NET) Serveur IIS : Internet Information Services Langage VBScript Insensible à la casse Commentaires avec des apostrophes –Partout où on peut mettre un espace, on peut mettre un commentaire

ISIM 1 – Active Server Pages 11T. Bourdeaudhuy – IG 2 I Saison Principe ASP : Web Dynamique Création de code HTML « à la volée » en fonction de lexécution dun programme Ce qui circule : du texte au format HTML ! 2 « interprétations » successives Afficher la source world"%> Index.asp : Code ASP COTE SERVEUR CODE ASP HTML Hello world Visuel navigateur COTE CLIENT CODE HTML VISUEL Hello world Flux de données serveur client

ISIM 1 – Active Server Pages 12T. Bourdeaudhuy – IG 2 I Saison Exigences de codage Déclaration et Initialisation des variables (OPTION EXPLICIT sur la première ligne de chaque page) Conventions de nommage des variables, fonctions et fichiers –ex : variables, FONCTIONS & MOTS CLES DU LANGAGE Modularité Clarté et Lisibilité du code Particularité WEB : séparation HTML / ASP –Récupération variables ASP –Définition fonctions ASP –HTML

ISIM 1 – Active Server Pages 13T. Bourdeaudhuy – IG 2 I Saison Du bon sens et de bons réflexes Coder petit à petit ! Changer de fichier à chaque changement dexercice Utiliser des noms de fichiers/variables pertinents Mettre des commentaires –pour expliquer ce que lon fait (algo), –pourquoi on le fait (le but final) –Indiquer éventuellement le résultat récupéré après vérification A méditer : Si, après avoir lu uniquement les commentaires dun programme, vous nen comprenez pas la structure, alors jetez le tout ! Et… Réfléchir avant de coder !!!

Premiers Exemples

ISIM 1 – Active Server Pages 15T. Bourdeaudhuy – IG 2 I Saison Hello World index.html Hello World !!! index.asp Ces deux pages sont- elles équivalentes ? Résultat Performance Affichages

ISIM 1 – Active Server Pages 16T. Bourdeaudhuy – IG 2 I Saison Autre possibilité response.write("hello world !!! ")

ISIM 1 – Active Server Pages 17T. Bourdeaudhuy – IG 2 I Saison Code ASP dans le HTML : ajoute au source du fichier la valeur de la fonction ou de la variable désignée Nous sommes le, il est <% DIM monNom monNom = "tom" %> Hello Fonctions VBScript Déclaration dune variable Initialisation dune variable Affichage dune variable

Éléments de Programmation VBScript Déclaration de variables Structures de contrôle

ISIM 1 – Active Server Pages 19T. Bourdeaudhuy – IG 2 I Saison Déclaration de Variables –À placer sur la première ligne dune page ASP –Provoque des erreurs de compilation si des variables ne sont pas déclarées Concaténation : –response.write("Hello" & monNom) Constantes –TRUE, FALSE –EMPTY : correspond à une variable vide (pas de contenu ni de type) –NULL : variable non valide –VBCR : saut de ligne Objets –SET nom_objet = valeurDéclaration dun objet –NOTHINGCorrespond à un objet vide

ISIM 1 – Active Server Pages 20T. Bourdeaudhuy – IG 2 I Saison Tableaux Tableau Statique (dimension fixe) –Déclaration : DIM tab(nombre déléments) –Accès à un élément : –Numérotation à partir de lindice 1 Tableau multidimensionnel (jusquà 60 dimensions !) –DIM tab2(dimension1,dimension2) Tableau Dynamique (dimension variable) –DéclarationDIM tab() –RedimensionnementREDIM tab(dimension) –Préserver les anciennes valeurs REDIM PRESERVE tab(dimension)

ISIM 1 – Active Server Pages 21T. Bourdeaudhuy – IG 2 I Saison Structures de Contrôle : Alternatives Alternative simple <% IF condition THEN traitement ELSEIF condition2 THEN traitement ELSE traitement END IF %> Négation : NOT –IF NOT condition THEN –… Choix multiples <% SELECT CASE nom_variable CASE valeur_1 traitement CASE valeur_2 traitement CASE ELSE traitement par défaut END SELECT %>

ISIM 1 – Active Server Pages 22T. Bourdeaudhuy – IG 2 I Saison Imbrication ASP/HTML valeur = 0 valeur non = 0 Equivalent à : <% IF test = 0 THEN response.write(" valeur =0 ") ELSE response.write("valeur non = 0") END IF %>

ISIM 1 – Active Server Pages 23T. Bourdeaudhuy – IG 2 I Saison Boucles POUR <% FOR nomVar = 1 TO 10 Traitement NEXT %> Tableaux/Collections <% FOR EACH elt IN tab/col traitement NEXT %> TANT QUE <% WHILE condition traitement WEND %> FAIRE TANT QUE <% DO WHILE condition traitement LOOP %> FAIRE JUSQUA <% DO traitement LOOP UNTIL condition %>

ISIM 1 – Active Server Pages 24T. Bourdeaudhuy – IG 2 I Saison Modularité Fonctions FUNCTION nomFonction(liste de paramètres) Traitements [EXIT FUNCTION] nomFonction = valeur END FUNCTION Sous-routines SUB nomRoutine(liste de paramètres) Traitements [EXIT SUB] END SUB Librairies de fonctions : –Appel : (Directive SSI) –Lib.inc contient des balises ASP Passage par valeur/référence : –ByVal, ByRef (défaut) Appels : –CALL nomProcédure (listArgs) –nomFonction|Procédure listArgs –retour = nomFonction (listArgs)

ISIM 1 – Active Server Pages 25T. Bourdeaudhuy – IG 2 I Saison Quelques fonctions (Cf. refcard) INSTR : Renvoie la position de la première occurrence d une chaîne dans une autre JOIN : Renvoie une chaîne résultant de la concaténation de deux autres LCASE : Renvoie une chaîne convertie en minuscules UCASE : Renvoie une chaîne convertie en majuscules ASC : Code ASCII du premier caractère de la chaîne CHR : Caractère correspondant à un code ASCII INT : Partie entière CINT : Convertir en entier CSTR : Convertir en String RANDOMIZE : Initialiser le générateur de variables aléatoires RND : Renvoyer un nombre aléatoire entre 0 et 1

ISIM 1 – Active Server Pages 26T. Bourdeaudhuy – IG 2 I Saison Exercices Exercice 2 : Créer un script ASP permettant dafficher les entiers de 0 à 100 (un entier par ligne) Exercice 2 : Créer un script ASP permettant dafficher les entiers de 0 à 100 (un entier par ligne) Exercice 3 : Ecrire un script ASP permettant de créer un tableau de 100 composantes (contenant les entiers de 100 à 200) et de les afficher (un par ligne) Exercice 3 : Ecrire un script ASP permettant de créer un tableau de 100 composantes (contenant les entiers de 100 à 200) et de les afficher (un par ligne) Exercice 4 : Créer un script ASP permettant dafficher un mot de 5 lettres majuscules choisies aléatoirement Exercice 4 : Créer un script ASP permettant dafficher un mot de 5 lettres majuscules choisies aléatoirement Exercice 5 : Ecrire une fonction ASCII(n) qui affiche les n premiers caractères ASCII dans un tableau HTML Exercice 5 : Ecrire une fonction ASCII(n) qui affiche les n premiers caractères ASCII dans un tableau HTML

ISIM 1 – Active Server Pages 27T. Bourdeaudhuy – IG 2 I Saison Préparation de Fonctions Utiles Exercice 6 : Ecrire une fonction qui permet de passer à la ligne à la fois dans le source HTML et dans le visuel HTML : bprint(texte) Exercice 6 : Ecrire une fonction qui permet de passer à la ligne à la fois dans le source HTML et dans le visuel HTML : bprint(texte) Exercice 7 : Ecrire une fonction tPrint(tab) qui affiche le contenu dun tableau passé en paramètre. On utilisera la structure FOR EACH Exercice 7 : Ecrire une fonction tPrint(tab) qui affiche le contenu dun tableau passé en paramètre. On utilisera la structure FOR EACH –2ème version : Laffichage sera formaté dans un tableau HTML –3ème version : Permettre laffichage des tableaux récursifs ISARRAY(tab) permet de savoir si une variable est de type scalaire ou tableau ISARRAY(tab) permet de savoir si une variable est de type scalaire ou tableau UBOUND(tab[,dim]) permet de connaître lindice maximal du tableau UBOUND(tab[,dim]) permet de connaître lindice maximal du tableau

Les objets ASP… … Où le Web devient Dynamique

ISIM 1 – Active Server Pages 29T. Bourdeaudhuy – IG 2 I Saison objets principaux Request : Requêtes des clients vers serveur Response : Réponses du serveur vers client Server : Environnement dexécution Application : Variables partagées entre les clients Session : Variables propres à chaque client ObjectContext : requêtes Microsoft Transactions Server Dautres objets sont égalements accessibles : –Objets ADO : ActiveX Data Object –Objets résultant de lajout de composants à IIS –Mail, upload, images

ISIM 1 – Active Server Pages 30T. Bourdeaudhuy – IG 2 I Saison Modèle général ASP Cli_1 Cli_2 Cookies Serveur Objet Application Objet Session Objet Server Objet Response Objet Request Environnement dexécution Bases de données Système de fichiers Etendue Application Etendue session Global.asa

ISIM 1 – Active Server Pages 31T. Bourdeaudhuy – IG 2 I Saison Objet REQUEST Contient toutes les valeurs envoyées par le navigateur vers le serveur Collections : (toutes en lecture seule) –QueryString : valeur de la chaîne de requête HTTP –Form : variables envoyée par un formulaire POST –ServerVariables : variables d environnement –Cookies : cookies envoyées par le navigateur –ClientCertificates : certificat client envoyé par le navigateur Propriétés –TotalBytes : nombre d octets reçus dans la requête Méthodes –BinaryRead : permet de lire les données envoyées par un formulaire de type POST

ISIM 1 – Active Server Pages 32T. Bourdeaudhuy – IG 2 I Saison Rappels de HTML Liens : Formulaires : <input type=text|hidden|password|checkbox|radio|reset|submit name=nom \ [value=valeur] [checked]>... description

ISIM 1 – Active Server Pages 33T. Bourdeaudhuy – IG 2 I Saison Chaînes de requête « Querystring » en anglais Informations passées dans lurl, précédées dun « ? » Format : Possibilité dutiliser plusieurs fois la même clé (cas dun « ») Attention : la longueur dune chaîne de requête est limitée par les capacités du navigateur Le même format est utilisé dans le passage par requête POST, mais sans les limitations ! ? =[ ][& =[ ]]*e.g. : url?cle1=valeur1&cle2=valeur2

ISIM 1 – Active Server Pages 34T. Bourdeaudhuy – IG 2 I Saison Méthode GET Réponse du serveur : HTTP/ OK Server: Microsoft-IIS/5.0 Date: Mon, 03 Nov :08:34 GMT Connection: Keep-Alive Content-Length: 38 Content-Type: text/html Set-Cookie: ASPSESSIONIDAQCQBBBB=MKLJPDBDKMJPICFJNGNIKPAL; path=/ Cache-control: private GET cle : valeur Requête client : GET /index.asp?cle=valeur HTTP/1.0 Ligne de requête Entêtes HTTP Corps de la réponse Ligne vide Ligne détat

ISIM 1 – Active Server Pages 35T. Bourdeaudhuy – IG 2 I Saison Méthode POST Réponse du serveur : HTTP/ OK Server: Microsoft-IIS/5.0 Date: Mon, 03 Nov :43:25 GMT Connection: Keep-Alive Content-Length: 38 Content-Type: text/html Set-Cookie: ASPSESSIONIDAQCQBBBB=DLLJPDBDCFAAFEDNLJPGDKDL; path=/ Cache-control: private POST cle : valeur Requête client : POST /index.asp HTTP/1.0 Content-type: application/x-www-form-urlencoded Content-length: 10 cle=valeur Champs dentête de la requête Ligne de requête Ligne vide Corps de la requête

ISIM 1 – Active Server Pages 36T. Bourdeaudhuy – IG 2 I Saison Utilisation des Collections Lieu de stockage de valeurs (chaînes, nombres, objets, autres valeurs) Accès aux éléments par leur nom (tableau associatif) Itération : FOR EACH cle IN collection Connaître le nombre déléments dune collection : collection.count

ISIM 1 – Active Server Pages 37T. Bourdeaudhuy – IG 2 I Saison Cas de valeurs multiples Dans certains cas un membre dune collection peut contenir plusieurs valeurs Le nombre de ces valeurs est alors donné par Request.collection("Nom_Champs").Count Les valeurs sont accessibles par indice (tel un tableau) : Request. collection("Nom_Champs")(indice)

ISIM 1 – Active Server Pages 38T. Bourdeaudhuy – IG 2 I Saison Collection SERVERVARIABLES Permet d accéder aux paires entête HTTP / valeur associée Entêtes HTTP : –HTTP_COOKIE : cookies envoyés –URL : Chemin du script –SERVER_PROTOCOL : Version du protocole HTTP –LOCAL_ADDR : Adresse IP du client –REMOTE_HOST : Nom de la machine cliente –REMOTE_ADDR : adresse IP du client –HTTP_USER_AGENT : type de navigateur –HTTP_ACCEPT_LANGUAGE : langages reconnus par le navigateur –…

ISIM 1 – Active Server Pages 39T. Bourdeaudhuy – IG 2 I Saison Exercices Exercice 8 : Réaliser un script qui affiche toutes les entêtes HTTP dans un tableau HTML Exercice 8 : Réaliser un script qui affiche toutes les entêtes HTTP dans un tableau HTML Exercice 9 : Exercice 9 : –Réaliser un script ASP qui permet d afficher toutes les variables envoyées par un formulaire avec la méthode GET (resp. POST) ainsi que les valeurs associées Exercice 10 : Rendre les deux scripts indépendants du formulaire les appelant Exercice 10 : Rendre les deux scripts indépendants du formulaire les appelant Exercice 11 : Améliorer lexemple précédent en tenant compte des champs multiples Exercice 11 : Améliorer lexemple précédent en tenant compte des champs multiples Exercice 12 : Réaliser un script qui affiche toutes les valeurs contenues dans toutes les collections de l Objet Request Exercice 12 : Réaliser un script qui affiche toutes les valeurs contenues dans toutes les collections de l Objet Request

ISIM 1 – Active Server Pages 40T. Bourdeaudhuy – IG 2 I Saison Corrigé exercice 8 <% FOR EACH cle IN request.servervariables response.write( ) response.write(cle) response.write( ) response.write(request.servervariables(cle)) response.write( ) NEXT %>

ISIM 1 – Active Server Pages 41T. Bourdeaudhuy – IG 2 I Saison Objet RESPONSE /1 Contient les valeurs renvoyées par le serveur vers le client Collections –Cookies : valeurs de cookies déposées chez le client Propriétés –Buffer : indique si la page est bufférisée ou pas –CacheControl : indique si le proxy peut enregistrer les données –Charset : ajoute le jeu de caractères au content-type –ContentType : type MIME de la réponse –Expires : délai d expiration de la page dans le cache du navigateur –ExpiresAbsolute : heure et date d expiration de la page –IsClientConnected : indique si le client s est déconnecté –Status : Etat HTTP renvoyé par le serveur

ISIM 1 – Active Server Pages 42T. Bourdeaudhuy – IG 2 I Saison Objet RESPONSE /2 Méthodes –AddHeader : Ajoute ou modifie une entête –AppentToLog : crée une entrée dans le fichier journalier –BinaryWrite : envoie du texte au navigateur sans conversion avec un jeu de caractères –Clear : efface tout le contenu HTML dans le cache –End : termine le traitement et envoie le résultat –Flush : envoie le contenu du cache –Redirect : renvoie une URL comme réponse –Write : insère une variable chaîne dans la page courante

ISIM 1 – Active Server Pages 43T. Bourdeaudhuy – IG 2 I Saison Redirection Permet de rediriger automatiquement le navigateur vers une autre adresse Attention erreur si le contenu a commencé à être envoyé Exemple : <% reponse = Request.Form("pays") SELECT CASE reponse CASE "France" : response.redirect("france.html") CASE "Belgique" : response.redirect("belgique.html") CASE Else : response.redirect("autre.html") END SELECT %>

ISIM 1 – Active Server Pages 44T. Bourdeaudhuy – IG 2 I Saison Exercices Exercice 12 : Réaliser une page HTML affichant un formulaire de Login et Password Exercice 12 : Réaliser une page HTML affichant un formulaire de Login et Password –Cette page envoie les données vers une page ASP –Si les données correspondent à un login et pass de votre choix, alors afficher Bienvenue –Sinon, rediriger vers le formulaire initial Exercice 13 : Comment faire pour afficher un message juste avant le formulaire (« veuillez recommencer ») après chaque mauvaise tentative ? Exercice 13 : Comment faire pour afficher un message juste avant le formulaire (« veuillez recommencer ») après chaque mauvaise tentative ?

ISIM 1 – Active Server Pages 45T. Bourdeaudhuy – IG 2 I Saison Utilisation du cache Technique permettant de contrôler le moment où les informations sont envoyées vers le client Propriété Buffer : –Response.Buffer = False –Les données sont envoyées au fur et à mesure de leur création –Response.Buffer = True –Les données sont envoyées une fois la page créée Méthodes –Flush : une fois les données préparées –Clear : remise à zéro des données dans le buffer (en cas de problème par exemple) –End : fin de traitement et envoie des données

ISIM 1 – Active Server Pages 46T. Bourdeaudhuy – IG 2 I Saison Les COOKIES Création : Response.Cookies("firstname") = "Alex" Response.Cookies("firstname").Expires = #6/09/2006# Sous-clés : Response.Cookies("user")("firstname") = "John" Response.Cookies("user")("lastname") = "Smith" Lecture : –Fname = Request.Cookies("firstname") Lecture des sous-clés : –propriété count ou HasKeys

ISIM 1 – Active Server Pages 47T. Bourdeaudhuy – IG 2 I Saison Exercice Exercice 14 : Réaliser un script utilisant les cookies pour passer des informations dune page à une autre Exercice 14 : Réaliser un script utilisant les cookies pour passer des informations dune page à une autre –Une première page permettra de réaliser une vérification daccès et créer un cookie –À la prochaine connexion sur le formulaire de connexion, le script utilise les cookies pour remplir le formulaire

ANNEXES Conventions de Nommage Critères dévaluation des CTP et exercices

Conventions de Nommage Déclaration et initialisation des variables Variables ASP Variables de requêtes, formulaires Fonctions Répertoires et fichiers Modularité Clarté et lisibilité du code

ISIM 1 – Active Server Pages 50T. Bourdeaudhuy – IG 2 I Saison Déclaration et Initialisation des variables Utiliser (1 ère ligne du source) : provoque des erreurs de compilation si des variables ne sont pas déclarées Utiliser les mots-clés DIM et CONST Toujours initialiser les variables : EMPTY, "", 0 Les chaînes de requête SQL sont définies et initialisées avant dêtre utilisées

ISIM 1 – Active Server Pages 51T. Bourdeaudhuy – IG 2 I Saison Variables ASP Variables en minuscules : nomVar1, maSuperVariable Constantes et mots-clés du langage en MAJUSCULES Utilisation de noms pertinents (pas de « toto ») Des préfixes sont utilisés pour définir : –La portée des variables : Session/Application/Globale/Locale –Le type de la variable : Int/Str/Bool/Date/Objet/Tab Exemples : –Un compteur à lintérieur dune fonction : lInt_i –Une variable globale : gStr_nomUser –Une variable de session : sStr_idOk –Le résultat dun test : lBool_isTrue

ISIM 1 – Active Server Pages 52T. Bourdeaudhuy – IG 2 I Saison Variables de formulaires, Requêtes Un préfixe décrit le type de champ de formulaire : –txt, passwd, textarea, radio, submit, button, hidden, select, … Tous les formulaires ont un nom, e.g. formCoord Les variables de formulaire utilisent ce nom : –formCoord_txtMail, formCoord_txtLogin Les variables ASP qui récupèrent des champs de formulaires portent le nom de la variable correspondante : –gStr_mail, gStr_login Les chaînes de requête SQL et les objets de connexion et de résultat correspondants doivent porter un nom fondé sur le même motif DANS TOUS LES CAS UTILISER UN NOMMAGE HOMOGENE

ISIM 1 – Active Server Pages 53T. Bourdeaudhuy – IG 2 I Saison Fonctions Indiquer dans le nom dune fonction ce qu'elle fait (verbe) : –get : récupération dune valeur –set : modification dune valeur –mk : réalisation dun traitement –show/write/print : affichage Un préfixe peut être utilisé pour indiquer ce quelle renvoie Exemples : –Affichage dun tableau : showTab() –Vérification dune identification : boolVerifUser()

ISIM 1 – Active Server Pages 54T. Bourdeaudhuy – IG 2 I Saison Répertoires et fichiers Les répertoires ne doivent pas être imbriqués Les extensions dépendent de la fonction du fichier : –asp, htm –inc, js pour les librairies asp et javascript Des préfixes permettent de connaître le contenu du fichier : –f formulairex traitement sans affichage –m menu –c cadre html

ISIM 1 – Active Server Pages 55T. Bourdeaudhuy – IG 2 I Saison Modularité Découper les traitements en fonctions génériques Utiliser des inclusions de fichiers pour les fonctions communes à plusieurs pages –Attention : des fichiers inclus ne doivent pas en inclure dautres (notion de module) Attention à la portée des variables Séparer le code client (HTML, javascript) du code ASP –Fonctions, inclusions, appels en haut de la page –Quand cest nécessaire, veiller à minimiser les ouvertures/fermetures

ISIM 1 – Active Server Pages 56T. Bourdeaudhuy – IG 2 I Saison Clarté et lisibilité du code Indentation BSD pour lASP ET le HTML ! User et abuser de commentaires pertinents : –Au moment de la déclaration dune variable –Avant la déclaration dune fonction –A chaque fois que lon effectue un traitement non trivial (début dune boucle, calcul dindex, … ) Commenter la fin dune boucle par son nom : WHILE lInt_i IN … DO traitements LOOPlInt_i

Critères dévaluation des CTP & Exercices Forme /3 Qualité du programme /3 Fonctionnalités attendues /14

ISIM 1 – Active Server Pages 58T. Bourdeaudhuy – IG 2 I Saison Forme Tout ce qui permet de sy retrouver quand on reprend le programme Indentation : tabulations, passage à la ligne Quantité, mise en forme et pertinence des commentaires Lisibilité globale : enchevêtrement html/php/javascript, définition des fonctions au début de chaque page Choix des noms de paramètres, variables, fonctions, librairies pertinents Respect des nommages html/php Esthétique du résultat dans les limites du raisonnable (ni trop beau si toutes les questions n'ont pas été faites, ni linverse)

ISIM 1 – Active Server Pages 59T. Bourdeaudhuy – IG 2 I Saison Qualité du programme Tout ce qui est indépendant de la fonction du programme Emploi de structures de contrôle adaptées et évoluées quand cest nécessaire (foreach, switch) Structure de la base de données conforme aux spécifications, qui permet l'ajout de fonctionnalités supplémentaires facilement Fermeture des bases de données, fichiers, … Tests aux limites : absence de résultats d'une requête … Utilisation raisonnée des variables globales et locales Modularité adaptée (traitements réutilisables, paramètres utiles et bien documentés, pas d'effets de bord néfastes), utilisation de librairies Robustesse, messages d'erreur pour l'utilisateur