Université Bordeaux Segalen Licence 3 MIASHS, semestre 6 (2014/2015)



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

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

Pratique et administration des systèmes

CREATION WEB DYNAMIQUE

PHP 4 PARTIE : BASE DE DONNEES

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)

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

Stockage du fichier dans une table mysql:

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

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

RÉALISATION D UN SITE DE RENCONTRE

1. Base de données SQLite

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

SUPPORT DE COURS / PHP PARTIE 3

I. MySQL : Serveur et SGBD

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

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

Tutoriel : Créer un site web simple avec Composer. Fiche consigne Page 1 sur 6

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

Mysql avec EasyPhp. 1 er mars 2006

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

Bases de données relationnelles

Attaques applicatives

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

Je communique par

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

Olivier Mondet

Bureautique Initiation Excel-Powerpoint

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

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

GUIDE NSP Activation et gestion des produits avec NSP

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

Module BD et sites WEB

Manuel d utilisateur 1

Procédure d enregistrement des étudiants sur le portail «Student Engineering & Design Community» d Autodesk :

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

TP JAVASCRIPT OMI4 TP5 SRC

PARTAGER UN ANNUAIRE COLLECTIF DE SIGNETS AVEC DEL.ICIO.US

1 Position du problème

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

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

Accès aux bases de données

Diffuser un contenu sur Internet : notions de base... 13

SYSTÈMES D INFORMATIONS

Découverte des applications de la suite

Déploiement des manuels numériques sur tablette. Mode d emploi intégrateur / administrateur

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

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Portail du Consommateur. Guide d utilisation. Du dépôt de requêtes

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

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

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

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

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Utiliser un CMS: Wordpress

Rapport de stage Nicolas PLAZE Licence Pro A2I. Rapport de Stage LICENCE PRO A2I. Société INFHOTIK. Nicolas PLAZE

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Paginer les données côté serveur, mettre en cache côté client

Ak Documentation

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

Insérer des images dans Base

PROJET ISLAH TEMPUS IT-TEMPUS-SMHES. Projet financé par PLATEFORME ISLAH MANUEL D UTILISATION SECTION ENTREPRISES

Outil de démonstration : Application PassNFC

Astuce N 1 : Consulter mon catalogue articles en mode liste puis en mode fiche : recherche du prix d'une référence, consultation du stock

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

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

GUIDE DE DEMARRAGE V1.02

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Gestion de base de données

Les BASES de DONNEES dans WampServer

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

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

Documentation de conception

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

Créer un site e-commerce avec Dreamweaver CS4 et PHP/MySQL

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Allocation Régionale de Recherche de Doctorat 2015

PDO : PHP Data Object 1/13

Compte Rendu d intégration d application

Portail de saisie en ligne

mon site web via WordPress

Création et Gestion des tables

1 Introduction et installation

Guide Utilisateur MANTIS. Sommaire. Objet du document :

PHP. PHP et bases de données

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

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

Manuel BlueFolder ADMINISTRATION

sécurisé de l ENSMM Accès au serveur FTP - Microsoft Windows 7 École Nationale Supérieure de Mécanique et des Microtechniques

Gestion de stock pour un magasin

LIMESURVEY. LimeSurvey est une application permettant de créer des questionnaires d enquête en ligne et d en suivre le dépouillement.

PLATEFORME ANTI-CORRUPTION AU CAMEROUN

Configuration des logiciels de messagerie

Installation d'un serveur FTP géré par une base de données MySQL

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

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

Transcription:

Université Bordeaux Segalen Licence 3 MIASHS, semestre 6 (2014/2015) Conception de Sites Web Dynamiques : TD 7 Inscription de membres - Variables de sessions - Formulaires pour insérer des images Version temporaire du 31 Mars 2015 1 Objectif Dans ce TD7, nous allons implémenter une gestion de membres pour un site Internet. Exercice 7.1 Création d une table de la base de données 1. Créer une table dans votre base de données qui s appelle membre avec les champs suivants : un champs INT qui s appelle id avec les attributs clé primaire ainsi que autoincrement (A I), un champs TEXT qui s appelle pseudo, et un champs TEXT qui s appelle motdepasse, un champs TEXT qui s appelle prenom, un champs TEXT qui s appelle nom, ainsi qu un champs TEXT qui s appelle email, un champs INT qui s appelle id categorie, ainsi qu un champs DATETIME qui s appelle dateinscrit. Table membre id pseudo motdepasse nom prenom email id categorie dateinscrit INT TEXT TEXT TEXT TEXT TEXT INT DATETIME 1 xabi Xabi Lagarde x.lagarde@live.fr 1 2010-03-21 18:32:31 2 skater Patxi Berthaud patxi33@free.fr 3 2011-08-06 23:22:17 2. Créer donc quelques enregistrement dans cette table. L interface phpmyadmin vous précise les requêtes INSERT après chaque insertion d enregistrement. Notez la requête INSERT dans le cadre ci-dessous, afin de l utiliser plus tard. Exercice 7.2 Création d une deuxième table de la base de données Dans cet exercice, on créera une table categorie qui permet de définir plusieurs categories de votre membre, de type étudiant, salarié, etc. Table categorie id nom INT TEXT 1 Etudiant 2 Salarié 3 Autre 1. Créer quelques enregistrement dans cette table, et notez la requête INSERT :

2 Variables de session Dans ce TD, vous allez apprendre à utiliser les variables de session. Le tableau associatif des variables de session ($ SESSION) permet d enregistrer des informations qui pourront être utilisé tout au long d une session d un utilisateur donné, et en particulier sur plusieurs pages web d un site web, sans passer à chaque fois par des paramètres dans l URL ou par des formulaires. Pour cela, en tout début de chaque page PHP (aucun caractère doit être devant la balise php), mettez le code suivant : <?php session_start();?> Bien sûr, vous pouvez placer cette instruction aussi au tout début du fichier entete.php, étant donné que ce fichier est inclus en tout début de chaque page PHP. Exercice 7.3 Connexion 1. Créer une page PHP connexion.php qui permet à un membre de se connecter au site (un formulaire avec un champ texte s appelant pseudo et un champ mot de passe s appelant motdepasse ainsi qu un bouton valider), et qui renovoie à la page verifier connexion.php. 2. Créer la page PHP verifier connexion.php qui vérifie si le membre donné existe dans la base de données. Vous pouvez utiliser de la requête suivante, qui utilise la clause WHERE : // exécuter une requete MySQL de type SELECT.. WHERE $requete = "SELECT * FROM membres WHERE pseudo =?"; $reponse = $pdo->prepare($requete); $reponse->execute(array($_post[ pseudo ])); // récupérer tous les enregistrements dans un tableau $enregistrements = $reponse->fetchall(); // connaitre le nombre d enregistrements $nombrereponses = count($enregistrements); // tester si un enregistrement existe (on suppose qu un m^eme pseudo n existe qu une fois!) if ($nombrereponses > 0) if ($enregistrements[0][ motdepasse ] ==..) else else 2

3. Si le membre n existe pas (donc si la variable $nombrereponses est 0), afficher un message, ainsi qu un lien hypertexte qui renvoie vers la page connexion.php. 4. Si le membre existe, vérifier si le mot de passe correspond bien à celui stocké dans la base de données. S il ne correspond pas, afficher un message, ainsi qu un lien hypertexte qui renvoie vers la page connexion.php. 5. Si le membre existe et le mot de passe correspond, afficher un message de bienvenu. De plus, affectez les deux variables de session $ SESSION[ pseudo ] ainsi que $ SESSION[ membre id ] avec le pseudo et son identifiant, respectivement. Remarque : Si le pseudo est stocké dans une variable intitule $pseudo, c est uniquement l affectation $ SESSION[ pseudo ] = $pseudo. Exercice 7.4 Informations uniquement pour les membes Créer une nouvelle page, p. ex. secret.php, qui affiche des informations accessibles uniquement pour les membres du site, et le message Accès interdit! pour les non-membres. Remarque : il suffit de tester si la variable de session $ SESSION[ membre id ] est supérieur à 0 Exercice 7.5 Déconnexion Créer une nouvelle page deconnexion.php qui permet au membre de se déconnecter. Remarque : il suffit d affecter les variables de sessions à 0! Exercice 7.6 Page info du membre Ecrire une nouvelle page membre infos.php que vous pouvez appeler membre infos.php?id=3 par exemple, et qui permet d afficher les informations relatif au membe id. Par contre, afficher uniquement les informations confidentielles, telle que l adresse email dans cet exemple, pour le membre connecté! Remarque : il suffit de tester si la variable de session $ SESSION[ membre id ] est égal à l identifiant id passé en paramètre. Exercice 7.7 Afficher tous les membres 1. Créer une page PHP afficher.php qui permet d afficher tous les membres de la table membres. Pour la mise en forme, utilisez des tables. Comme dans les 2 derniers TDs, un exemple de parcourir les enregistrements (sans la mise en forme) se trouve ci-dessous : <?php // exécuter une requete MySQL $requete = "SELECT * FROM membre;"; $reponse = $pdo->prepare($requete); $reponse->execute(); // récupérer tous les enregistrements dans un tableau $enregistrements = $reponse->fetchall(); // connaitre le nombre d enregistrements $nombrereponses = count($enregistrements); // parcourir le tableau des enregistrements for ($i=0; $i<count($enregistrements); $i++) echo $enregistrements[$i][ pseudo ]; echo $enregistrements[$i][ email ];?> 3

Exercice 7.8 Formulaire d inscription d un nouveau membre Travailler d abord en local avec EasyPHP! Pour chaque page PHP, réutilisez l en-tête et pied de page en les incluant au début et à la fin, comme on a vu dans le dernier TD6. Aujourd hui, on travaillera dans le dossier td7. Dans votre fichier en-tête entete.php, incluez le fichier connexion base.php en l incluant en tout début de fichier avec require_once("connexion_base.php"); Dans cet exercice, nous créons le formulaire d inscription d un nouveau membre membre.php. 1. Créer un formulaire qui renvoie vers la page enregistrer membre.php avec la méthode post: <form action="enregistrer_membre.php" method="post"> </form> 2. Dans le formulaire, permettez de renseigner les champs suivant : Un champ text étiqueté pseudo (donc avec la propriété name="pseudo" permettant de définir un pseudo pour le membre. Un champ password étiquettés motdepasse permettant de renseigner le mot de passe du membre. Un champs text étiqueté prenom permettant de définir le prénom du membre, et un champ text étiqueté nom permettant de définir le nom du membre, ainsi qu un champ text étiqueté email permettant de renseigner l email du membre. Pemettez également de renseigner la catégorie du membre, étiqueté categorie. Pour cela, vous allez créer un menu déroulant qui propose les choix possible. Créer ce menu déroulant à partir de votre table categorie. Le résultat devrait donc être : <select name="categorie"> <option value="1">etudiant</option> <option value="2">salarié</option> <option value="3">autre</option> </select> En dernier, rajouter un bouton submit étiquetté Valider permettant de soumettre votre formulaire. 4

Exercice 7.9 Page d enregistrement du formulaire du membre renseigné avec PHP. Dans cet exercice, vous allez créer le fichier enregistrer membre.php qui affichera un récapitulatif de tous les valeurs du formulaire renseignées, et qui insérera les données dans la table membre de la base de données. 1. Récuperez les paramètres du formulaire avec la méthode $ POST en PHP, et stockez-les dans les variables $pseudo, $motdepasse, $email, $prenom, et $nom. 2. Affichez un récapitulatif des données en utilisant ces variables. 3. Afin d insérez les données dans votre table membres, nous allons utiliser l instruction MySQL INSERT. Afin d exécuter cette requête d une manière efficace et sécurisé, nous allons utiliser les instruction préparées de PDO. Ceci consiste à remplacer l exécution directe de la requête ($pdo->query($requete)) par deux instructions : 1. la préparation ($pdo->prepare($requete)) de la forme de la requête en mettant des points d interrogations à la place des données, et 2. l exécution ($pdo->execute(array())) de la requête en spécifiant un tableau de données qui remplacera les points d interrogations. <?php // exécuter une requete MySQL de type INSERT $requete="insert INTO membre (pseudo,motdepasse,nom,prenom,email,id_categorie,dateinscrit) VALUES (?,?,?,?,?,?, NOW())"; $reponse=$pdo->prepare($requete); $reponse->execute(array($pseudo, $motdepasse, $nom, $prenom, $email, $id_categorie));?> 4. Vérifiez que la requête INSERT correspond bien à celle de l exercice 8.1. 5. Rajoutez un lien hypertexte permettant de renvoyer à la page connexion.php. 5

Exercice 7.10 Mise en forme du formulaire avec le Framework Bootstrap Dans cette exercice, nous allons utilisé la framework Bootstrap pour la mise en forme de votre formulaire formulaire.php. 1. Copiez votre fichier membre.php dans un fichier membre bootstrap.php. 2. Utilisez le form builder sur http://minikomi.github.io/bootstrap-form-builder/. Reproduisez votre formulaire de l exercice 8.3. 3. En cliquant sur Render, examinez le code source de votre formulaire. 4. Copiez ce formulaire dans votre fichier membre bootstrap.php, et éditez la propriété action ainsi que les étiquettes name des champs afin que cela concorde avec votre ancien fichier membre.php. 6