Conception de sites Web TP n o 5



Documents pareils
Internet. Web Sécurité Optimisation

Serveurs et environnements de développement. Serveur Web

Zoom sur Newtest LDAP intégration

Table des matières Hakim Benameurlaine 1

CGI et SSI. La programmation CGI. Sources. Objectifs. Qu'est ce qu'un programme CGI? CGI

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Les serveurs WEBUne introduction

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

Programmation Web. Madalina Croitoru IUT Montpellier

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Internet Information Server. Conçu et réalisé par Denis Szalkowski Formateur consultant

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

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

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Module 7 : Configuration du serveur WEB Apache

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

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

Serveur Web Apache - SSL - PHP Debian GNU/Linux

Programmation Web. Introduction

REPARTITION DE CHARGE LINUX

Préparation d un serveur Apache pour Zend Framework

Application Web et J2EE

L3 informatique TP n o 2 : Les applications réseau

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Installation du serveur WEB Apache ( MySQL, PHP) sous Debian 7.

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Langage W4. Note technique W4 Engine

SERVEUR HTTP Administration d apache

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Serveurs de noms Protocoles HTTP et FTP

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Couche applica,on. h.p- web Cgi javascript

Serveur Subversion Debian GNU/Linux

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Bases de données et Interfaçage Web

Installation d un hébergement Web à domicile

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

Pratique et administration des systèmes

Hébergement de site web Damien Nouvel

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

Comment avoir le logiciel? Le serveur web APACHE peut être téléchargé gratuitement du site web de APACHE:

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

Création d un «Web Worm»

Autorité de certification

Thème : Création, Hébergement et référencement d un site Web

Mise en place d un serveur Proxy sous Ubuntu / Debian

BTS SIO Dossier BTS. PURCHLA Romain

Développement des Systèmes d Information

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

Exemple : vous voulez tester votre site en local avant de l uploader via FTP chez votre hébergeur externe.

Mandataires, caches et filtres

Tutoriel compte-rendu Mission 1

Dans l'épisode précédent

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

CYBERGATE -TP-APACHE_2.DOC

4. SERVICES WEB REST 46

Réaliser un inventaire Documentation utilisateur

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Module http MMS AllMySMS.com Manuel d intégration

Vulnérabilités et solutions de sécurisation des applications Web

SECURIDAY 2012 Pro Edition

Procédure d'installation

Tests de montée en charge avec Tsung

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

1 Introduction Propos du document Introduction De HTTP 1.0 à HTTP

Transfert de fichiers (ftp) avec dreamweaver cs5 hébergement et nom de domaine. MC Benveniste

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

Formation Site Web. Menu du jour. Le web comment ça marche? Créer un site web Une solution proposée pour débuter La suite?

2011 Hakim Benameurlaine 1

Atelier Le gestionnaire de fichier

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Travaux Pratiques Introduction aux réseaux IP

Stockage du fichier dans une table mysql:

Le serveur web Windows Home Server 2011

Environnements informatiques

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

Architectures en couches pour applications web Rappel : Architecture en couches

Sécurité des applications Web

Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

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

Présentation Serveur Apache et pour RePeGlio

installer_un_serveur_debian - Documentation Ubuntu Francophone Installation complète d'un serveur web sous Debian 6.0

TP Service HTTP Serveur Apache Linux Debian

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Utiliser un CMS: Wordpress

Transcription:

Conception de sites Web TP n o 5 Objectif : Dans ce TP, vous mettrez en œuvre le langage PHP afin de gérer, entre autres, un compteur de visites, le formulaire que vous avez intégré à votre blog ainsi que les cookies. Préalable Activation de votre site Le module UserDir du serveur Web Apache permet à tous les utilisateurs de la machine de publier des documents. Pour cela ils possèdent un sous-répertoire appelé public_html dans leur répertoire personnel. Les fichiers placés dans ce répertoire seront, pour un utilisateur donné, accessibles à l adresse : http://le_serveur/~utilisateur. Afin de l activer, entrez sur un terminal les commandes suivantes 1 sudo a2enmod userdir sudo service apache2 restart mkdir ~/public_html chmod -R 755 ~/public_html Déplacez l ensemble des fichiers de votre blog à la racine du répertoire public_html et vérifiez que votre page d accueil s appelle index.html, ou encore index.htm ou index.php. Votre blog est alors disponible à l adresse : http://votre_adresse_ip/~etudiant Vérifiez que vous pouvez y accéder depuis le navigateur. Vérification de la présence du module PHP Créez le fichier bonjour.php qui contiendra le code suivant : <!php $message = "Bonjour à vous"; <title>test du module PHP</title> <p> echo $message; </p> 1. Vous serez certainement contraints de modifier plusieurs fois de suite les permissions de ce répertoire dès que vous y ajouterez un nouveau fichier ou répertoire. 11

Placez ce fichier à la racine de votre site et vérifiez que ce fichier est exécutable. Vérifiez que vous pouvez y accéder à l adresse : http://votre_adresse_ip/~etudiant/bonjour.php. Si rien ne s affiche sur votre navigateur, c est peut-être que le module PHP du serveur Web Apache n a pas été activé. Afin de l activer, exécutez dans un terminal les commandes suivantes : sudo a2enmod php5 ; sudo service apache2 restart Variables superglobales Un certain nombre de variables internes, appelées variables superglobales, sont toujours disponibles, quel que soit le contexte. Le tableau suivant regroupe ces différentes variables. Variable $GLOBALS $_SERVER $_GET $_POST $_FILES $_COOKIE $_SESSION $_REQUEST $_ENV Description Référence toutes les superglobales disponibles Variables de serveur et d exécution Valeurs passées au script courant via les paramètres d URL Valeurs passées au script courant via le protocole HTTP et la méthode POST Valeurs téléchargées au script courant via le protocole HTTP et la méthode POST Variables passées au script courant via des cookies Valeurs stockées dans les sessions et accessible au script courant Contenu des variables $_GET, $_POST et $_COOKIE Référence la variable passé au script courant via la méthode d environnement 1 Informations pour le visiteur Utilisez la variable superglobale $_SERVER afin de retourner au visiteur une page HTML comprenant, dans des paragraphes consécutifs, les informations qui concernent : 1 Le serveur 2 Le client le nom du serveur ( SERVER_NAME ) ; l adresse IP du serveur ( SERVER_ADDR ) ; le port de la machine serveur utilisé pour les communications ( SERVER_PORT ) ; l identification du logiciel serveur ( SERVER_SOFTWARE ) ; le protocole de communication et sa version ( SERVER_PROTOCOL ) ; la valeur donnée à la directive SERVER_ADMIN d Apache ( SERVER_ADMIN ) ; l adresse IP du visiteur qui demande la page courante ( REMOTE_ADDR ) ; le nom de la machine cliente ( REMOTE_HOST ) ; le port utilisé par la machine cliente pour communiquer avec le serveur Web ( REMOTE_PORT ) ; la description du navigateur client ( HTTP_USER_AGENT ) ; l utilisateur s il est authentifié ( REMOTE_USER ) ; l utilisateur authentifié si la requête a été redirigée en interne ( REDIRECT_REMOTE_USER ) ; 22

3 Le script courant son nom ( SCRIPT_NAME ) ; le chemin absolu vers le fichier qui le contient ( SCRIPT_FILENAME ) ; la racine depuis laquelle il est exécuté ( DOCUMENT_ROOT ) ; l URI 2 qui a été fourni pour accéder à cette page ( REQUEST_URI ) ; informations sur le nom du chemin fourni par le client ( PATH_INFO ) l adresse de la page qui a conduit le client à la page courante ( HTTP_REFERER ) ; 4 Les caractéristiques de l échange la méthode de requête utilisée pour accéder à la page ( REQUEST_METHOD ) ; la chaîne de requête, si elle existe, qui est utilisée pour accéder à la page ( QUERY_STRING ) ; le contenu de l en-tête Host: de la requête courante ( HTTP_HOST ) ; le contenu de l en-tête Accept: de la requête courante ( HTTP_ACCEPT ) ; les codages de caractères acceptés par la requête courante ( HTTP_ACCEPT_CHARSET ) ; les compressions acceptées par la requête courante ( HTTP_ACCEPT_ENCODING ) ; les langues acceptées par la requête courante ( HTTP_ACCEPT_LANGUAGE ) ; le temps Unix du début de la requête (REQUEST_TIME) ; PHP et les fichiers PHP propose un certain nombre de fonctions permettant de manipuler des fichiers côté serveur. Le script suivant réalise la lecture du fichier esope.txt qui se trouve dans le sous-répertoire ressources placé à la racine du site et affiche son contenu sur le navigateur du visiteur. if (!$fp = fopen( "/ressources/esope.txt","r" ) ) { echo "Echec d ouverture du fichier"; else { $contenu = ""; while (!feof( $fp ) ) { $ligne = fgets( $fp, 255 ); $contenu.= $ligne. "<br>"; fclose($fp); echo "<p>". $contenu. "</p>"; 2 Un compteur de visites simple 2. Uniform Resource Identifier 33

Créez un compteur de visites qui sera placé sur la page d accueil de votre blog. Les visites seront comptabilisées dans le fichier compteur.num placé à la racine du site. Remarque Le compteur de visites s incrémente à chaque rechargement de la page d accueil par un même visiteur, ce qui fausse le comptage. Pour palier à ce problème, on peut créer un cookie avec une durée de vie de 24 h, puis on vérifie l existence de ce cookie chez le visiteur. S il n en a pas, on incrémente le compteur puis on ajoute le cookie, et s il en a déjà un on ne fais rien. Dans l exercice 6, vous réaliserez cette amélioration de votre compteur. Gestion du formulaire Considérons l exemple suivant d une page qui contient un formulaire minimal faisant appel au fichier traitement.php présent à la racine sur le serveur lorsque le visiteur effectue la soumission. L envoi du formulaire s effectue par l intermédiaire de la méthode GET. <title>formulaire</title> <form action="traitement.php" method="get"> <p>votre nom : <input type="text" name="nom" /></p> <p><input type="submit" value="soumettre" /></p> </form> Le fichier traitement.php ci-dessous se contente de retourner une page HTML avec le nom fourni par le visiteur. <title>réponse au nouveau visiteur</title> <p>bonjour <mark> echo $_GET[ nom ] </mark></p> 3 Méthodes GET et POST Testez l exemple précédent et remarquez la présence du champ nom et de sa valeur à la suite du nom du fichier traitement.php dans la barre d adresse du navigateur (le passage des informations s effectue avec le format suivant : «fichier.php?champ1=valeur1&champ2=valeur2&...»). Modifiez l exemple 44

afin d utiliser la méthode POST puis comparez. 4 Premier traitement du formulaire blog Réalisez votre propre fichier traitement.php adaptée aux différents champs de votre formulaire et retournant une page avec l ensemble des informations entrées dans le formulaire par le visiteur. 5 Deuxième traitement du formulaire blog Proposez des réponses personnalisées en fonction du visiteur qui a rempli le formulaire. Dans l exemple suivant, seul le visiteur ayant entré un mot de passe correct se voit retourner une page d information. <meta charset="utf-8" /> <title>mon blog</title> /* En cas de mot de passe correct on affiche les données */ if (isset($_post[ mot_de_passe ]) AND $_POST[ mot_de_passe ] == "hztdgvd65") { <h1>données sensibles</h1> <section> <h2>titre section</h2> <article> <h2>titre article</h2> <p><i>sed cautela...</i></p> </article> </section> else { /* Sinon, on affiche un message d erreur */ echo <p>mot de passe incorrect</p> ; Cookies Les cookies sont des petits fichiers stockés sur la machine du visiteur et qui permettent de conserver des renseignements utiles sur chaque utilisateur. Les cookies sont créés à l aide de la fonction setcookie. Ils ont un nom, une valeur et une date d expiration. 6 Un compteur de visites plus efficace À partir de la remarque faite dans l exercice 2, proposez un compteur de visites amélioré en utilisant un cookie. Vous pourrez utiliser la fonction time qui retourne l heure courante, mesurée en secondes depuis le début de l époque Unix, (1er janvier 1970 00 :00 :00 GMT). 55