Cours Web n o 8 PHP Notions avancées



Documents pareils
TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Stockage du fichier dans une table mysql:

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

Live box et Nas Synology

Raja Bases de données distribuées A Lire - Tutoriel

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

Live box et Nas Synology

Intranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs

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

Aide-mémoire minimal pour la sécurité en PHP François Gannaz

ISPConfig Documentation

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Comment faire pour créer ses propres pages html?

Guide d'utilisation du portail d'authentification Cerbère à usage des professionnels et des particuliers

LISTES DE DISTRIBUTION GÉRÉES PAR SYMPA DOCUMENT EXPLICATIF DE L'INTERFACE WEB À L'INTENTION DES ABONNÉS

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Authentification et contrôle d'accès dans les applications web

Mise en oeuvre d un intranet à partir de logiciels Open Source avec intégration des certificats numériques et login unique

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

Sauvegarder et restaurer les données PMB

Télécom Nancy Année

Création d'un site Internet pour une agence de voyages

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Le stockage local de données en HTML5

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Utilisation d'un réseau avec IACA

Test de HSQLDB et Comparatif avec Sqlite

SweetyPix, mode d'emploi

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Des postes Des OS (Win/Linux) et logiciels Un réseau Un identifiant + un mot de passe Un compte personnel Une adresse électronique Un espace web Des

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Compte-rendu de projet de Système de gestion de base de données

Comment développer et intégrer un module à PhpMyLab?

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Objet : Guide d'installation et de maintenance pour "My IC Phone 8082" connecté à un OmniPCX Office R810

Module http MMS AllMySMS.com Manuel d intégration

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

Gestion des utilisateurs : Active Directory

Les commandes relatives aux réseaux

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Avec PICASA. Partager ses photos. Avant de commencer. Picasa sur son ordinateur. Premier démarrage

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

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

Gestion d utilisateurs et stratégie systèmes.

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

Formation > Développement > Internet > Réseaux > Matériel > Maintenance

Les messages d erreur d'applidis Client

STID 2ème année : TP Web/PHP

Guide de l'utilisateur de l'application mobile

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

Cyberclasse L'interface web pas à pas

Application web de gestion de comptes en banques

ultisites S.A. module «services»

Petite définition : Présentation :

Vérification intégrée de l'utilisateur Guide d'implémentation client Confidentiel Version 2.9

Chapitre 2 Accès aux partages depuis votre système d'exploitation

La gestion des boîtes aux lettres partagées

Manuel d'utilisation du navigateur WAP Palm

Dans l'article précédent, vous avez appris

Qlik Sense Cloud. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

CONNECTEUR PRESTASHOP VTIGER CRM

Gérer ses impressions en ligne

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

Novell. NetWare 6. GUIDE D'ADMINISTRATION DE NETDRIVE

Architectures en couches pour applications web Rappel : Architecture en couches

Les chaînes de caractères

Année Universitaire 2009/2010 Session 2 de Printemps

Le serveur SLIS - Utilisation de base

Client Kiwi Backup : procédures d'installation et de mise à jour. Gilles Arnoult, Clément Varaldi

Mode d'emploi détaillé

GESTION ELECTRONIQUE DE DOCUMENTS

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Mysql. Les requêtes préparées Prepared statements

Polux Développement d'une maquette pour implémenter des tests de sécurité

Clauses d'hébergement web

VM Card. Manuel des paramètres des fonctions étendues pour le Web. Manuel utilisateur

PHP 5.4 Développez un site web dynamique et interactif

Programmation Web. Introduction

SUPPRIMER SES COOKIES

CONDITIONS GÉNÉRALES DE

Protocoles DHCP et DNS

WebSSO, synchronisation et contrôle des accès via LDAP

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

IBM SPSS Statistics Version 22. Instructions d'installation sous Windows (licence simultanée)

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

Service d information pour remise de paiement de factures Scotia

Formulaire pour envoyer un mail

Création de formulaires interactifs

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

I. MySQL : Serveur et SGBD

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

LA PLATE-FORME D'ALTERN C

Transcription:

Gestion des chiers Cours Web n o 8 PHP Notions avancées Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 20 novembre 2006 S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 1 / 22

Gestion des chiers Plan du cours 1 Gestion des chiers 2 Expressions régulières 3 Authentication, Sessions 4 Références 5 Application S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 1 / 22

Gestion des chiers $_FILES Les informations relatives aux chiers transférés sont disponibles dans un tableau associatif $_FILES : les clés sont les noms des champs de formulaire d'où provient le chier las valeurs sont des ensembles de propriétés (décrits comme des tableaux associatifs) décrivant le chier reçu par le serveur auxquelles s'ajoute la propriété error qui permet de savoir si le transfert s'est bien déroulé Exemple (dans un chier FormTransfert.html) <form enctype="multipart/form-data" action="transfertfichier.php" method="post">... <div> <label for="maphoto">choisissez un fichier :</label> <input type="file" name="maphoto" id="maphoto" /> </div>... </form> S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 2 / 22

Gestion des chiers Paramètres de $_FILES name est le nom du chier sur la machine du client tmp_name est le nom du chier temporaire sur la machine du serveur size est la taille du chier, en octets type est le type MIME du chier, par exemple "image/gif" Exemple (dans le chier TransfertFichier.php)... $fichier=$_files['maphoto'] ; echo "Nom fichier client:".$fichier['name']."<br />" ; echo "Nom fichier serveur:".$fichier['tmp_name']."<br />" ; echo "Taille du fichier:".$fichier['size']."<br />" ; echo "Type du fichier:".$fichier['type']."<br />" ;... S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 3 / 22

Gestion des chiers Erreurs lors de la récupération d'un chier UPLOAD_ERR_OK pas d'erreur, le transfert s'est bien passé UPLOAD_ERR_INI_SIZE le chier transmis dépasse la taille maximale autorisée UPLOAD_ERR_PARTIAL le chier est transféré seulement partiellement UPLOAD_ERR_NO_FILE aucun chier n'a été transféré Exemple... $codeerreur= $_FILES['maPhoto']['error'] ;... S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 4 / 22

Gestion des chiers Copier un chier sur le serveur La fonction PHP copy(source,destination) permet de copier le chier source vers destination. Important parce que le chier temporaire pourra être détruit à la n du script! Attention : le programme doit avoir les droits d'accès et d'écriture sur les répertoires dans lesquels les chiers sont copiés La fonction md5(ch) permet de générer une nouvelle chaîne de caractères à partir de ch. Il est à peu près impossible d'obtenir deux valeurs identiques pour des chaînes diérentes ce qui permet de considérer cette fonction comme un cryptage de chaîne. On peut en particulier utiliser md5 pour générer un nom de chier quand on n'a rien de mieux (par exemple, un identiant). Exemple... // Copie du fichier dans le répertoire PHOTOS copy($fichier['tmp_name'],"./photos/$id.jpg") ;... S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 5 / 22

Expressions régulières Plan du cours 1 Gestion des chiers 2 Expressions régulières 3 Authentication, Sessions 4 Références 5 Application S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 6 / 22

Expressions régulières Notions de base Les expressions régulières permettent de dénir des motifs que l'on peut ensuite rechercher dans une chaîne de caractères. Une expression décrit un motif en indiquant : le caractère ou la sous-chaîne attendu l'ordre des caractères et des sous-chaînes le nombre d'occurences de ces caractères ou des ces sous-chaînes Le motif le plus simple est la sous-chaîne constante Exemple L'expression régulière foo représente la sous-chaîne foo. S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 7 / 22

Expressions régulières Caractères spéciaux (motif) même chose que motif motif représente toutes les chaînes commençant par motif motif$ représente toutes les chaînes terminant par motif m* indique que le motif m peut être présent 0 ou plusieurs fois m+ indique que le motif m peut être présent 1 ou plusieurs fois m? indique que le motif m peut être présent 0 ou 1 fois m{a,b} indique que le motif m peut être présent au moins a fois et au plus b fois m{a,} indique que le motif m peut être présent au moins a fois mais sans maximum m{p} est équivalent à m{p,p} S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 8 / 22

Expressions régulières Caractères spéciaux Exemple momomoouf cmooopoue (mo){3} oui non mo{3} non oui a? oui oui b* oui oui p+ non oui o{4,5} non non cmo non oui f$ oui non S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 9 / 22

Expressions régulières Caractères spéciaux [motif] toutes les chaînes avec un m, un o, un t, un i ou un f [a-f] toutes les chaînes avec une lettre entre a et f [a-za-z] toutes les chaînes avec une lettre de l'alphabet [ 0-9] toutes les chaînes sans chire. représente n'importe quel caractère Remarque : les caractères spéciaux,., [, ], (, ), *, +,?, {, } et \ doivent être précédés par un \ pour être pris en compte de manière littérale dans une expression régulière Exemple ( \( [ \)]* \) )* représente les chaînes de caractères bien parenthésées (avec un seul niveau, pas d'imbrication!). S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 10 / 22

Expressions régulières Caractères spéciaux [:alpha:] représente n'importe quel caractère alphanumérique [:blank:] représente un espace ou une tabulation [:lower:] représente une minuscule [:upper:] représente une majuscule [:space:] représente un espace, une tabulation ou un retour à la ligne Exemple [[:upper:]0-9] représente un caractère quelconque parmi l'ensemble des lettres majuscules et des chires de 0 à 9. S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 11 / 22

Expressions régulières Fonctions ereg(m,ch) retourne vrai si le motif m a été trouvé dans la chaîne ch ereg(m,ch,tab) retourne vrai si le motif m a été trouvé dans la chaîne ch et stocke dans le tableau tab toutes les occurrences trouvées dans ch du motif m ereg_replace(m,r,ch) retourne la chaîne ch dans laquelle les occurrences du motif m ont été remplacées par la sous-chaîne r Exemple if (ereg("<[ >]*>",$film['nomrealisateur'],$balises)) $mes= "Le nom contient la balise:". htmlspecialchars($balises[0]) ; if (ereg("[ a-za-z]",$film['nomrealisateur'])) $mes= "Le nom contient un ou plusieurs". "caractères non-alphabétiques : ". ereg_replace("[ a-za-z]","*",$film['nomrealisateur']) ; S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 12 / 22

Authentication, Sessions Plan du cours 1 Gestion des chiers 2 Expressions régulières 3 Authentication, Sessions 4 Références 5 Application S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 13 / 22

Authentication, Sessions Dénitions session : ensemble d'informations conservées tout au long d'une interaction avec les diérentes pages d'un site Web authentication : mécanisme permettant d'associer un identiant (login) à un utilisateur d'un site Web, de manière à permettre de la personnalisation du contenu, ou de la gestion de droits sur une application Web ; habituellement, l'authentication est faite grâce à un mot de passe. S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 14 / 22

Authentication, Sessions Sessions et authentication en HTTP Méthode d'autentication HTTP simple disponible au niveau du serveur Web, mais impose une modication de la conguration de celui-ci ; un peu lourd, dicilement connectable à un SGBD. Pas de gestion de session à proprement parler en HTTP. Alternatives : Paramètres HTTP cachés dans l'url (méthode GET). Mécanisme un peu lourd, puisque tous les liens doivent être changés pour incorporer ces paramètres. Cookies. S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 15 / 22

Authentication, Sessions Cookies Informations, sous la forme de clés/valeurs, qu'un serveur Web demande à un client Web de conserver et de retransmettre à chaque requête HTTP. setcookie($name,$value) : demande client de stocker un cookie de nom $name et de valeur $value. $_COOKIE est un tableau associatif des cookies que le client a envoyé au serveur Web. S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 16 / 22

Authentication, Sessions Sessions en PHP PHP fournit une abstraction de la gestion de session (utilisant un cookie, mais sans avoir à le gérer soi-même). session_start() ouvre une session en cours, ou crée une nouvelle session s'il n'y a pas de session ouverte ; ceci est à placer au tout début du script PHP, ou en tous cas avant que quoi que ce soit n'ait été écrit dans la page, de manière à pouvoir modier les en-têtes de la réponse HTTP. session_destroy() termine la session en cours. session_id() fournit un identiant de la session en cours. $_SESSION contient l'ensemble des paramètres de session (tableau associatif clé/valeur), disponibles dans les diérentes pages Web de la même session. S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 17 / 22

Authentication, Sessions Authentication avec les sessions PHP Un formulaire demande login et mot de passe. Un script de traitement de ce formulaire, contrôle que le login et le mot de passe sont corrects (par exemple à l'aide d'une table MySQL) : Si c'est le cas, crée une session PHP (session_start();), y ajoute un paramètre nommé par exemple valid_user ($_SESSION['valid_user']=1;) et redirige vers une autre page. Sinon, redirige vers la page de formulaire. Les autres pages (pages auxquelles les utilisateurs authentiés et seulement eux ont accès) commençent par un session_start(); et contrôlent si l'utilisateur est identié (if($_session['valid_user']==1;) {...}) et sinon redirigent vers la page de formulaire Une page de déconnexion appelle session_destroy(); S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 18 / 22

Références Plan du cours 1 Gestion des chiers 2 Expressions régulières 3 Authentication, Sessions 4 Références 5 Application S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 19 / 22

Références http://www.php.net/ Pratique de MySQL et PHP, Philippe Rigaux, O'Reilly Maîtrise des expressions régulières, O'Reilly Requests for Comments concernant la gestion des cookies : http://www.ietf.org/rfc/rfc2109.txt http://www.ietf.org/rfc/rfc2965.txt S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 20 / 22

Application Plan du cours 1 Gestion des chiers 2 Expressions régulières 3 Authentication, Sessions 4 Références 5 Application S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 21 / 22

Application 1 Écrire un script vériant (à l'aide d'une expression régulière) qu'un paramètre HTTP de nom email ressemble bien à un e-mail (le script devra acher un message d'erreur si email vaut zorglub ou zkds@qdsj, mais pas si email vaut toto@titi.com ou gabou@areuh.fr) 2 Reproduire le comportement des scripts de démonstration login.php, bonjour.php et quitter.php à l'aide d'une session PHP : 1 login.php présente un formulaire d'ouverture de session et redirige vers bonjour.php. 2 bonjour.php stocke le nom d'utilisateur dans les paramètres de session et ache un message contenant ce nom si la session est ouverte, ache un autre message sinon. 3 quitter.php ache un message contenant le nom d'utilisateur et termine la session si la session est ouverte, ache un autre message sinon. S.-D. Gouraud, P. Senellart (IFIPS) PHP Notions avancées 20/11/2006 22 / 22