La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Client/Serveur Internet Conception de pages dynamiques Jean-Marc Thévenin Laurent Perrussel

Présentations similaires


Présentation au sujet: "Client/Serveur Internet Conception de pages dynamiques Jean-Marc Thévenin Laurent Perrussel"— Transcription de la présentation:

1 Client/Serveur Internet Conception de pages dynamiques Jean-Marc Thévenin Laurent Perrussel

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) Fichiers (pages) Serveur (Apache) a) c) b)

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 dynamiques Transaction 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 Système A Système B Message = P1 + P2 P1, P2 P1 P2

19 II.1/ Introduction (suite) TCP/IP Expéditeurs et Destinataires des paquets sont identifiées Numéro de machine : adresse IP –ex Nom complet de machine : –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 –un nom complet de machine –éventuellement un nom de dossier et/ou de document –ex news://news.cict.fr

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.html 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. tlse1.fr/~thevenin 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.html 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 –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 --> 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 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 : (en anglais) Configuration utilisée –machine : igsi –système : linux –apache : version

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 derreur ErrorLog /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 # Répertoire racine des pages du serveur DocumentRoot /home/httpd/html

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

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 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 (liste des droits) Mentionner le * dans le nom du repertoire décrit

51 III.3/ Configuration des espaces publics/personnels (suite) 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 Droit a redéfinir les droits, mentionnez que cette redefinition sera faite dans un fichier particulier. Redefinition de Options --> droit de définir les droits précédents. Droit a redéfinir les droits, mentionnez que cette redefinition sera faite dans un fichier particulier. Redefinition de Options --> droit de définir les droits précédents.

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) 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 Les personnes autorises n ont pas besoin d un compte UNIX

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 ) # 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 ) # 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 (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 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 La page générée par le serveur peut être dynamique

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 –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?nom=Martin&prenom=Jean 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 … nom=Martin&prenom=Jean

75 IV.3/ Exemple Perl (sans paramètre) #!/usr/bin/perl ->Identification de linterpréte use CGI; $moncgi = new CGI(); #description de l'entete print $moncgi->header(-type=>'text/html'); print $moncgi->start_html(); print $moncgi->p("Bonjour"); print $moncgi->end_html(); exit;

76 IV.3/ Exemple PHP (sans paramètre) Balises des instructions PHP à l intention du pré-processeur

77 IV.3/ Exemple Perl (avec paramètres) Addition effectue par un CGI en PERL

premier nombre : second nombre : CGI exécuté à la soumission

78 IV.3/ Exemple Perl (avec paramètres) #!/usr/bin/perl # use CGI; $moncgi = new CGI(); $a = $moncgi->param("nombre1"); $b = $moncgi->param("nombre2"); $total = $a + $b; #description de l'entete print $moncgi->header(-type=>'text/html'); print $moncgi->start_html(); print $moncgi->p("Résultat : $total"); print $moncgi->end_html(); exit;

79 IV.3/ Exemple PHP (avec paramètres) Addition effectue par PHP premier nombre : second nombre : Page PHP à pré- traiter à la soumission

80 IV.3/ Exemple PHP (avec paramètres) Résultat :

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->start_html(); print $moncgi->p("Résultat : $total"); ==> Résultat : ???

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) Addition effectue par PHP premier nombre : second nombre : Résultat :

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) 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) Dans la page affichée dans le client, on ne voit pas le PHP

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: – – … –

89 V.3/ Le langage manuel : 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 : $daltons[0] = "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 –>, =, <=, == (é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($i=1; $i<=$n; $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é.


Télécharger ppt "Client/Serveur Internet Conception de pages dynamiques Jean-Marc Thévenin Laurent Perrussel"

Présentations similaires


Annonces Google