Stockage du fichier dans une table mysql:

Dimension: px
Commencer à balayer dès la page:

Download "Stockage du fichier dans une table mysql:"

Transcription

1 Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table mysql, à partir de php. On va partir d'un fichier existant, avec comme exemple un fichier gif. On suppose le fichier déposé à un endroit accessible; ici il sera dans le dossier du script php. On suppose une base de donnée mysql créée et accessible par un nom d'utilisateur et un mot de passe. Dans ce document on verra comment stocker ces fichiers dans une table mysql, comment l'afficher dans une page web et comment en regénérer un fichier. Tous les exemples donnés sont fonctionnels, mais sont limités aux instructions permettant le fonctionnement de l'exemple, en excluant toute considération «environnementale». Pour autant, toutes les étapes seront commentées de façon à fournir un maximum d'aide. Selon les versions php et mysql utilisées, il peut-être nécessaire de revoir les scripts. Stockage du fichier dans une table mysql: Nous utiliserons des types de données spéciaux, qui sont les BLOBS (binary large objects). Création de la table: Nous allons créer la table «fichiers» ou seront stockés les fichiers; il faut exécuter la commande SQL de création de la table suivante: CREATE TABLE `fichiers` ( `Id` int(11) NOT NULL auto_increment, `Titre` varchar(50) default NULL, `Donnees` longblob, `Type` varchar(50) default NULL, PRIMARY KEY (`Id`), UNIQUE KEY `id` (`Id`) ) ; Cette commande peut-être exécutée en mode ligne ou via l'interface phpmyadmin de notre serveur mysql, ou encore incluse dans un script php; on ne détaillera pas ce point. La table ainsi créée comporte un identifiant Id, un Titre pour le fichier stocké (qui peut également être le nom du fichier), les données du fichier, ainsi que le type de données. Le type blob des données indique que ces données sont stockées sans modification (liés à une table de caractères, suppression des blancs ou autre), contrairement à ce qui peut se passer pour des types du genre varchar ou text; longblob indique aussi la taille maximum des données qui peuvent être stockées (tinyblob <256 octets, blob<65536, longblob< !). Attention, les données sont stockées non compressées, et demande donc l'espace disque adéquat. De plus, il faut tenir compte des capacités d'échanges entre le client et le serveur. Il est donc conseillé de tester les tailles limites Stockage de fichiers dans des tables MYSQL avec PHP 1/5

2 acceptables dans votre configuration et suivant vos besoins, de limiter vos ambitions ou d'adapter les paramètres client/serveur (max_allowed_packet, memory_limit...) et/ou votre configuration matérielle. Enfin, tenez compte des temps de transmission vers vos utilisateurs! Pour de petites images, le type blob peut-être suffisant. Stockage du fichier dans la table: Il faut tout d'abord se connecter à la base mysql ( «ma_base»); nous devrons définir quelque part les données de connexion, c'est à dire l'adresse du serveur MySql («serveur.mondomaine»), le nom d'utilisateur («mon_nom»)et le mot de passe associé («mon_mot_de_passe»). Nous définirons également le nom de la table contenant les fichiers («fichiers») et le nom du fichier à stocker («fichier»): Connexion à la base: define ("MACHINE", "serveur.mondomaine") ; define ("UTILISATEUR", "mon_nom") ; define ("BASE", "ma_base") ; define ("MOT_DE_PASSE", "mon_mot_de_passe") ; define ("TABLE", "fichiers") ; define ("FICHIER", "image.gif") ; Les définitions précédente devront être mises de préférence dans un include non accessible du serveur web, pour des raisons de sécurité. Ici, nous inclurons ces définitions dans le script unique pour des raisons de clarté. $c UTILISATEUR, MOT_DE_PASSE) ; if ( $c == 0 ) { die ("Serveur inaccessible\n") ; évite l'apparition de messages d'erreurs en cas de non connexion. A noter que l'identifiant de connexion $c peux être omis dans les appels aux fonctions mysql si une seule connexion est active. if ( mysql_select_db(base) == false ) die ("Base de donnée inaccessible\n") ; A ce point nous sommes connectés à la base et nous pouvons manipuler les données. Préparation des données: Nous devons lire le fichier dans une variable: $titre = 'Fichier test'; $type = 'image/gif'; if "r")) die("erreur d'accès au fichier ".FICHIER."\n") ; $size=filesize(fichier); $donnees = addslashes(fread($r, $size)); Après avoir défini le titre et le type du fichier (nous reviendrons en annexe sur la détermination du type de fichier), on ouvre le fichier par l'instruction fopen qui retourne une ressource de gestion de fichier; on détermine ensuite la taille du fichier. Pour le fopen, on utilise aussi pour éviter les messages d'erreurs éventuels, erreurs que l'on gère en testant le retour (erreur si retour faux) et en terminant le script avec un message d'erreur adapté si besoin. La lecture des données suit avec la fonction fread (de préférence utiliser file_get_contents qui permet de meilleures performances) qui Stockage de fichiers dans des tables MYSQL avec PHP 2/5

3 lit le fichier dans la variable $donnees. Ici on n'a pas inhibé un possible message d'erreur, car le fichier est accessible. Par contre la fonction addslashes est indispensable pour ajouter aux données les «\»qui permettent de constituer une commande SQL d'insertion dans la table non perturbée par les éventuels apostrophes ou autres caractères sensibles contenus dans le fichier. Insertion dans la table: Il ne reste plus qu'à former et exécuter le requête SQL d'insertion dans la table: $req= "INSERT INTO ".TABLE." ( Id, Titre, Donnees, Type )". " VALUES ('$id','$titre','$donnees','$type')"; mysql_query($req) or die("pas moyen d'ajouter le fichier à la table!!!"); A ce stade, nous avons réussi à stocker un fichier dans une table de la base MySql. On peut penser à récupérer l'identifiant pour une utilisation ultérieure, puisque la fonction d'autoincrément de mysql génère automatiquement un nouvel Id à chaque insertion. $id= mysql_insert_id(); print "Numéro d'identifiant dans la table: $id<br>\n"; Récupération d'un fichier stocké dans une table mysql: Nous voulons maintenant récupérer le fichier stocké dans la table, nous pouvons penser à deux utilisations: affichage par le navigateur création d'un fichier sur le serveur web affichage par le navigateur: Nous appellerons le script d'affichage en ajoutant?id=1 au nom du script, comme si ce script avait été appelé par l'exécution d'un formulaire avec la méthode «get», pour lire le fichier numéro 1. Nous commencerons notre script avec les mêmes instructions de connexion à la base que pour le stockage du fichier; ces instructions ne seront donc pas redites ici. $id=intval($_get['id']); // un minimum de securite! $req= "SELECT Titre, Donnees, Type ". "FROM ".TABLE." where Id='$id'"; $r ) or die ("Erreur: pas d'accès au fichier"); if(mysql_num_rows($r) == 1) { $type 0, "Type"); $donnees 0, "Donnees"); header("content-type: $type"); echo $donnees; else { echo "Erreur, pas trouvée le fichier"; ; On commence donc par lire l'identifiant demandé, avec une conversion en nombre entier simplement pour éviter qu'un plaisantin tente de forger une requête SQL non prévue en mettant?id=chaine_de_caracteres_pas_sympa. Stockage de fichiers dans des tables MYSQL avec PHP 3/5

4 On exécute ensuite la requête qui sélectionne le fichier ayant pour identifiant 1 dans la table (on suppose que l'on connaît les identifiant,on peut aussi sélectionner sur d'autres critères évidemment. Un message d'erreur et l'arrêt du script sont prévus en cas de requête non aboutie. Si tout se passe bien une ressource $r est renvoyée. Il ne reste qu'à tester que la requête n'a renvoyée qu'une seule image par la fonction mysql_num_rows et à récupérer les valeurs du type et des données du fichier à afficher dans les variables $type et $donnees. L'affichage lui-même consiste en l'envoi du header indiquant au navigateur le type du fichier envoyer, ce qui permet au dit navigateur de savoir comment l'afficher, puis d'envoyer les données par un simple echo. Attention: lors de l'envoi d'un header, il ne faut pas qu'un caractère ait été envoyé sur la page. Un casse-tête fréquent est lorsqu'un espace en tête du script php ou dans un include a été interprété comme du html, et donc envoyé tel que vers le navigateur, d'où l'apparition du message : «Warning: Cannot add header information - headers already sent by...». création d'un fichier: Il faut bien sur vérifier que le compte sous lequel tourne votre serveur web possède les droits d'écriture dans la zone voulue. Pour créer le fichier, il suffit de reprendre le même script que pour l'affichage, mais en le modifiant légèrement: -tout d'abord le type est inutile, puisque l'on va simplement créer un fichier, sans se préoccuper de savoir comment le gérer. -ensuite on va créer le fichier tout simplement, en utilisant par exemple le champ Titre dans la table pour lui donner son nom. $zone_accessible='/usr/ma_zone_accessible/'; $id=intval($_get['id']); // un minimum de securite! $req= "SELECT Titre, Donnees ". "FROM ".TABLE." where Id='$id'"; $r ) or die ("Erreur: pas d'accès au fichier"); if(mysql_num_rows($r) == 1) { $titre 0, "Titre"); $donnees 0, "Donnees"); echo $zone; if "w")) die("erreur: pas pu créer $titre<br>\n"); fwrite($r,$donnees); fclose($r); echo "Fichier '$titre' créé dans $zone_accessible<br>\n"; else { echo "Erreur, pas trouvé le fichier"; ; On définit donc $zone_accessible comme étant le chemin de création du fichier. La lecture de la table s'effectue comme auparavant, sans le type. On crée ensuite le fichier en concaténant le nom de la zone et le titre récupéré dans la base (attention au manque de / ou double //!!), ceci avec l'option w de fopen, avec message d'erreur si la création échoue. fopen retourne une ressource $r si tout est bon. Un fwrite écrit les données dans le fichier (en php5, on pourra utiliser file_put_contents ). En cas d'erreur du fwrite (disque plein par exemple!), le script s'arrête avec un message. fclose ferme le fichier. Stockage de fichiers dans des tables MYSQL avec PHP 4/5

5 Annexe: Détermination des types de fichiers et gestion des content-type Lorsqu'un fichier doit être traité, le logiciel de traitement doit savoir comment traiter les données qu'il contient. Certains logiciels ne peuvent traiter qu'un format de données, et ne se posent donc pas de question. D'autres au contraire, comme les navigateurs, les afficheurs d'images ou les logiciels de traitement de texte, doivent pouvoir traiter différemment les données suivant leur format: - pages html, images jpeg, video, microsoft word, wordperfect, pdf etc... Pour cela, différents moyens sont utilisés, certains pouvant être combinés: - association par l'extension: c'est ce qui se passe quand windows vous demande avec quoi ouvrir tel document; vous choisissez un logiciel adapté et windows associe l'extension du fichier au logiciel en question. Tous les fichiers seront donc traités par ce logiciel, qui appliquera un traitement standard ou qui précisera son traitement par la méthode ci-dessous: - reconnaissance d'une zone d'en tête: en général, les fichiers commencent par une zone d'en tête spécifique à leur format; en ouvrant avec un éditeur quelconque un fichier gif, on remarquera le GIF89 en début de fichier; %PDF-1.4 sera l'en tête d'un fichier pdf etc... Grâce à cette entête le logiciel saura comment traiter les données suivant leur format. -indication du mime type, notamment par l'indication content-type=... Des valeurs comme: text/html, image/png, image/gif, video/mpeg, text/css, application/x-excel sont connues, et sont associées aussi à des extensions «standards». Pour revenir à notre sujet, nous avons indiqué dans notre script de mise en table du fichier: $type='image/gif' Pour cela, nous avons simplement exprimé que nous savions que le fichier traité était un fichier gif, son type mime étant alors image/gif. Nous avons alors indiqué au navigateur dans l'entête de la réponse HTTP à l'interrogation du script: header("content-type: $type"); indiquant ainsi au navigateur quoi faire des données qui allaient suivre, car le navigateur possède une table de correspondance entre les types de données et l'action à déclencher. Pour autant, si l'on sait comment indiquer quoi faire des données, comment déterminer le type de données lorsqu'un fichier est inconnu, ou que l'on veut pouvoir traiter différents types de fichiers? Il ne semble pas y avoir de réponse vraiment universelle, mais plutôt des moyens d'y arriver dans presque tous les cas: - examen de l'extension (s'il y en a une, et si elle correspond bien au type de fichier). - décodage de l'entête (si on se limite à quelques cas connus!). - détermination du type de données par les fonctions du module php fileinfo, si installé, qui utilise un fichier magic.mime pour tenter de déterminer le type du fichier. - utilisation du content-type fourni en cas d' upload depuis un navigateur. Le type file d'un élément input de formulaire dont enctype="multipart/form-data" comme ci-dessous: <FORM enctype="multipart/form-data" ACTION="script.php" METHOD="POST"> <input type="file" name="toto" size="35"> permet, lors de l'envoi, de récupérer le type de fichier, bien sur fourni par le navigateur. $type = $_FILES['toto']['type']; Stockage de fichiers dans des tables MYSQL avec PHP 5/5

Upload de fichiers en PHP

Upload de fichiers en PHP Upload de fichiers en PHP par HERAULT Antoine Date de publication : 1er décembre 2006 Dernière mise à jour : 1er décembre 2006 Vous avez envie de permettre aux visiteurs de votre site d'uploader des fichiers

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Webmaster : Installation de l'incentive. Objet : Récupération du tag de rotation à placer sur une page de votre site.

Webmaster : Installation de l'incentive. Objet : Récupération du tag de rotation à placer sur une page de votre site. Webmaster : Installation de l'incentive Objet : Récupération du tag de rotation à placer sur une page de votre site. Connectez vous sur votre compte webmaster, puis cliquez dans le menu sur «Tag de diffusion»

Plus en détail

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)

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) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé

Plus en détail

Pour les débutants. langage de manipulation des données

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

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

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

Plus en détail

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

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2) Le langage PHP (2) Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation

Plus en détail

Utilisation et traitement des données saisies sous EndNote avec des scripts PHP/MySQL

Utilisation et traitement des données saisies sous EndNote avec des scripts PHP/MySQL Cah. Tech. Inra, 70, 47-53 Utilisation et traitement des données saisies sous EndNote avec des scripts PHP/MySQL Sabine Julien 1 et Jacques Maratray 1 Résumé : Cet article présente la façon d exploiter

Plus en détail

TP1 - Corrigé. Manipulations de données

TP1 - Corrigé. Manipulations de données TP1 - Corrigé Manipulations de données 1. Démarrez mysql comme suit : bash$ mysql -h 127.0.0.1 -u user4 -D db_4 p Remarque: le mot de passe est le nom de user. Ici user4 2. Afficher la liste des bases

Plus en détail

Interfaçage avec une base de données

Interfaçage avec une base de données Interfaçage avec une base de données Principe PHP propose de nombreux outils permettant de travailler avec la plupart des SGBD Oracle, Sybase, Microsoft SQL Server, PostgreSQL ou encore MySQL Php fournit

Plus en détail

La sécurisation d applications

La sécurisation d applications Université Toulouse 1 Sciences Sociales 10 mars 2008 Les firewalls ne suffisent plus Mais ont-ils jamais été suffisants? La protection à 100% n existe pas. De plus certains protocoles doivent absolument

Plus en détail

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

Dans l'article précédent, vous avez appris Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez

Plus en détail

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

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

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

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

PHP 4 PARTIE : BASE DE DONNEES

PHP 4 PARTIE : BASE DE DONNEES PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux

Plus en détail

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie Cours Web Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr Structured Query Language Langage de manipulation des données stockées dans une base de données interrogation/insertion/modification/suppression

Plus en détail

GESTION DES OLYMPIADES

GESTION DES OLYMPIADES GESTION DES OLYMPIADES Etape 1 : ouverture de l'application Lettres d'information aux établissements (voir les 4 lettres début d'année) Mettre à jour de la base en utilisant le bouton Paramètres. Vider

Plus en détail

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Diffusé par Le Projet Documentation OpenOffice.org OpenOffice.org Documentation Project How-To Table des matières 1. Introduction...3

Plus en détail

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

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3

www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 L i a m T A R D I E U www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 Sommaire Sommaire... 2 Eléments initiaux... 3 Base de données... 3 Tables... 4 membres... 4 commandes... 4 articles... 4 details_commandes...

Plus en détail

Rapport SQL Vincent Maréchal 3EI3-2009

Rapport SQL Vincent Maréchal 3EI3-2009 Rapport SQL Vincent Maréchal 3EI3-2009 Objectifs Les objectifs de ce cours ont été de découvrir les outils de web et la mise en ligne de fichiers sur un server ftp. De revoir les bases en html CSS et de

Plus en détail

I. MySQL : Serveur et SGBD

I. MySQL : Serveur et SGBD Le Système de Gestion de Base de Données MySQL I. MySQL : Serveur et SGBD Menu I. MySQL : Serveur et SGBG II. Création d'une base de données avec MySQL MySQL est un système de gestion et conception de

Plus en détail

L'application WinForm et le composant d'accès aux données

L'application WinForm et le composant d'accès aux données L'application WinForm et le composant d'accès aux données Vous disposez d'un squelette de l'application AntoineVersion0- ainsi que de la base de données à restaurer dans SqlServer Bd_Antoine.dat-. Travail

Plus en détail

Personnaliser un thème WordPress pour un Blog de l'ara. Méthode pas à pas.

Personnaliser un thème WordPress pour un Blog de l'ara. Méthode pas à pas. Personnaliser un thème WordPress pour un Blog de l'ara. Méthode pas à pas. Table des matières I. Les outils nécessaires... 3 II. Utilisation de l'outil Artisteer.... 3 1. Pourquoi utiliser Artisteer?...

Plus en détail

PHP et MySQL : notions de sécurité

PHP et MySQL : notions de sécurité PHP et MySQL : notions de sécurité Jean-Baptiste.Vioix@u-bourgogne.fr Dans ces quelques lignes des notions de sécurité élémentaires vont être présentées. Elles sont insuffisantes pour toute application

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

Chapitre 4. 4.1 Installation de MySQL. Au fond, est-ce que ranger ça ne revient pas un peu à foutre le bordel dans son désordre?

Chapitre 4. 4.1 Installation de MySQL. Au fond, est-ce que ranger ça ne revient pas un peu à foutre le bordel dans son désordre? Chapitre 4 Introduction à SQL Au fond, est-ce que ranger ça ne revient pas un peu à foutre le bordel dans son désordre? Philippe Geluck 4.1 Installation de MySQL Pour télécharger MySQL avec l'installateur

Plus en détail

PHP et les Bases de données - Généralités

PHP et les Bases de données - Généralités PHP et les Bases de données - Généralités Conception d une base de données Méthodes utilisées : MERISE, UML Modèle conceptuel des données MCD, Modèle logique MLD, Modèle Physique MPD. Ces aspects seront

Plus en détail

Pour développer du PHP, nous avons besoin de 3 outils : PHP, MySQL et APACHE

Pour développer du PHP, nous avons besoin de 3 outils : PHP, MySQL et APACHE PHP et éléphant, pourquoi? Tout le monde aime ce gentil animal Il rend bien des services à l'homme Il est puissant et en même temps docile Il est rapide quand il attaque (les bases de données) Les lettres

Plus en détail

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL

Plus en détail

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL Prise en main de NVU et Notepad++ (conception d application web avec PHP et MySql) Propriétés Intitulé long Formation concernée Matière Présentation Description Conception de pages web dynamiques à l aide

Plus en détail

Manuel d'utilisation d'apimail V3

Manuel d'utilisation d'apimail V3 Manuel d'utilisation d'apimail V3 I Préambule Page 3 II Présentation Page 4 III Mise en route Configuration Page 5 Messagerie Serveur smtp Serveur pop Compte pop Mot de passe Adresse mail Laisser les messages

Plus en détail

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

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org Les sites Internet dynamiques contact : Patrick VINCENT pvincent@erasme.org Qu est-ce qu un site Web? ensemble de pages multimédia (texte, images, son, vidéo, ) organisées autour d une page d accueil et

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Bases de Données & Interfaces Web. stanislas.oger@univ-avignon.fr

Bases de Données & Interfaces Web. stanislas.oger@univ-avignon.fr Bases de Données & Interfaces Web stanislas.oger@univ-avignon.fr 1 Architecture d'un SI Web Fonctionnement Dynamique avec Base de Données 2 Idée Dynamiser les pages avec des infos venant de BDD Enregistrer

Plus en détail

Projet GsbFrais virtualisation

Projet GsbFrais virtualisation Projet GsbFrais virtualisation Table des matières Première séance : deux machines physiques... 2 Où et comment s'effectue la connexion à la base de données?... 2 Quelles valeurs ont les trois variables

Plus en détail

Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML

Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML MariaDB : https://mariadb.org/ Site officiel MySQL : http://www-fr.mysql.com/ Zone pour les développeurs : http://dev.mysql.com/

Plus en détail

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

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1] SISR3 TP 1-I Le service Web [1] Objectifs Comprendre la configuration d'un service Web Définir les principaux paramètres d'exécution du serveur Gérer les accès aux pages distribuées Mettre à disposition

Plus en détail

1 Position du problème

1 Position du problème Licence Science et Technologies - INF245 Examen session 1 - mai 2012 Durée : 2 heures Documents non autorisés Le barème est donné à titre indicatif 1 Position du problème Le Club Universitaire de Vélo

Plus en détail

1 Introduction. La sécurité

1 Introduction. La sécurité La sécurité 1 Introduction Lors de l'écriture d'une application de gestion, les problèmes liés à la sécurité deviennent vite prégnants. L'utilisateur doit disposer des droits nécessaires, ne pouvoir modifier

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

Utilisation de GalaxShare

Utilisation de GalaxShare Utilisation de GalaxShare Tutoriel accessible en ligne sur http://galaxair.com/tuto/aidegalaxshare.html Le Porte-Document GalaxShare est un logiciel web de partage de documents, avec une gestion fine des

Plus en détail

PHP PHP PHP PHP. Récupération des données d'un formulaire. Syntaxe

PHP PHP PHP PHP. Récupération des données d'un formulaire. Syntaxe Lionel Seinturier Programme s'exécutant côté serveur Web du code embarqué dans une page HTML entre les balises extension.php pour les pages les fichiers.php sont stockés sur le serveur (comme des

Plus en détail

Scolasite.net, le créateur de site web au service des enseignants. Guide d'administration du site Internet. Page 1

Scolasite.net, le créateur de site web au service des enseignants. Guide d'administration du site Internet. Page 1 Guide d'administration du site Internet Page 1 Scolasite permet de créer rapidement un site Internet, sans connaissances techniques particulières. Spécialement destiné aux établissements scolaires, son

Plus en détail

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement

Plus en détail

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

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

BD50. Gestion des courses

BD50. Gestion des courses Département Génie Informatique BD50 TP7 : Développement avec le module PL/SQL de 9iAS et DBMS_EPG d'oracle 10G Gestion des courses Françoise HOUBERDON & Christian FISCHER Copyright Mai 2007 Présentation

Plus en détail

Mysql avec EasyPhp. 1 er mars 2006

Mysql avec EasyPhp. 1 er mars 2006 Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure. Déploiement d'une application Visual Studio Lightswitch dans Windows Azure. Utilisation de SQL Azure avec Lightswitch Article par Eric Vernié Microsoft France Division Plate-forme & Ecosystème SOMMAIRE

Plus en détail

PHPWEBSITE -Tutoriel image

PHPWEBSITE -Tutoriel image PHPWEBSITE -Tutoriel image La capture des images depuis le web pour mon site. L optimisation d images pour le web, 1 Préparer des images pour le Web A. Généralités 1. Les trois formats d'images sur le

Plus en détail

DOM - Document Object Model

DOM - Document Object Model DOM - Document Object Model 1 But de DOM Interfacer les langages de programmation avec les documents XML en les associant avec un modèle orienté objet DOM permet aux programmes et scripts : d'accéder et

Plus en détail

Guide Utilisateur - Guide général d'utilisation du service via Zdesktop ou Webmail. Version 2.2 - EXOCA 1. Powered by

Guide Utilisateur - Guide général d'utilisation du service via Zdesktop ou Webmail. Version 2.2 - EXOCA 1. Powered by Guide Utilisateur - Guide général d'utilisation du service via Zdesktop ou Webmail Powered by Version 2.2 - EXOCA 1 Sommaire 1. Introduction... 3 2. Configuration du client Zdesktop (option par défaut)...

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

Sauvegarde des bases SQL Express

Sauvegarde des bases SQL Express Sauvegarde des bases SQL Express Sauvegarder les bases de données avec SQL Express Dans les différents articles concernant SQL Server 2005 Express Edition, une problématique revient régulièrement : Comment

Plus en détail

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

Plus en détail

Programmation C++ (débutant)/les fichiers

Programmation C++ (débutant)/les fichiers Programmation C++ (débutant)/les fichiers 1 Programmation C++ (débutant)/les fichiers Généralité sur les fichiers La règle générale pour créer un fichier est la suivante : il faut l'ouvrir en écriture.

Plus en détail

Gestion collaborative de documents

Gestion collaborative de documents Gestion collaborative de documents ANT box, le logiciel qui simplifie votre GED Les organisations (entreprises, collectivités, associations...) génèrent chaque jour des millions de documents, e-mails,

Plus en détail

Les messages d erreur d'applidis Client

Les messages d erreur d'applidis Client Fiche technique AppliDis Les messages d erreur d'applidis Client Fiche IS00313 Version document : 1.00 Diffusion limitée : Systancia, membres du programme Partenaires AppliDis et clients ou prospects de

Plus en détail

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

SQL SERVER 2008 Le 20/10/2010

SQL SERVER 2008 Le 20/10/2010 Définitions SQL SERVER 2008 Le 20/10/2010 Une base de données est un objet particulièrement difficile à définir puisqu il est abordé en pratique selon différents points de vue : Pour un administrateur,

Plus en détail

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5 1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Installation locale de JOOMLA SEPIA

Installation locale de JOOMLA SEPIA FOAD TICE Installation locale de JOOMLA SEPIA Académie de Reims FRANÇOIS PALLUT Paternité - Pas d'utilisation Commerciale - Partage des Conditions Initiales à l'identique : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

Plus en détail

Tutoriel Drupal version 6 :

Tutoriel Drupal version 6 : 1 Tutoriel Drupal version 6 : Installation en local sous Windows et traduction 2 1. Installation de Drupal en local (sur votre pc) 1.1. Logiciels nécessaires Drupal fonctionne dans un environnement nécessitant

Plus en détail

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

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.

Plus en détail

MEDIAplus elearning. version 6.6

MEDIAplus elearning. version 6.6 MEDIAplus elearning version 6.6 L'interface d administration MEDIAplus Sommaire 1. L'interface d administration MEDIAplus... 5 2. Principes de l administration MEDIAplus... 8 2.1. Organisations et administrateurs...

Plus en détail

Tp2 Emacs Développement Web

Tp2 Emacs Développement Web Tp2 Emacs Développement Web Les indications ci-dessous donnent les grandes lignes du développement. 1/ Evenement Ajax Jquery: Le code javascript jquery suivant permet d afficher un message dans un span

Plus en détail

Installation d'un Serveur AMPP sous Gnu/Linux. (Apache Mysql Php Phymyadmin)

Installation d'un Serveur AMPP sous Gnu/Linux. (Apache Mysql Php Phymyadmin) Installation d'un Serveur AMPP sous Gnu/Linux (Apache Mysql Php Phymyadmin) AMPP : Sommaire Introduction Prérequis Installation d'apache Installation de mysql Installation de php4 et phpmyadmin Configuration

Plus en détail

Formation PHP débutant

Formation PHP débutant Formation PHP débutant Table des matières 1 Le principe de PHP 3 1.1 Langage côté serveur.................................. 3 1.2 Pour travailler..................................... 3 1.3 Langage de pré-processing...............................

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

(structure des entêtes)

(structure des entêtes) Aide mémoire HTTP (structure des entêtes) Fabrice HARROUET École Nationale d Ingénieurs de Brest http://www.enib.fr/~harrouet/ enib 1/10 Structure générale d une requête Requête HTTP méthode ressource

Plus en détail

Espace numérique de travail collaboratif

Espace numérique de travail collaboratif Espace numérique de travail collaboratif 1/10 Présentation Agora Project est un espace de travail collaboratif complet et intuitif. Cette application est accessible partout et à tout moment, via un simple

Plus en détail

Espace de travail collaboratif

Espace de travail collaboratif Espace de travail collaboratif 1/10 Table des matières Présentation...3 Les modules...4 LiveCounter, Messenger et Moteur de recherche...5 Utilisateur, Administrateur et Invité...5 Droits d'accès au contenu...6

Plus en détail

Programmation orientée objet et interfaces web en PHP

Programmation orientée objet et interfaces web en PHP Programmation orientée objet et interfaces web en PHP La programmation objet avec PHP5 Bases de données et interfaces web Fonctionnement des sessions Nicolas Moyroud Cemagref - UMR TETIS 26 Juin 2008 Programmation

Plus en détail

Module http MMS AllMySMS.com Manuel d intégration

Module http MMS AllMySMS.com Manuel d intégration Module http MMS AllMySMS.com Manuel d intégration Objectif du document... 3 1 Envoi de MMS par requête http... 4 1.1 Format de la requête utilisée... 4 1.2 Arborescence et explication des balises du flux

Plus en détail

Le stockage local de données en HTML5

Le stockage local de données en HTML5 Le stockage local HTML5, pourquoi faire? Dans une optique de réduction des couts de maintenance, de déploiement, beaucoup d'entreprises ont fait le choix de migrer leurs applicatifs (comptables, commerciales,

Plus en détail

Rapport d'architecture

Rapport d'architecture Romain Alexandre Cécile Camillieri Rapport d'architecture 1 / 12 Table des matières I) Description du projet p. 3 1) Canaux de communication p. 3 2) Diagrammes de cas d'utilisation p. 3 II) Gestion des

Plus en détail

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel Guide débuter avec WHM 1 / Introduction WHM signifie Web Host Manager (ou gestionnaire d'hébergement web). WHM va donc vous permettre de gérer des comptes d'hébergement pour vos clients. (création de compte,

Plus en détail

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3 Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3 Introduction Le Service Pack 2 de SQL Server 2005 a ajouté une option de gestion et d utilisation

Plus en détail

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB Installation et administration d un serveur web Module 25793 TP A5 (1/2 valeur) Chapitre 1 Fonctionnalités d un serveur web, le protocole

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE Le responsable de la société Itaste utilise une application installée sur son poste : elle est programmée en VBA sous Microsoft Access et pourvue d une

Plus en détail

La sécurité pour les développeurs. Christophe Villeneuve @hellosct1

La sécurité pour les développeurs. Christophe Villeneuve @hellosct1 La sécurité pour les développeurs Christophe Villeneuve @hellosct1 Qui... est Christophe Villeneuve? afup lemug.fr mysql mariadb drupal demoscene firefoxos drupagora phptour forumphp solutionlinux demoinparis

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

Projets. Conception de Sites Web dynamiques. Programme. Projets. Présentation d'un sujet du web 06/03/2010. Cours 7.

Projets. Conception de Sites Web dynamiques. Programme. Projets. Présentation d'un sujet du web 06/03/2010. Cours 7. Projets Conception de Sites Web dynamiques Cours 7 Patrick Reuter 1. Site de rencontre (utilisateurs, rechercher un correspondant) 2. Messagerie privée (éventuellement à combiner avec 1.) 3. Gestion d

Plus en détail

Fireforce. Guide utilisateur

Fireforce. Guide utilisateur Fireforce Guide utilisateur Table des matières Fireforce...1 Installation...3 Logiciel requis...3 Récupération de l'exécutable...3 Installation...3 Utilisation de deux profils Firefox en même temps (optionnel)...3

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail