Cours 10 Formulaires Web pour saisie de données dans une base de données relationnelle avec PHP (partie 2 de 2)



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

CREATION WEB DYNAMIQUE

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

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

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

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

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

CATALOGUE FORMATIONS DOMAINE Bases de données

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. PHP et bases de données

BTS/CGO P10 SYSTEME INFORMATION Année

PHP 4 PARTIE : BASE DE DONNEES

Formation : WEbMaster

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

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

RÉALISATION D UN SITE DE RENCONTRE

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

1. Base de données SQLite

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

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

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

Migration d une Base de données

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Bases de données relationnelles

Attaques applicatives

Java DataBaseConnectivity

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

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

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

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

SQL Historique

Olivier Mondet

NOTICE TELESERVICES : Créer mon compte personnel

IFT3030 Base de données. Chapitre 1 Introduction

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

PROJET 1 : BASE DE DONNÉES REPARTIES

Modélisation et Gestion des bases de données avec mysql workbench

Cours Bases de données 2ème année IUT

INTERCONNEXION ENT / BCDI / E - SIDOC

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Installation poste de travail. Version /02/2011

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

Stockage du fichier dans une table mysql:

Installation de Concrete 5

SYSTÈMES D INFORMATIONS

Cliquez sur ILIAS. Puis, cliquez sur Login.

INTERCONNEXION ENT / BCDI / E - SIDOC

Objectifs du TP : Initiation à Access

Mysql avec EasyPhp. 1 er mars 2006

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Guide d installation de Gael

Manuel du logiciel PrestaTest.

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

Pratique et administration des systèmes

Installation de Joomla avec Filezilla

EXTENSION WORDPRESS. Contact Form 7. Proposé par :

équipement radio Procédure

Création et Gestion des tables

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

Présentation du module Base de données spatio-temporelles

WDpStats Procédure d installation

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

1 Position du problème

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Bureautique Initiation Excel-Powerpoint

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Cours: Administration d'une Base de Données

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

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

CATALOGUE DES FORMATIONS 2014

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

TP Contraintes - Triggers

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Cours Bases de données 2ème année IUT

AIDE A LA CREATION D UN COMPTE NOM DE DOMAINE, SOUS-DOMAINE, FTP, BASE DE DONNEES

I. MySQL : Serveur et SGBD

Les BASES de DONNEES dans WampServer

GUIDE D'INSTALLATION DU PGI EBP EN ETABLISSEMENT

NOTICE TELESERVICES : Gérer les contrats de paiement de l impôt sur le revenu

Utilisation d Hyperplanning 2011

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Les bases de données

MS SQL Express 2005 Sauvegarde des données

Le langage SQL (première partie) c Olivier Caron

Accès aux bases de données

Online Workflow. Approbation factures

Procédure d import des bases de données GestCab vers Médicab version 10.

[Ministère des Affaires étrangères et du Développement international] DEFI MANUEL UTILISATEUR ESPACE DEMANDEUR

SERVEUR DE MESSAGERIE

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Devenez un véritable développeur web en 3 mois!

Transcription:

École de bibliothéconomie et des sciences de l information SCI6306 Bases de données documentaires Cours 10 Formulaires Web pour saisie de données dans une base de données relationnelle avec PHP (partie 2 de 2) Faculté des arts et des sciences 13 novembre 2015 Christine Dufour, 2015 1/ 13

SCI6306 2/ 13 Au programme aujourd hui Intégration Web d une base de données MySQL pour l enregistrement de données Partie 2 : Préparation du code PHP pour enregistrer les données Travail en laboratoire : Volet C (Partie A)

SCI6306 3/ 13 Approche utilisée PHP pour non programmeurs! Approche des «blocs de construction» : chacun des blocs se traduit en différents morceaux de codes Présentation dans les acétates des différents blocs de code avec identification des éléments à modifier (éléments indiqués en italique bleu)

SCI6306 4/ 13 Code PHP pour enregistrer des données [1/2] 5blocspour enregistrer des données dans la table X de la base de données Y 1. Connexion avec la base de données Y 2. Préparation de la requête SQL pour l ajout des données dans la table X 3. Exécution de la requête SQL en précisant les valeurs à saisir 4. Fermeture de la requête 5. Fermeture de la base de données Caractéristiques générales d une page PHP Fichier avec extension.php Code PHP encadré par une balise d ouverture <?php et de fermeture?> Le code présenté correspond à l exemple «demo-formulaire»

SCI6306 5/ 13 Code PHP pour enregistrer des données [2/2] Structure générique pour enregistrement try { [Blocs 1 à 5] } // Gestion des erreurs catch(exception $e) { exit('erreur : '.$e->getmessage()); }

SCI6306 6/ 13 Nom d usager sur serveur MySQL Code PHP pour enregistrer : Bloc 1 1. Connexion avec la base de données $pdo_options[pdo::attr_errmode] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=sci6306a15-eq01', 'sci6306a15-eq01', 'mdp', $pdo_options); $bdd->exec("set CHARACTER SET utf8"); Considérations particulières Mot de passe sur serveur MySQL Nom de la base de données MySQL Comme les informations d identification sur le serveur sont passées en clair dans le code, ce bloc n est habituellement pas inséré directement dans le code PHP, pour des raisons de sécurité. On place cette information dans un fichier séparé (nommé ouverture_bd.php dans l exemple utilisé), fichier que l on dépose dans un dossier App_Data, dossier qui fait l objet d une protection particulière sur le serveur. Dans le fichier PHP qui sert à l enregistrement des données, on insère ce fichier en l appelant avec une commande INCLUDE : include 'App_Data/ouverture_bd.php'; Chemin relatif pour se rendre jusqu au fichier contenant le bloc d instruction

SCI6306 7/ 13 Code PHP pour enregistrer : Bloc 2 2. Préparation de la requête SQL pour enregistrer les données $requete_ajout = $bdd->prepare('insert INTO donnees (q1, q2_1, q2_2, q2_3, q3, q4, q5, q5_autre, q6) VALUES (:q1, :q2_1, :q2_2, :q2_3, :q3, :q4, :q5, :q5_autre, :q6);'); À noter : La requête pour l ajout est une requête SQL INSERT INTO. Pour un formulaire permettant la modification des données, il s agirait plutôt d une requête UPDATE. Les valeurs à verser dans la table ne sont pas définies dans la requête. Elles sont représentées, à cette étape, par des variables avec la syntaxe :nom_variable. Les valeurs de ces variables seront définies dans le bloc suivant.

SCI6306 8/ 13 Code PHP pour enregistrer : Bloc 3 3. Exécution de la requête et définition des variables $requete_ajout->execute(array('q1' => $_POST['q1'], 'q2_1' => $_POST['q2_1'], 'q2_2' => $_POST['q2_2'], 'q2_3' => $_POST['q2_3'], 'q3' => $_POST['q3'], 'q4' => $_POST['q4'], 'q5' => $_POST['q5'], 'q5_autre' => $_POST['q5_autre'])); À noter : Array = vecteur i.e. la liste des variables avec leurs valeurs Syntaxe générique array('nom_var1'=>valeur1, 'nom_var2'=>valeur2) Les valeurs des variables sont les valeurs conservées dans les contrôles du formulaire que l on peut interpeller avec la syntaxe $_POST['nom_controle1'] (formulaire avec méthode POST)

SCI6306 9/ 13 Code PHP pour enregistrer : Blocs 4 et 5 // Bloc 4 : fermeture de la requête $requete_ajout->closecursor(); // Bloc 5 : fermeture de la base de données $bdd=null; À noter : il est important de toujours fermer les requêtes et la base de données.

SCI6306 10 / 13 Où placer le code? [1/2] Scénario 1 : Dans un fichier à part du fichier du formulaire, au début du fichier Fichier merci.php Scénario à retenir lorsque l on veut, après avoir soumis le formulaire, aller à une autre page, comme par exemple, ici, à une page de remerciement.

SCI6306 11 / 13 Où placer le code? [2/2] Scénario 2 : Dans le même fichier que celui contenant le formulaire, au début du fichier Particularité : Le code pour l enregistrement est inséré dans une condition IF pour qu il ne s exécute que si la page a été rechargée après avoir cliqué sur le bouton de soumission. Fichier superviseur.php Ici, le bouton avait pour nom «bouton_superviseur» et sa valeur, lorsque cliqué, est «Enregistrer». Scénario à retenir lorsque l on veut permettre la saisie en continu de plusieurs réponses au formulaire, comme, par exemple, pour la saisie de nouveaux superviseurs pour InfoStage.

SCI6306 12 / 13 Exemple d interface complexe [1/2] Bouton 1 : Nouveau Recharge la page. Bouton 2 : Modifier Sur la base du choix du menu déroulant, recharge la page en donnant comme valeurs aux différents contrôles les données du stage choisi (requête SELECT). Bouton 4 : Supprimer Supprime les données du stage affiché (requête DELETE). Bouton affiché uniquement lors de la modification d un stage existant. Bouton 3 : Enregistrer Enregistre les données : Requête INSERT INTO s il s agit d un nouveau stage, Requête UPDATE s il s agit d un stage existant. C est ici que les contraintes additionnelles sont validées.

SCI6306 13 / 13 Exemple d interface complexe [2/2] L action du formulaire associé aux boutons consiste à recharger la page. Grâce aux différentes conditions IF, seules les instructions PHP correspondant au bouton ayant provoqué la «recharge» de la page seront exécutées.