Les serveurs HTTP IIS APACHE.

Slides:



Advertisements
Présentations similaires
Module 5 : Implémentation de l'impression
Advertisements

Novembre 2005 – Michel Desconnets PHP : théorie Objectif : introduire les concepts globaux permettant d'aborder la programmation en PHP.
Formation universitaire à .NET: Introduction à C#
Conception de Site Webs dynamiques Cours 5
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
Exposé de Système - Informatique et Réseau
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 &
APACHE HTTP SERVER Formation TRANSFER ALGER Mai 2002.
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Les Bases de données et le Web
HTML Les types de balises
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance

PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
TP 3-4 BD21.
JSP Java Server Pages. Introduction Afin dimplémenter les règles métiers, coté serveur dans une application Web, larchitecture Java propose trois solutions.
Servlet JAVA.
Formulaire HTML Introduction. Définition de formulaire.
La configuration Apache 2.2 Lhébergement virtuel.
Révision Avant lintra – Architecture de lordinateur, les composants, le fonctionnement, codage – Système dexploitation: organisation des données (fichier),
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,
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
CPI/BTS 2 Programmation Web Introduction au PHP
Etude des Technologies du Web services
SECURITE DU SYSTEME D’INFORMATION (SSI)
XML-Family Web Services Description Language W.S.D.L.
Le langage ASP Les variables d'environnement HTTP avec Request.
SERVLETS PRESENTATION
Développement Rapide dApplications Web avec.NET « Mon premier site »
JDBC ou comment manipuler une base de données en Java ?
Les instructions PHP pour l'accès à une base de données MySql
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
WINDOWS Les Versions Serveurs
FICHIERS : Définition : Algorithme général:
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Web dynamique PhP + MySQL AYARI Mejdi 2006
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Protocoles et service internet: http
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
Animateur : Med HAIJOUBI
Javascript 1° PARTIE : LES BASES
PHP & My SQL.
Programmation Internet en PHP SIL module M12
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
Département Technologie de l’Information et de la Communication
JavaScript Nécessaire Web.
PHP 5° PARTIE : LES COOKIES
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Cours de programmation web
PHP & MySQL Master1 ICD Claire Jacquot Emilie Hot le 24/10/2006.
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Installation et Configuration Internet Information Server (IIS 6)
Les sockets.
S'initier au HTML et aux feuilles de style CSS Cours 5.
Module : Pages Web Dynamiques (Production Électronique Avancée)
S'initier au HTML et aux feuilles de style CSS Cours 5.
 Formulaires HTML : traiter les entrées utilisateur
Initiation au JavaScript
Initiation au web dynamique Licence Professionnelle.
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Introduction à PHP TOURNADRE Guillaume - Informatique Réseaux URL :
Séance /10/2005 CSS et Dreamweaver. CSS : principes Cascading Style Sheet = feuille de style en cascade Norme du W3C :
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
HTML Création et mise en page de formulaire
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

Les serveurs HTTP IIS APACHE

APACHE

Historique La version 1.0 est disponible début décembre 1995. Elle fut crée par une équipe de Webmaster indépendant. Cette équipe fondée par les développeurs du NCAS (National Center for Supercomputing Applications) était à l’origine du plus populaire serveur web de l’époque : Urbain-Champain. Dès sa sortie, APACHE fut immédiatement porté sur la pluspart des environnements. APACHE est, aujourd’hui, un serveur fiable et robuste utilisé par de grandes entreprises comme IBM MICROSOFT qui utilise APACHE comme serveur Internet. Voir http://www.toolinux.com/

Configuration 1- arborescence cgi-bin : par défaut contenant les cgi conf : Contient les fichiers de configuration du serveur log : Contient les log users : Contient les sites des utilisateurs htdocs : Répertoire par défaut contenant les pages publiées. modules : Contient les modules optionnels pouvant complèter le serveur. icons : Répertoires des Icones

Configuration Les logs access.log : Contient les informations concernant les accès au serveur. error.log : Contient les erreurs produites par le serveur. Les fichiers de configuration Au nombre de trois : access.conf : Droits d'accès aux répertoires du serveur srm.conf : Emplacement des principaux fichiers http.conf : Directives de fonctionnement du serveur lui-même

Configuration access.conf Sur un répertoire <Directory ”Nom répertoire"> Options None|All|Includes|ExecCGI order deny,allow deny from all allow from 126.52.3.52 AllowOveride None </Directory> Sur un URL <Location /url> </Location> Sur un Fichier <Files “fichier”> </Files> Allowoveride : le fichier .htaccess prend le relais sauf si NONE AuthConfig : config pouvant être modifiée par .htaccess FileInfo : droit accès aux fichiers

Configuration srm.conf 1. Etiquette définissant l’emplacement des principaux fichiers : DocumentRoot, UserDir, DirectoryIndex, AccessFileName, ScriptAlias Ex : DocumentRoot /Apache/htdocs 2. Permet de lier les types de fichiers à des icônes lorsque le mode FancyIndexing est sur on Ex : AddIcon /icons/binary.gif .bin .exe 3. Permet d’associer un entête à un type de fichier Ex : AddType text/html .shtml 4. Association des erreurs avec des textes appropriés Ex : #ErrorDocument 500 "Le serveur a commis une erreur” #ErrorDocument 404 /missing.html

Configuration port : port TCP/IP par défaut 80 Httpd.conf port : port TCP/IP par défaut 80 user : utilisateur sous lequel les CGI seront exécutés ServerAdmin : adresse du gestionnaire de site ServerRoot : répertoire de l’arborescence du serveur ServerName : Nom du server MaxClients : Nombre maximal de clients ErrorLog : Fichier log des erreurs. relatif à ServerRoot. CustomLog : Fichier des accès. Relatif à ServerRoot. TimeOut : Durée maximale avant attente trop longue

Authentification access.conf <Location /exemple> AuthUserFile “c:\etc\passwd” AuthName ‘Libellé” AuthType Basic require valid-user </Location> ATTENTION : Charger le module spécifique dans httpd.conf LoadModule anon_auth_module modules/ApacheModuleAuthAnon.dll La création du fichier password doit être effectuée par l’outil htpasswd

Internet Information Server

IIS : Définition Logiciel de Microsoft Pour Windows NT à partir de NT 4.0 Pour Windows NT / XP : IIS 5)

IIS : Définition Ensemble de 3 services sous Windows NT. Services utilisant le réseau internet Services de publication d’information «publishing services» Permet de rendre accessibles (mettre en ligne) des sites FTP, Web et NNTP.

IIS : Les services Service Service Service SMTP... FTP HTTP IIS

IIS : Définition Service WWW SGBD ASP DLL ISAPI (dont ASP.DLL) PROGRAMME CGI Pages HTML FILTRE ISAPI SERVEUR NT AVEC IIS BROWSER WEB

Configurer IIS Gérer l’accès aux sites Onglet «Advanced» Autoriser certaines adresses IP ou domaines à se connecter Autoriser toutes les adresses IP ou domaines à se connecter sauf certains Limiter l’utilisation du réseau. Cumul de l’utilisation de tous les services

Configurer IIS Le compte du logon anonyme Onglet «Service» Compte créé à l’installation d’IIS, avec le nom «IUSR_NomOrdinateur» Compte utilisé par NT pour les personnes qui se connectent en anonyme à un des services quand on autorise ce type d’accès

Configurer IIS Propriétés des répertoires Permettent de limiter les possibilités du client sur ces répertoires Propriétés «Read» et «Write» pour FTP Propriétés «Read» et «Execute» pour WWW

Configurer IIS Les serveurs virtuels Onglet «Directory» Permettent d’utiliser une autre adresse IP sur le même serveur Web On a donc plusieurs serveurs Web sur la même machine

Les technologies Serveur SSI / CGI / ISAPI / JAVA SERVLET / JSP / PHP / ASP / DOT NET

SSI

SSI Les SSI (Server Side Include) Si elles sont supportées par le serveur http, elle seront compatibles avec tous les navigateurs puisque le code des SSI sera transformé en HTML. Le format d'un appel SSI est le suivant : <!--#<balise><variables> --> Les balises reconnues sont break, config, echo, email, exec, if, include, fsize, flastmod, label, goto et odbc. Les commandes break : La balise break permet de terminer le document HTML config : Utilisée pour positionner les options de sortie HTML. <!--#config timefmt="%d/%m/%y" -->

SSI echo : Permet d'insérer certaines données dans une page HTML. Utilisez la variable var <!--#echo var="DATE_LOCAL" --> est la date du jour Afficher des variables d'environnement : DATE_LOCAL la date et l'heure locales du serveur HTTP DOCUMENT_NAME le nom complet du document REMOTE_ADDR l'adresse IP du client distant REMOTE_HOST le nom de la station cliente REMOTE_USER le nom du client distant

SSI exec : La balise exec permet d'exécuter une commande quelconque par le système d'exploitation du serveur. <!--#exec cmd='date' --> goto : La balise goto permet de sauter vers une étiquette #label sans exécuter le code entre l'instruction courante et l'étiquette. <!--#goto ="suite" --> blablabla non renvoyé <BR> <!--#label ="suite" --> if : La balise if permet d'effectuer une exécution sous certaines conditions, par exemple, d'afficher une portion de texte HTML si une condition est remplie. La syntaxe générale de la balise est la suivante : <!--#if expr="expression" --> ... <!--#elif expr="expression" --> ... <!--#else --> ... <!--#endif --> include : Permet d'inclure le contenu d'un fichier dans la page HTML <!--#include vitual|file = "fichier" -->

SSI Exemple <!--#if expr="${HTTP_USER_AGENT} = /MSIE 5/" --> <!--#set var="brtype" value="msie5" --> <!--#elif expr="${HTTP_USER_AGENT} = /MSIE 4/" --> <!--#set var="brtype" value="msie4" --> <!--#elif expr="${HTTP_USER_AGENT} = /MSIE 3/" --> <!--#set var="brtype" value="msie3" --> <!--#elif expr="${HTTP_USER_AGENT} = /MSIE 2/" --> <!--#set var="brtype" value="msie2" --> <!--#else --> <!--#set var="brtype" value="unknown" --> <!--#endif --> <!--#include file="$brtype.txt"-->

CGI

Objectifs du chapitre Présentation des CGI Programme CGI Fonctionnement Ecriture d’une application CGI Utilisation avancée de CGI

Possibilités d'extension Internet Database Connector (IDC) Active Server Pages (ASP) applications ISAPI API applications ISAPI scripts Perl Perl Windows NT Server, Internet Information Server CGI Application simple API filtres ISAPI Filtres ISAPI Client Web

Présentation de CGI «Common Gateway interface» Protocole de communication Permet à un browser Web et à un programme situé sur un serveur Web de dialoguer

Le support des CGI sur IIS Support total des applications CGI Basé sur STDIN/STDOUT Généralement en Perl Accès à toutes les variables HTTP Les applications CGI s'exécutent en dehors du processus Les applications CGI peuvent s'exécuter dans le contexte du client ou du serveur

Les Variables d'environnement CGI En-têtes HTTP AUTH_TYPE CONTENT_LENGTH GATEWAY_INTERFACE LOGON_USER PATH_INFO PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST REMOTE_USER REQUEST_METHOD SCRIPT_NAME SERVER_NAME SERVER_PORT SERVER_PORT_SECURE SERVER_PROTOCOL SERVER_SOFTWARE URL

Présentation de CGI Requête «classique» Requête «CGI» Client Serveur Web Requête «CGI» f Programme Client Serveur Web

Programme CGI Figures imposées Respecter le protocole CGI en entrée : Lire les paramètres d’entrée depuis «stdin» (si la méthode utilisée par le browser est «POST») Lire les paramètres d’entrée depuis une variable d’environnement (si la méthode utilisée par le browser est «GET»)

Programme CGI Figures imposées Respecter le protocole CGI en sortie : Préciser le type de données retournées ( en précisant la valeur de «Content-type») Retourner le résultat par «stdout»

Fonctionnement : Envoi d’informations à partir du browser Envoi à partir d’un formulaire Exemple de code HTML : <form action="cgi-bin/NomDuProgramme.exe" method="POST"> <input type="text" size="20" maxlength="256" name="NomDuControl" value="defaut"> <input type="submit" value="Submit Form"> </FORM> =>Un champ de saisie pour entrer la requête et un bouton «submit» pour l’exécuter

Fonctionnement : Envois d’informations à partir du browser Méthodes de passage de paramètres GET Chaîne de requête à la suite de GET Le programme lit depuis une variable d’environnement Chaîne limitée à 1024 octets POST Chaîne de requête envoyée séparément Le programme lit ses arguments depuis stdin Pas de limite

Fonctionnement : Renvoi des informations au browser Le programme utilise stdout pour renvoyer au serveur le résultat Il peut renvoyer une page HTML, une image, ou d’autres types de données en modifiant le Content-type du header HTTP

Ecriture d’une application CGI Exemple : L’application la plus simple void main() { printf("Content-type: text/html\n\n") ; printf("<html>\n") ; printf("<head><title>Hello World</title> </head>\n") ; printf("<body>\n") ; printf("<h1>Hello, world.</h1>\n"); printf(«</body></html>\n«); }

ISAPI

Objectifs du chapitre Présentation d’ISAPI Différences avec CGI Les filtres Les extensions

Présentation d’ISAPI Internet Server Application Programming Interface Technologie de Microsoft et de Process Software, apparue en 1995 Permet de doter les serveurs Web d’extensions logicielles

Présentation d’ISAPI Ces applications peuvent: Fonctionner avec Microsoft Internet Information Server Etre créées avec Visual C++ (à partir de la version 4.1)

Présentation d’ISAPI Ces applications prennent la forme de : Filtres : applications qui «filtrent» toutes les données circulant entre le browser et le serveur Web Extensions : comparables à des applications CGI, sont exécutées par le serveur suite à des requêtes du browser

Présentation d’ISAPI Client Serveur FILTRE EXTENSION Filtre ISAPI SERVICE WWW BROWSER WEB Application ISAPI EXTENSION SERVICE WWW BROWSER WEB

Introduction à la Programmation ISAPI Les extensions ISAPI Etendent les fonctionnalités Hautes performances Exécution In-process Plug-ins Activation par Script Maintain state Les filtres ISAPI Contrôler l'activité Modifier le comportement Modifier les Entrées/Sorties Participer aux opérations intermédiaires

Les filtres Description Dll qui se placent entre le browser et le service Web Toutes les données qui circulent, à partir ou vers le browser, peuvent être lues et modifiées

Les filtres Description Client Serveur Filtre SERVICE WWW BROWSER WEB

Les filtres ISAPI Pourquoi: Opérations particulières, superviser/modifier les entrées/sorties, applicables à toutes les requêtes Architecture: Appelle les filtres pour des opérations immédiates Plusieurs filtres peuvent être actifs simultanément Plusieurs threads peuvent faire appel aux filtres

Le support d'un Filtre Plusieurs filtres peuvent être enregistrés et traiter chaque requête Chaque filtre doit indiquer à quel type de notification il s'intéresse Quand un filtre est appelé, il peut: Traiter entièrement la requête Traiter la requête et la passer au filtre suivant du type de notification courante Assumer tout le traitement de la notification courante

Différences entre ISAPI et CGI Des .dll Des filtres et des applications Encore très peu répandu CGI Des .exe Seulement des applications Standard mondial

Différences entre ISAPI et CGI Souvent utilisé avec un langage compilé comme C ou C++ Outil d’aide à la réalisation en C++, pour les handlers et les entrées CGI Souvent utilisé avec un langage de script (PERL) Rien, le développeur doit décrypter la chaîne d’entrée tout seul comme un grand

Différences entre ISAPI et CGI Une dll regroupe un ensemble de fonctions Pour n utilisateurs, une dll est en mémoire A chaque utilisateur, un thread est lancé CGI Un exe contient une seule fonction Pour n utilisateurs, n exe sont en mémoire A chaque utilisateur, un processus est lancé

Différences entre ISAPI et CGI Application CGI Dll ISAPI threads 3 utilisateurs Service Web 3 utilisateurs Service Web

JAVA

JAVA - Les SERVLET Le JSDK (Java Servlet Development Kit) fournit un modèle de classes pour l'écriture des Servlet. Il est disponible sur : http://java.sun.com/products/servlet. Les Servlets sont des modules JAVA exécutés côté serveur pour générer des pages HTML dynamiques. Les Servlets sont en fait des petits serveurs spécialisés. Les servlets s'exécutent dans un moteur de servlet (parfois appelé conteneur de servlet) utilisé pour établir le lien entre la servlet et le serveur web

JAVA - Les SERVLET Le Conteneur Servlet se charge du cycle de vie d'une Servlet. Il crée un Instance, appelle la méthode init () de l'instance, puis il appelle la méthode service () et enfin avant de la détruire appelle la méthode destroy (). Une Servlet est crée en étendant soit la classe GenericServlet, soit la classe HttpServlet. GenericServlet est déjà une extension de HttpServlet. Elle propose des fonctionnalités spécifique à HTTP tout en simplifiant la création d'une Servlet. Une Servlet est chargée une seule fois et peut traiter plusieurs requêtes HTTP .

JAVA - La structure d'une SERVLET Chaque requête provoque la création d'un Thread par le moteur qui éxécute la méthode Service de la Servlet. S'il s'agit une méthode GET (resp. POST), la méthode service transmet la requête à la méthode doGet (resp. doPost). Pour établir la réponse HTTP afin d'envoyer une réponse au client, l'objet HttpServletReponse de la méthode doGet (resp. doPost), permet : d'envoyer le type MIME par la méthode setContentType d'extraire l'objet PrintWriter grâce la méthode getWriter () qui va permettre de générer le contenu du flot de sortie.

JAVA - Exemple d'une SERVLET import javax.servlet.*; import javax.servlet.http; import java.io.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { res.setContentType("text/html"); PrintWriter out = res.getWriter (); out.println("<HTML>"); out.println("<BODY>"); out.println("<HELLO WORLD>"); out.println("</BODY>"); out.println("</HTML>"); out.close (); } Servlet doGet Type MIME Flot de sortie

LES JSP JSP (Java Server Page) Les pages web JSP sont une technologie développée par Sun basée sur Java qui simplifie le processus de développement de sites web dynamiques Lorsque la page est demandée par un utilisateur en HTTP, alors le serveur web HTTP va transmettre sa requête à un moteur de JSP qui va interpréter le page, compiler le code et générer la réponse.

LES JSP - Exemple <html> <body> <% String visitor = request.getParameter("name"); if (visitor == null) visitor = " World"; %> Hello, <%= visitor %>! </body> </html>

JSP - Installation Les éléments nécessaires pour utiliser JSP sont : un serveur HTTP (Apache, IIS…) un logiciel implémentant le conteneur (ou moteur) de JSP est nécessaire (Tomcat, Netscape entreprise Server) une Java Virtual Machine tel que JDK (Java Development Kit) qui contient une JVM, un compilateur...

JSP - Exécution Les JSP sont dérivées des servlets (les JSP sont transformées par le conteneur en Servlet), Elles sont donc compilées en une classe Java dérivant de la classe HttpServlet le serveur Web appelle le conteneur de JSP qui transforme la page JSP en code source Java et compile la classe afin de fournir un fichier compilé (d'extension .class). Le script JSP est donc devenu une Servlet.

JSP - Exécution

PHP

PHP - Introduction PHP, signifie "PHP: Hypertext Preprocessor" (Preprocesseur HyperTexte), est un langage de script HTML. La plupart de sa syntaxe est empruntée aux langages C, mais y ajoute plusieurs fonctionnalités uniques. Le but de ce langage est de permettre aux développeurs web de concevoir rapidement des sites, aux pages dynamiques PHP 3.0 est un logiciel libre : vous pouvez le modifier et/ou le modifier sous licence GNU General Public License, telle que publiée par Free Software Foundation; Sources, documentation, executable : www.php.net PHP supporte de nombreuses bases de données (et aussi ODBC).

PHP - Installation Le langage PHP a été conçu durant l'automne 1994 par Rasmus Lerdof. Multi-plateforme, il est disponible sur UNIX, LINUX, WINDOWS. Sur WINDOWS, PHP peut-être couplé avec : · Personal Web Server (Version la plus récente recommandée) · Internet Information Server 3 ou 4 · Apache 1.3.x · Omni HTTPd 2.0b1

PHP - Premier Exemple Balises HTML <html> <head> <title>Exemple</title> </head> <body> <?php echo ”Je suis un script PHP!"; ?> </body> </html> Instruction PHP PHP est un langage de script HTML, qui fonctionne coté serveur. Il possède les même fonctionnalités que les autres langages permettant d'écrire des scripts CGI, comme collecter des données, générer dynamiquement des pages web ou bien envoyer et recevoir des cookies.

PHP - Les variables & Les variables dynamiques Une variable classique est affecté avec l'instruction suivante: $a = "bonjour"; Il est pratique d'avoir des noms de variables qui sont variables. C'est-à-dire un nom de variable qui affecté et utilisé dynamiquement. Une variable dynamique prend la valeur d'une variable et l'utilise comme nom d'une autre variable. $$a = "le monde"; A ce niveau, deux variables ont été définies et stockées dans l'arbre des symboles $a avec comme valeur "bonjour" et $bonjour avec comme valeur "le monde".

PHP - Les types PHP est faiblement typé. Les type de base sont : ENTIER, les DOUBLE, les CHAINES : $str = <<< FIN Ceci est une chaine de caractères FIN; Pas de type DATE, ni de type BOOLEAN.

PHP - Assignation par référence Le & placé au début de la variable qui est assignée permet d’assigner par référence. <?php $v1 = ‘Valeur1’; $v2 = &$v1; $v2 = ‘valeur 2’; echo $v1; echo $v2; ?> Seule les variables nommées peuvent être assignées par référence.

PHP - Les variables prédéfinies Variables Apache Elles sont spécifiques et créées par le serveur Apache. SERVER_NAME : nom du serveur hôte SERVER_PROTOCOL: Nom et révision du protocole de communication REQUEST_METHOD : Méthode de requête utilisée pour accéder à la page QUERY_STRING : La chaîne de requête, DOCUMENT_ROOT : La racine sous laquelle le script courant est exécuté Variables PHP Elles sont créées par PHP argv : Tableau des rguments passées au script. argc : Contient le nombre de paramètres de la ligne de commande passés au script PHP_SELF : Le nom du fichier du script en cour d'éxécution, HTTP_COOKIE_VARS : Un tableau associatif HTTP_GET_VARS : Un tableau associatif HTTP_POST_VARS : Un tableau associatif Variables d’environnement Ces variables sont importées depuis l'environnement sous lequel PHP fonctionne. EX : PATH

PHP - Les tableaux Deux types de tableaux : tables de hashage (tableaux associatifs) tableaux indexés (tableaux scalaires). Tableaux à une dimension : <?php $a[0] = "abc"; $a[1] = "def"; $b["foo"] = 13; ?> Ajout d’un nouvel élément en fin de tableau $a[] = "Bonjour"; // $a[2] == "Bonjour"; $a[] = "Monde"; // $a[3] == "Monde"; Un ensemble de fonctions sont disponibles pour agir sur les tableaux : asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), uksort(), count().

PHP - Les tableaux parcours reset($arr); while (list($key, $value) = each ($arr)) { echo "Clé: $key; Valeur: $value<br>\n"; } foreach ($arr as $key => $value) { ?> Pointeur interne du tableau au début Retourne une paire clé /valeur Permet d ’assigner une liste de variables Extension de foreach

PHP - Les tableaux à plusieurs dimensions Pour chaque dimension du tableau, ajouter une nouvelle [clef] à la fin. <?php $a[1] = $f; $a["foo"] = $f; $a[1][0] = $f; $a["foo"][2] = $f; $a[3]["bar"] = $f; $a["foo"][4]["bar"][0] = $f; # ?> La méthode la plus simple à comprendre est l’utilisation de la fonction array(). $a = array( "pomme" => array( "couleur" => "rouge", "saveur" => "sucrée", "forme" => "rond"), "orange" => array( "couleur" => "orange", "saveur" => "amère", "forme" => "rond”)); Mélanger les types Associatifs / Scalaires

PHP - Les opérateurs Les opérateurs arithmétiques : + - * / % Les opérateurs d'assignement : += -= *= /= %= .= Bitwise Operators : & | ^ ~ << >> Opérateurs de comparaison : == === != < > <= >= === Egalité et meme type Opérateur de contrôle d'erreur : @ @ permet d’ignorer les warning Opérateur d'exécutions : ` ` $d = ` DIR ` Incrementing/Decrementing Operators : ++ -- Les opérateurs logiques : && and || or xor ! String Operators : .

PHP - Require & Include require() La commande require() se remplace elle même par le contenu du fichier spécifié, comme les préprocesseurs C le font avec la commande #include. include() La fonction include() inclue et évalue le fichier spécifié en argument. <?php $files = array (’premier.inc’, ’second.inc’, ’troisieme.inc’); for ($i = 0; $i < count($files); $i++) { include $files[$i]; } ?> include() diffère de require() car le fichier inclus est ré-évaluée à chaque fois que la commande est exécutée. include_once () & require_once ()

PHP - Les structures de contrôles Les conditionnelles if else elseif switch case Les itératives while do while for foreach Exemple : $a = array (1, 2, 3, 17); foreach ($a as $v) { print "Valeur courante de \$a: $v.\n"; } Les ruptures break continue

PHP - Les fonctions En PHP, les fonctions peuvent être utilisées avant d’étre définies. PHP supporte un nombre variable d’arguments et l’assignation des valeurs par défaut. func_num_args() : retourne le nombre d’arguments de la fonction func_get_arg(n) : retourne un argument func_get_args() : retourne un tableau contenant les arguments <?PHP function test (arg1 = val_defaut1, arg2 = val_defaut2) { .. } test (); ?>

PHP - Les fonctions passage des arguments par références Par défaut, les arguments sont passés à la fonction par valeur. PHP supporte le passage d’arguments par référence. Pour passer un argument par référence, utiliser ’&’ devant l’argument dans la déclaration de la fonction : function add_some_extra(&$string) { $string .= ’, et un peu plus.’; } $str = ’Ceci est une chaîne’; add_some_extra($str); echo $str; Pour passer une variable par référence à une fonction ponctuellement : function add_some_extra($string) { … } add_some_extra(&$str);

PHP - Class & Objet Une classe est un ensemble de propriétés et de méthodes. Une classe est définie par la syntaxe suivante : class exClass { var $p1; var $p2; function exClass () { } Un objet est instancié par l’instruction new : obj = new exClass (); obj->p1 = ‘TEST’; Une Class peut-être enrichie par héritage : class exFilleClass extends exClass { Un objet peut se référencer par l’objet $this. Définition d ’une class Instanciation d ’un objet Accès aux propriétés & Méthodes d ’un objet Héritage Référence l ’objet courant

PHP - Images Dynamiques Entete HTTP <?php Header("Content-type: image/png"); $string=implode($argv," "); $im = ImageCreatefromPNG("images\\bouton.png"); $orange = ImageColorAllocate($im, 0, 20, 60); $px = (imagesx($im)-7.5*strlen($string))/2; $py = (imagesy($im))/2; ImageString($im,3,$px,$py,$string,$orange); ImagePNG($im); ImageDestroy($im); ?> Identifiant IMG Image de fond Créée L’IMAGE PHP n'est pas limité à la création de fichier HTML. Il peut aussi servir à créer des images GIF/JPG/PNG à la volée,. Cet exemple sera utilié dans une page HTML : <img src="button.php3?text">.

PHP - Images Cliquables HTML> <BODY> <FORM action = 'index.php' name = 'img'> <INPUT type = "image" src = "image.php?CNAM"> </FORM> <BR> <?php printf ("X : %d <BR>",$x); printf ("Y : %d <BR>",$y); ?> </BODY> </HTML> Image Coordonnées X, Y du clique Permet de récupérer dans un script PHP les coordonnées X, Y relatives d’un clique effectuée sur une Image.

PHP - Les COOKIES Le PHP supporte les cookies HTTP de manière totalement transparente, La fonction setcookie() sert à créér un cookie. Tout cookie envoyé depuis le client sur le serveur sera stocké sous forme de variable, comme pour les méthodes POST ou GET. Pour assigner plusieurs valeurs à un seul cookie, il vous faut ajouter les caractères [ ] au nom du cookie. Par exemple : SetCookie ("MyCookie[]", "Testing", time()+3600);

PHP - Accès à une Base de données PHP dispose, en natif de plusieurs fonctions spécifiques aux bdd du marché : dBase INGRES INFORMIX INTERBASE SQL SERVER mSQL MySQL ODBC ORACLE Ovrimos SQL PostgreSQL Connexion au serveur $con = mysql_connect("126.52.3.52") or die ("erreur”); mysql_select_db("test"); r = mysql_query ("select * from personne); mysql_result (r,1,1); echo (r); mysql_close($con); Base Requête Résultat

PHP - Fonctions MySQL mysql_connect (s,u,p) : connexion à un serveur de données mysql_select_db(bd) : selectionne une bd mysql_query (req) : envoie une rêquete au serveur mysql_num_fields () : nombre de champs mysql_num_rows () : nombre de lignes mysql_result (result, row,field): contenu d’un champ mysql_field_name (i) : nom du champ mysql_field_type (i) : type d’un champ

PHP - Fonctions Supplémentaires en PHP Gestion de l’annuaire LDAP Gestion de la DOM XML Correcteur orthographique Gestion des email Gestion FTP Gestion réseaux Gestion des paiements sécurisés Gestion des fichiers ZIP Gestion des PDF Génération d’objet FLASH Cryptage