Client/Serveur Internet Conception de pages dynamiques - PowerPoint PPT Presentation

About This Presentation
Title:

Client/Serveur Internet Conception de pages dynamiques

Description:

Title: Client/Serveur Internet Conception de pages dynamiques Author: Laurent Perrussel Last modified by: Laurent Perrussel Created Date: 1/11/2001 9:55:59 AM – PowerPoint PPT presentation

Number of Views:269
Avg rating:3.0/5.0
Slides: 103
Provided by: LaurentP2
Category:

less

Transcript and Presenter's Notes

Title: Client/Serveur Internet Conception de pages dynamiques


1
Client/Serveur InternetConception de pages
dynamiques
  • Jean-Marc Thévenin
  • Laurent Perrussel
  • thevenin,perussel_at_univ-tlse1.fr

2
Plan du Cours
  • I/ Introduction
  • II/ Architecture Client/Serveur dans Internet
  • III/ Configuration dun serveur HTTPD
  • IV/ Conception de Pages Dynamiques
  • V/ Le Langage PHP
  • VI/ Interactions avec une Base de Données
  • VII/ Saisie dInformations sur Plusieurs Pages

3
I/ Introduction
  • 1/ Architecture client/serveur Internet
  • 2/ Lien avec le cours de conception de pages HTML
  • 3/ Les pages HTML dynamiques

4
I.1/ Arch. client/serveur Internet
  • Rôle du client ?
  • Programme permettant de demander des données ou
    des services à une autre machine
  • données pages, messages, fichiers
  • services programme sexécutant sur une machine
    distante (exemple HotMail)
  • le client doit connaître la seconde machine
  • la seconde machine sappelle un Serveur

5
I.1/ Architecture client/serveur Internet
  • Trois types de client ?
  • Navigateur de pages Web Netscape, MS Internet
    Explorer, Word...
  • logiciel de messagerie électronique Eudora,
    Outlook Express, Netscape, Word
  • logiciel de transfert de fichiers WS-FTP, MS
    Internet Explorer, Word

6
I.1/ Arch. client/serveur Internet (suite)
  • Rôle du serveur
  • Programme qui attend, traite et répond à des
    requêtes provenant de clients localisés sur des
    machines distantes
  • Rappel une requête peut concerner des données
    et/ou un service.

7
I.1/ Arch. client/serveur Internet (suite)
  • Trois types de serveur
  • Serveur de pages Web Apache, Microsoft Server,
    Netscape Server
  • Serveur de messagerie SendMail, Microsoft
    Exchange
  • Serveur FTP WU-FTP

8
I.1/ Arch. client/serveur Internet (suite)
  • Une Transaction Type
  • a) le client, un navigateur, demande une page à
    un serveur Web.
  • b) le serveur, qui attendait reçoit la requête et
    cherche la page sur sa machine.
  • c) le serveur envoie la page au client et attend
    à nouveau.

Client (Navigator)
a)
c)
b)
Fichiers (pages)
Serveur (Apache)
9
I.2/ Lien avec le cours de conception de pages
HTML
  • Dreamweaver éditions de pages
  • Pour rendre ces pages accessibles il faut
  • définir le fonctionnement du serveur (URL,
    autorisations, organisation des répertoires...)
  • publier ces pages, i.e. stockage dans les
    répertoires adaptés

10
I.2/ Lien avec le cours (suite)
  • Dreamweaver conception de la structure de pages
    et de formulaires (aspect statique)
  • Nécessité de prendre en compte les aspects
    dynamiques
  • associer des instructions au(x) bouton(s)
  • récupérer et traiter les données saisies
  • interaction avec une base de données
  • génération de pages pour afficher des résultats

11
I.3/ Les pages dynamiquesTransaction type
  • client
  • saisie de données dans un formulaire et envoi
  • réception de la page générée dynamiquement et
    affichage
  • Serveur
  • réception des données
  • génération dune page en fonction des données
    reçues
  • envoi de cette page

12
I.3/ Les pages dynamiques (suite)
  • Génération de pages
  • effectuée sur le serveur
  • programme de génération souvent appelé CGI
    (Common Gateway Interface)
  • le programme interagit avec le serveur (E/S) et
    éventuellement dautres programmes et/ou un
    serveur de bases de données

13
I.3/ Les pages dynamiques (suite)
  • Objectif du cours
  • génération de pages HTML conditionnées par des
    paramètres
  • écriture de CGI simples accédant à une base de
    données relationnelle

14
II/ Architecture Client/Serveur dans Internet
  • 1/ Introduction
  • 2/ Dans le contexte HTTP
  • 3/ Dans le contexte du Mail
  • 4/ Dans le contexte des News

15
II.1/ Introduction
  • Internet / Intranet / Extranet
  • Internet
  • ensemble de machines interconnectées selon le
    protocole de communication TCP/IP .
  • Les machines ont un nom et sont dans un domaine
    (ex igsi.univ-tlse1.fr).
  • Différents services offerts sites web, accès
    distant à des documents, courrier électronique,
    forums de discussion

16
II.1/ Introduction (suite)
  • Internet / Intranet / Extranet
  • Intranet
  • C est une  sous-partie  dInternet
  • Réseau privé et donc inaccessible de l extérieur
    (i.e. Internet) pour des raisons de sécurité
  • limitation à un domaine
  • ex univ-tlse1.fr
  • Utilisé pour le fonctionnement dune organisation
    (ex Citroën)

17
II.1/ Introduction (suite)
  • Internet / Intranet / Extranet
  • Extranet
  • C est une  sous-partie  dInternet
  • Réseau privé et donc inaccessible de l extérieur
    (i.e. Internet) pour des raisons de sécurité
  • limitation à quelques machines
  • utilisé pour relier une entreprise avec ses
    partenaires (ex suivi de commandes).
  • Intranet et Extranet font souvent partie du S.I.
    de l entreprise

18
II.1/ Introduction (suite)TCP/IP
  • Transmission Control Protocol / Internet Protocol
  • Circulation des données par paquets
  • le message est découpé en paquets.
  • Chaque paquet est envoyé à un nœud qui renvoie
    vers un autre nœud suivant lencombrement.
  • A larrivée, les paquets sont réordonnés

Message P1 P2
Système A
P1, P2
P2
P1
P2
P1
Système B
19
II.1/ Introduction (suite)TCP/IP
  • Expéditeurs et Destinataires des paquets sont
    identifiées
  • Numéro de machine adresse IP
  • ex 190.10.20.30
  • Nom complet de machine www.lemonde.fr
  • nom www
  • nom de domaine lemonde.fr

20
II.1/ Introduction (suite)TCP/IP
  • Fonctionnement des serveurs DNS
  • Domain Name System
  • association entre le nom dune machine et son
    adresse IP
  • Un serveur de noms par domaine
  • Quand le nom accédé nest pas dans le domaine, le
    serveur de nom local transfère la requête à un
    serveur de noms Internet

21
II.1/ Introduction (suite)
  • Les URLs
  • un protocole
  • éventuellement un nom dutilisateur suivi de _at_
  • un nom complet de machine
  • éventuellement un nom de dossier et/ou de
    document
  • ex
  • news//news.cict.fr
  • mailto//Jean-Marc.Thevenin_at_univ-tlse1.fr
  • http//igsi.univ-tlse1.fr/igsi

22
II.1/ Introduction (suite)
  • Les principaux protocoles
  • http (et https) pages HTML (et pages
    sécurisées)
  • mailto envoi de messages
  • news forums de discussion
  • ftp transfert de fichiers
  • Chaque protocole est pris en charge par un
    service (un serveur)

23
II.2/ Client/Serveur HTTP
  • HTTP protocole permettant de demander et de
    recevoir des pages HTML auprès dun serveur de
    pages localisé sur une machine distante
  • le serveur est désigné sous le nom de HTTPD
    démon HTTP

24
II.2/ Client/Serveur HTTP (suite)
  • Principaux HTTPD
  • Apache (Unix, Windows, MacOS X...)
  • Microsoft Personal Web Server (Win)
  • Microsoft Site Server (Win NT)
  • Netscape iPlanet Web Server (Unix, NT)

25
II.2/ Client/Serveur HTTP (suite)
  • Transaction type avec une page limitée à du texte
  • http//uneMachine.unDomaine.fr/undossier/unePage.h
    tml
  • 1. le serveur sur la machine uneMachine.unDomaine.
    fr reçoit la demande
  • 2. le serveur associe à undossier le nom réel sur
    le disque.
  • 3. Le serveur vérifie lexistence de la page et
    les droits daccès
  • 4. le serveur envoie la page unePage.html à la
    machine cliente
  • 5. le serveur enregistre la transaction dans un
    journal

26
II.2/ Client/Serveur HTTP (suite)
  • Zoom Etape 2 associer undossier à un nom réel
    sur le disque.
  • http//igsi.univ-tlse1.fr/thevenin
  • http//igsi.univ-tlse1.fr/thevenin/p1.html

/home /thevenin /public_html
/index.html /home /thevenin
/public_html /p1.html
Machine IGSI
27
II.2/ Client/Serveur HTTP (suite)
  • Transaction type avec une page multimédia (texte
    images animations )
  • http//uneMachine.unDomaine.fr/undossier/unePage.h
    tml
  • A. le client demande la page et le serveur envoie
    le texte (étapes 1 à 5 précédemment)
  • B. le client analyse la page et demande le
    chargement pour chacun des composants
  • les étapes 1 à 5 sont répétées par le serveur
    pour chaque composant.
  • Autrement dit, une requête d un client se
    traduit par un ensemble de transactions
    élémentaires

28
II.2/ Client/Serveur HTTP (suite)
  • Transaction HTTPS
  • transaction HTTP sécurisée
  • Principes identiques aux transactions HTTP
  • Communication Client/Serveur sécurisée par
    encodage des paquets.

29
II.2/ Client/Serveur HTTP (suite)
  • Publication dune page
  • URL de la page
  • http//uneMachine.unDomaine.fr/undossier/unePage.h
    tml
  • transfert FTP du fichier unePage.html sur la
    machine uneMachine.unDomaine.fr dans le dossier
    associé au chemin undossier en lui donnant le
    même nom (unePage.html)

30
II.3/ Client/serveur Mail
  • Client lecture, stockage définitif et
    rédaction de messages
  • Serveur boite postale (stockage temporaire des
    messages) et envoi des messages.
  • Deux serveurs distincts (entrée et sortie)
  • chaque serveur peut être sur une machine
    distincte

31
II.3/ Client/serveur Mail (suite)
  • Client
  • rédaction du message
  • adresse
  • sujet
  • corps
  • envoi du message au serveur de courrier sortant
  • Serveur
  • Réception du message à envoyer
  • envoi du message selon le protocole SMTP (Simple
    Mail Transfer Protocol) à ladresse  adresse 

32
II.3/ Client/serveur Mail (suite)
  • Client
  • interrogation du serveur de courrier entrant (la
    boite au lettre), récupération des messages
  • affichage des messages à la demande
  • Serveur
  • Réception du message et stockage dans une boite
    temporaire selon le protocole POP (Post Office
    Protocol)
  • suppression dans la boite des messages transférés

33
II.3/ Client/serveur Mail (suite)
  • Circulation des messages texte
  • documents attachés encodés (binaire --gt texte)
  • client encode et décode
  • expéditeur et destinataire doivent respecter la
    même convention dencodage
  • conventions usuelles Mime, Uuencode, Base64

34
II.3/ Client/serveur Mail (suite)
  • Principaux clients
  • Eudora
  • Netscape Messenger
  • Outlook
  • Pegasus
  • elm
  • Principaux Serveurs
  • Sendmail
  • iPlanet Messaging Server 5.0 (Netscape)
  • Microsoft Exchange Server

35
Client/Serveur News
  • News forums de discussion thématique
  • Principe
  • envoi dun message au serveur de forums
  • le message est publié dans le forum
  • lecture du forum par les utilisateurs
  • les utilisateurs répondent au forum

36
Client/Serveur News (suite)
  • Contrôle de la discussion
  • publication sur le forum peut être modérée par un
    modérateur (administrateur)
  • les forums peuvent être privés
  • dans un intranet
  • abonnement

37
Client/Serveur News (suite)
38
Client/Serveur News (suite)
  • Rôle du lecteur de forums
  •  Sélection  des forums préférés auprès de
    différents serveurs de forums
  • Affichage des entêtes des messages du forum
    sélectionné
  • Réception du corps du message sélectionné et
    affichage
  • Envoi dun message au serveur du forum sélectionné

39
Client/Serveur News (suite)
  • Rôle du serveur de forums
  • Stockage des messages dans les forums
  • Gestion de larchivage
  • Envoi sur demande dun client les entêtes des
    messages dun forum
  • Idem pour les corps des messages
  • Publication des messages
  • Synchronisation avec les autres serveurs de forums

40
III/ Configuration dun serveur HTTPD
  • 1/ Présentation de Apache
  • 2/ Configuration de Apache
  • 3/ Configuration des espaces publics/personnels
  • 4/ Exercices
  • dossier personnel et publication de pages
  • autorisation
  • consultation des journaux

41
III.1/ Présentation de Apache
  • Serveur HTTP
  • Plates-formes Windows 9x/NT, Unix (Linux),
  • logiciel libre programme source accessible et
    distribué avec la licence GNU
  • Serveur rapide et stable
  • utilisé sur plus de 6 millions de serveurs

42
III.1/ Présentation de Apache (suite)
  • Site www.apache.org (en anglais)
  • Configuration utilisée
  • machine igsi
  • système linux
  • apache version 1.3.12-2

43
III.1/ Présentation de Apache (suite)
  • Quelques fonctionnalités
  • définition de ladministrateur
  • gestion du nombre daccès simultanés (nombre de
    transactions HTTP)
  • surveillance des accès (journaux)
  • organisation des répertoires contenant les pages
    du site
  • définition des répertoires de pages personnelles
  • droits daccès généraux et personnels
  • définition personnalisée des pages derreur
  • pied de page personnalisé

44
III.2/ Configuration de Apache
  • Configuration
  • responsable propriétaire (au sens unix) du
    logiciel
  • définie dans le fichier /etc/httpd/httpd.conf
  • configuration principale
  • déléguer des configurations spécifiques en
    fonction des répertoires de pages

45
III.2/ Configuration de Apache (suite)
  • Structure du fichier httpd.conf
  • document texte avec des lignes de commentaires et
    des lignes de configuration
  • ligne de commentaire
  • débute par un
  • ligne de configuration
  • MotClef Valeur
  • ex Adresse du fichier derreurErrorLog
    /var/log/httpd/error_log

46
III.2/ Configuration de Apache (suite)
  • Fichier httpd.conf chargé au lancement du
    processus HTTPD
  • Généralement préconfiguré par défaut et très peu
    de choses à changer
  • Toutes les options sont spécifiées il suffit
    d enlever les commentaires pour les options
    choisies

47
III.2/ Configuration de Apache (suite)
  • Principaux paramètres (présentés avec leur valeur
    par défaut)
  • Nombre de processus serveurs en //
  • StartServers 8
  • nom et groupe de l utilisateur executant HTTPD
  • User nobody (droit du processus serveur)
  • Group nobody
  • addresse de l administrateur
  • (ajoutée au pages générées ex 404).
  • ServerAdmin root_at_localhost
  • Répertoire racine des pages du serveur
  • DocumentRoot /home/httpd/html

48
III.2/ Configuration de Apache (suite)
Preciser que le chargement par defaut est
uniquement effectue si l url se conclue par un
nom de repertoire
  • Principaux paramètres (présentés avec leur valeur
    par défaut)
  • Répertoire racine d un utilisateur de la
    machine
  • Userdir public_html
  • gt pour lutilisateur ayant le login monLogin le
    répertoire racine est /home/monLogin/public_html
    et lURL est http//uneMachine.unDomaine.fr/monLo
    gin
  • Page par défaut à charger dans un répertoire
  • DirectoryIndex index.html index.htm index.cgi

49
III.2/ Configuration de Apache (suite)
  • Principaux paramètres concernant les journaux
    (présentés avec leur valeur par défaut)
  • fichier derreur
  • ErrorLog /var/log/httpd/error_log
  • Niveau de journalisation des erreurs
  • (info, notice, error, alert,)
  • LogLevel warn
  • Fichier de journalisation des accès et niveau
  • CustomLog /var/log/httpd/access_log common

50
III.3/ Configuration des espaces
publics/personnels
Mentionner le dans le nom du repertoire décrit
  • Description des droits effectuée par répertoire
  • droit dexécuter des CGI
  • droit à restreindre les accès
  • droit de redéfinir les droits
  • Syntaxe
  • Droit pour le répertoire /home//public_html
  • ltDirectory /home//htmlgt
  • (liste des droits)
  • lt/Directorygt

51
III.3/ Configuration des espaces
publics/personnels (suite)
Droit a redéfinir les droits, mentionnez que
cette redefinition sera faite dans un fichier
particulier. Redefinition de Options --gt droit de
définir les droits précédents.
  • Quelques droits
  • Droit précisé avec le mot clef Option
  • None aucun droit, all tous les droits
  • FollowSymLinks, ExecCGI, droit
    particuliers
  • pouvant être combinés
  • Options FollowSymLinks ExecCGI Indexes
  • Droit à redéfinir les droits
  • Droit précisé avec le mot clef AllowOverride
  • None aucun droit, all tous les droits
  • Options, AuthConfig, droit particuliers
  • pouvant être combinés
  • AllowOverride AuthConfig

52
III.3/ Configuration des espaces
publics/personnels (suite)
  • Restriction daccès au répertoire
  • Autorisation ou restriction par machine ou
    domaine (autoriser quelques machines ou interdire
    quelques machines).
  • Autoriser des individus ou des groupes
    dindividus (nom mot de passe).
  • combinaison des deux quelques individus sur un
    sous-domaine (ex intranet).

53
III.3/ Configuration des espaces
publics/personnels (suite)
  • Autoriser - Interdire quelques machines
  • clauses allow from et deny from
  • allow from nomDomaine1 nomDomaine2 nomMachine1
    nomMachine2 adresseIP1 adresseIP3
  • deny from nomDomaine1 nomDomaine2 nomMachine1
    nomMachine2 adresseIP1 adresseIP3
  • pour désigner toutes les machines all
  • Ordre dapplication de la restriction
  • clauses Order deny, allow et Order allow, deny

54
III.3/ Configuration des espaces
publics/personnels (suite)
  • Exemple limiter au domaine de luniversité
  • allow from .univ-tlse1.fr
  • deny from all
  • Order deny, allow
  • Exemple interdire les accès de UT2
  • allow from all
  • deny from .univ-tlse2.fr
  • Order allow, deny
  • Exemple accès depuis une machine précise
  • allow from igsi.univ-tlse1.fr
  • deny from all
  • Order deny, allow

55
III.3/ Configuration des espaces
publics/personnels (suite)
Les personnes autorises n ont pas besoin d un
compte UNIX
  • Limitation à quelques personnes
  • nécessité dun fichier (ou éventuellement une
    base de données) contenant les personnes
    autorisées
  • couples nomLogin, MotDePasse
  • Création du fichier
  • htpasswd -c nomFichier premierLogin
  • Ajout dans le fichier
  • htpasswd nomFichier nouveauLogin

56
III.3/ Configuration des espaces
publics/personnels (suite)
  • Limitation à quelques personnes
  • Directive pour spécifier le fichier des personnes
    autorisées (rappel entre les balises
    ltDirectorygt lt/Directorygt)
  • Nom du fichier contenant les logins
  • AuthUserFile nomFichier

57
III.3/ Configuration des espaces
publics/personnels (suite)
  • Limitation à un groupe de personnes
  • Regrouper les personnes autorisées dans un groupe
  • Les groupes sont référencés dans un fichier texte
    ayant la forme suivante
  • nomGroupe1 nomLogin1 nomLogin2 nomLogin3
  • nomGroupe2 nomLogin1 nomLogin2 nomLogin3

58
III.3/ Configuration des espaces
publics/personnels (suite)
  • Limitation à un groupe
  • Directive pour spécifier le fichier des groupes
    autorisés (rappel entre les balises ltDirectorygt
    lt/Directorygt)
  • Nom du fichier contenant les groupes
  • AuthGroupFile nomFichier

59
III.3/ Configuration des espaces
publics/personnels (suite)
  • Configuration de lespace personnel
  • Autorisation de la configuration d un dossier
    est donné dans le httpd.conf avec la clause
    AllowOverride (cf. page préc.)
  • La clause AccessFileName précise le nom du
    fichier de configuration particulier
  • Nom du fichier de configuration particulier
  • à rechercher
  • AccessFileName .htaccess

60
III.3/ Configuration des espaces
publics/personnels (suite)
  • Configuration de lespace personnel
  • Pour configurer votre espace personnel créer le
    fichier
  • /home/monLogin/public_html/.htaccess
  • le fichier est un fichier texte contenant les
    clauses à l intérieur des balises ltDirectorygt
    lt/Directorygt (les balises ne doivent pas être
    mentionnées).

61
IV/ Conception de Pages Dynamiques
  • 1/ Principe
  • 2/ Transaction Type
  • 3/ Exemple Perl - PHP
  • 4/ CGI/PHP Principales différences

62
IV.1/ Principe
La page générée par le serveur peut être
dynamique
  • Deux Types de dynamique
  • Dynamique prise en charge par le client
  • Page animée
  • Programme(s) exécuté(s) par le client prenant en
    charge la dynamique
  • Dynamique prise en charge par le serveur
  • Page créée dynamiquement par un programme exécuté
    sur le serveur
  • Page statique affichée sur le client

63
IV.1/ Principe
  • Dynamique dans les clients
  • Applets Java
  • Fonctions JavaScript
  • Plug-In
  • Composants ActiveX (Microsoft)

64
IV.1/ Principe (suite)
  • Applets Java
  • Programme exécuté par le client et dont
    l affichage est effectué dans un espace clos de
    la fenêtre
  • Programme autonome dont le nom est représenté
    comme une URL dans la page d hôte
  • Intérêt Tous types daffichage (graphique,
    interaction avec des images...)
  • Applications exécutables dans la plupart des
    navigateurs.

65
IV.1/ Principe (suite)
  • JavaScript
  • fonctions de manipulation de la page
  • Les instructions sont dans le source HTML
  • Intérêt Faire des contrôles sur des éléments
    dun formulaire pour diminuer les dialogues entre
    le client et le serveur.

66
IV.1/ Principe (suite)
  • Dynamique pris en charge par le serveur
  • Récupérer et gérer des informations transmises
    par un client
  • calcul, stockage dans une base de données,
  • Génération dynamique de pages
  • Génération dun fichier source HTML
  • Affichage dun résultat (interrogation dune base
    de données)

67
IV.1/ Principe (suite)
  • Génération du fichier source HTML
  • Effectué par un programme indépendant appelé CGI
  • Le programme peut être écrit dans de nombreux
    langages (Perl, Visual Basic, C, PL/SQL,)
  • Pré-traitement par le serveur HTTPD de fichiers
    HTML pré-existants comportant des instructions
    conditionnant la génération de lignes HTML
  • langage PHP

68
IV.2/ Transaction Type
  • Le client reçoit une page contenant un formulaire
  • Lutilisateur clique sur Envoi après avoir garni
    les zones de saisie
  • Le navigateur demande au serveur une URL associée
    au bouton Envoi tout en transmettant des couples
    ltnomZone, valeurZonegt
  • lURL contient le nom du CGI à exécuter

69
IV.2/ Transaction Type (Suite)
  • Le serveur HTTPD reçoit lURL et lance
    lexécution du CGI mentionné dans lURL en lui
    transmettant les paramètres.
  • Le CGI traite les couples de paramètres et génère
    une page HTML
  • La page est transmise au serveur HTTPD
  • Le serveur transmet la page au client
  • Le client affiche la page

70
IV.2/ Transaction Type (Suite)
  • Mécanismes dinvocation
  • le programme est stocké dans un fichier
  • le nom de ce fichier conditionne le mécanisme
    dinvocation (CGI ou pré-traitement)

71
IV.2/ Transaction Type (Suite)
  • Invocation du CGI
  • Deux types de programmes CGI
  • exécutable (ex extension .exe sous W9x) le
    programme est lancé
  • interprété (ex extension .cgi) les premières
    lignes du programme spécifie l'interprète à
    utiliser

72
IV.2/ Transaction Type (Suite)
  • Invocation du pré-processeur
  • les extensions .PHP, .PHP4, .PHP3 sont des
    fichiers HTML contenant des instructions PHP
  • le serveur transmet la page au pré-processeur
    PHP.
  • le pré-processeur exécute les instructions PHP.

73
IV.2/ Transaction Type (Suite)
  • Transmission des paramètres deux méthodes
  • méthode GET
  • méthode POST
  • la méthode est mentionnée dans la balise de
    description du formulaire (dans la page HTML)

74
IV.2/ Transaction Type (Suite)
  • Méthode GET
  • les paramètres sont transférés dans l URL du CGI
    (paramètres visibles)
  • ex monCGI.cgi?nomMartinprenomJean
  • Méthode POST
  • les paramètres sont transférés dans le corps de
    la requête (comme dans un fichier) les
    paramètres ne sont pas visibles
  • ex monCGI.cgi
  • nomMartinprenomJean

75
IV.3/ Exemple Perl (sans paramètre)
http//igsi.univ-tlse1.fr/thevenin/bonjour.cgi
!/usr/bin/perl -gtIdentification de
linterpréte use CGI moncgi new
CGI() description de l'entete print
moncgi-gtheader(-typegt'text/html') print
moncgi-gtstart_html() print moncgi-gtp("Bonjour")
print moncgi-gtend_html() exit
76
IV.3/ Exemple PHP (sans paramètre)
http//igsi.univ-tlse1.fr/thevenin/hello.php3
lthtmlgt ltbodygt lt?php echo("hello!")
?gt lt/bodygt lt/htmlgt
Balises des instructions PHP à l intention du
pré-processeur
77
IV.3/ Exemple Perl (avec paramètres)
http//igsi.univ-tlse1.fr/thevenin/addition.html
lthtmlgt ltheadgt lttitlegt Addition effectue par un
CGI en PERL lt/titlegt lt/headgt ltbodygt ltform
name"formAddition" action"calculAddition.
cgi" method"get"gt premier nombre ltinput
type"text" name"nombre1"gt second nombre
ltinput type"text" name"nombre2"gt ltinput
type"submit" value "Additionner"gt lt/formgt lt/bo
dygt lt/htmlgt
CGI exécuté à la soumission
78
IV.3/ Exemple Perl (avec paramètres)
http//igsi/thevenin/calculAddition.cgi?nombre1
10nombre220
!/usr/bin/perl use CGI moncgi new
CGI() a moncgi-gtparam("nombre1") b
moncgi-gtparam("nombre2") total a
b description de l'entete print
moncgi-gtheader(-typegt'text/html') print
moncgi-gtstart_html() print moncgi-gtp("Résultat
total") print moncgi-gtend_html() exit
79
IV.3/ Exemple PHP (avec paramètres)
http//igsi.univ-tlse1.fr/thevenin/addition.html
lthtmlgt ltheadgt lttitlegt Addition effectue par PHP
lt/titlegt lt/headgt ltbodygt ltform
name"formAddition" action"calculAddition.
php" method"get"gt premier nombre ltinput
type"text" name"nombre1"gt second nombre
ltinput type"text" name"nombre2"gt ltinput
type"submit" value "Additionner"gt lt/formgt lt/bo
dygt lt/htmlgt
Page PHP à pré-traiter à la soumission
80
IV.3/ Exemple PHP (avec paramètres)
http//igsi/thevenin/calculAddition.php?nombre1
10nombre220
lthtmlgt ltbodygt Résultat lt? total
nombre1 nombre2 echo(total) ?gt lt/bodygt
lt/htmlgt
81
4/ CGI/PHP Principales différences
  • CGI
  • impossible dutiliser un éditeur pour décrire la
    page générée.
  • Les lignes HTML sont générées par des
    instructions  print  ou des instructions
    spécifiques aux balises
  • print moncgi-gtstart_html()
  • print moncgi-gtp("Résultat total")
  • gt
  • ltHTMLgt
  • ltPgt Résultat ??? lt/Pgt

82
4/ CGI/PHP Principales différences
  • PHP
  • Possibilité dutiliser un éditeur pour décrire la
    page générée (Dreamweaver).
  • Les lignes HTML statiques sont écrites
    directement dans le fichier PHP avec les balises
    HTML
  • coût moindre lisibilité de la partie
    algorithmique
  • bénéfice
  • aspect WYSIWYG
  • possibilité de traiter la requête et sa réponse
    en une seule page.

83
IV.3/ Exemple PHP (avec paramètres)
http//igsi/thevenin/additionToutEnUn.php
lthtmlgt ltheadgt lttitlegt Addition effectue par PHP
lt/titlegt lt/headgt ltbodygt ltform
name"formAddition" action"calculAdditionT
outEnUn.php" method"get"gt premier nombre
ltinput type"text" name"nombre1"gt second
nombre ltinput type"text" name"nombre2"gt ltinpu
t type"submit" value "Additionner"gt lt/formgt lt?
if(nombre1 ! 0 nombre2 ! 0)
?gt Résultat lt? total nombre1
nombre2 echo(total) ?gt lt/bodygt lt/html
gt
84
V/ Le langage PHP
  • 1/ Présentation
  • 2/ Structure dun fichier
  • 3/ Le langage
  • 4/ Exemples

85
V.1/ Présentation du langage
  • Langage récent 1994
  • Première version  mature  PHP3
  • Version actuelle PHP4
  • Utilisé par plusieurs millions de sites.
  • Couplage avec Apache (possible aussi avec
    dautres serveurs).

86
V.1/ Présentation du langage (suite)
Dans la page affichée dans le client, on ne voit
pas le PHP
  • Interprète PHP module de Apache
  • instructions enchâssées dans le fichier HTML
  • instructions à pré-traiter sont identifiées par
    des balises
  • Traitement sur le serveur (contrairement à
    JavaScript)

87
V.1/ Présentation du langage (suite)
  • Intégration avec de nombreux SGBD (MySQL,
    Oracle,)
  • Pour plus dinformations
  • http//www.php.net/
  • Configuration utilisée Serveur Apache sous
    Linux (RedHat) avec PHP4

88
V.2/ Structure dun fichier
  • Extension du fichier .php ou .php3 ou .php4
  • Extension du fichier source (non pré-processé)
    .phps
  • Les Balises pour encadrer les instructions PHP
  • lt? ?gt
  • ltscript language"php"gt lt/scriptgt
  • lt?php ?gt

89
V.3/ Le langagemanuel http//www.php.net/manual
/fr/manual.php
  • Séparateur d instructions
  • commentaires
  • // commentaire sur une seule ligne
  • commentaire sur une seule ligne
  • / commentaire sur plusieurs lignes/

90
Le langage - les variables simples
  • Pas de déclaration et pas de typage explicite
  • les noms des variables sont toujours préfixés par
    un .
  • Exemples
  • age 10 age est un entier
  • nom "titi" nom est une chaîne
  • pi 3.14 pi est un nombre réel

91
Le langage - les variables tableaux
  • Les tableaux ne sont pas déclarés et non typés.
  • les noms des variables tableaux sont toujours
    préfixés par un .
  • Le premier élément est en 0.
  • Exemples
  • daltons0 "Joe"
  • daltons "Jack" Averell est le deuxieme
    element (numero 1)
  • nb count(dalton) nb vaut 2

92
Le langage - Les opérateurs
  • Opérateur d'affectation
  • nomVar expression
  • Opérateurs arithmétiques
  • opérateurs binaires , -, , / et (modulo)
  • opérateur unaires et --
  • i 0
  • j i i et j valent 1
  • i-- i vaut 0

93
Le langage - Les opérateurs
  • Opérateurs logiques
  • And, Or, Xor et ! (not)
  • Opérateurs de comparaison
  • gt, lt, gt, lt, (égalité) et ! (différent)
  • Opérateurs sur les chaînes
  • . (concaténation)

94
Le langage - Structure de contrôle
  • Structure alternative
  • SI condition ALORS
  • SINON
  • ...
  • FIN SI
  • if (conditionPHP)
  • else

95
Le langage - Structure de contrôle
  • Structure itérative
  • TANT QUE condition FAIRE
  • FIN TANT QUE
  • REPETER
  • ...
  • JUSQUA condition
  • while (conditionPHP)
  • do
  • ...
  • while(!conditionPHP)

96
Le langage - Structure de contrôle
  • Structure itérative
  • POUR i allant de 1 à n
  • ...
  • FIN POUR
  • for(i1 iltn i)

97
Le langage - Définition de fonctions
  • Fonction nomFonction (nomP1, nomP2, nomP3)
    TypeRetour
  • DEBUT
  • ...
  • FIN
  • function nomFonction (nomP1, nomP2, nomP3)
  • return nomVarDuTypeRetour

98
Le langage - Appel de fonctions
  • function addition (n1, n2)
  • somme n1 n2
  • return somme
  • utilisation de la fonction
  • i 8
  • monTotal addition(12,i)

99
Le Langage - Fonctions utiles
  • Afficher écrire dans la page HTML.
  • echo(eltAafficher)
  • echo (monTotal)
  • print(eltAafficher)
  • print (addition(12,i))

100
Le Langage - Fonctions utiles
  • Manipulation de chaînes.
  • trim(chaine) enlever les blancs au début et à
    la fin.
  • echo trim(" Joe ") affiche "Joe"
  • substr(chaine, debut, long) recopier la
    sous-chaine de long caractères débutant à debut.
  • echo substr("Averell",3,3) affiche "rel"
  • strlen(chaine) longueur de la chaine
  • echo strlen("Averell") affiche 7

101
Le Langage - Fonctions Utiles
  • Manipulation de dates
  • getDate(chaine) obtenir la date système.
  • date(format) obtenir la date dans un format
    précis de son choix.
  • echo(jMY) affiche "26 JAN 20001"

102
Le Langage - Fonctions Utiles
  • Il est possible d'utiliser date() et mktime()
    ensemble pour générer des dates dans futur ou
    dans passé.
  • lt?php
  • tomorrow mktime (0,0,0,date("m")
    ,date("d")1,date("Y"))
  • lastmonth mktime (0,0,0,date("m")-1,date("d"),
    date("Y"))
  • nextyear mktime (0,0,0,date("m"), date("d"),
    date("Y")1)
  • ?gt
Write a Comment
User Comments (0)
About PowerShow.com