Le document décortique une interaction HTML-PHP-SQL puis donne le corrigé pour les exercices 1 à 4.



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

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

Attaques applicatives

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

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Formulaire pour envoyer un mail

TP JAVASCRIPT OMI4 TP5 SRC

Mysql avec EasyPhp. 1 er mars 2006

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

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

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)

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

PDO : PHP Data Object 1/13

Stockage du fichier dans une table mysql:

Mise en place d un serveur Proxy sous Ubuntu / Debian

Formulaires et Compteurs

Pratique et administration des systèmes

Module BD et sites WEB

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

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

Attaques de type. Brandon Petty

Bases de Données et Internet

Création de formulaires interactifs

PHP 4 PARTIE : BASE DE DONNEES

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

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

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

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

CREATION WEB DYNAMIQUE

BTS/CGO P10 SYSTEME INFORMATION Année

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

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

TD HTML AVEC CORRECTION

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

SYSTÈMES D INFORMATIONS

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

Activités HTML. Code: act-html

Gestion de stock pour un magasin

NAMEBAY PRO. votre site de revente de noms de domaine en marque blanche. Documentation technique

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

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

Sécurité des applications web. Daniel Boteanu

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

Ces Lettres d informations sont envoyées aux extranautes inscrits et abonnés sur le site assistance (voir point N 3).

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

Bienvenu. Panneau de contrôle. Ajout de nouveaux utilisateurs. 1. Modification du modèle d' de bienvenue

VTX FTP. Transfert de fichiers business par FTP - Manuel de l'utilisateur. Informations complémentaires : info@vtx.

Séance d ED n 5 : HTML et JavaScript

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

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

1 Position du problème

Gestion du service des enseignements

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

8 rue Paul Cézanne Neuilly-Plaisance - Tél : 33 (0) Fax : 33 (0) cvm@cvm.

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

COURS DE MS EXCEL 2010

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

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Utiliser un CMS: Wordpress

SQL Server et Active Directory

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

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

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

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

Gestion de base de données

La double authentification dans SharePoint 2007

Utilisation d Hyperplanning 2011

Programmation Web TP1 - HTML

Groupe Eyrolles, 2003, ISBN : X

Présentation Windows Azure Hadoop Big Data - BI

PROJET 1 : BASE DE DONNÉES REPARTIES

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

Maitriser Cegid Business En situation de formation

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

Connexion au panneau de contrôle du Cloud Service Portal (CSP)

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

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

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

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

Comment créer un nouveau compte? 1/2- Pour le consommateur

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

Mise en oeuvre d un Serveur de CD AXIS StorPoint

API SMS CONSEIL HTTP V2.01. Sommaire. Documentation V1.0 au 21/05/2011

AJOUTER UN COMPTE DE MESSAGERIE SUR UN SMARTPHONE

RÉALISATION D UN SITE DE RENCONTRE

Manuel : Comment faire sa newsletter

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

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

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

Application web de gestion de comptes en banques

Configuration de WebDev déploiement Version 7

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

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

INSTALLATION DE PEGASUS MAIL 3.12 c FR Avec l interface Harp

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

Mon-complement-retraite.com Aide en ligne

Transcription:

Le document décortique une interaction HTML-PHP-SQL puis donne le corrigé pour les exercices 1 à 4. I Affichage du formulaire et envoi de données A gauche le code d'une page HTML et à droite son affichage dans un navigateur : <html> <body> <form action="http://rdorat.free.fr/produits.php" method="post"> LOGIN : <input type="text" name="login"> Choississez une catégorie de produit : CD : <input type="radio" name="produit" value="cd"> DVD : <input type="radio" name="produit" value="dvd"> livre : <input type="radio" name="produit" value="livre"> <input type="submit" value="identification"> </form> </body> </html> A noter que la page HTML peut avoir été récuperée depuis le serveur rdorat.free.fr, sur un autre serveur ou peut être stockée sur une machine locale. L'utilisateur remplit le formulaire : Lorsque l'utilisateur clique le bouton identification, le navigateur / client appelle la page http://rdorat.free.fr/produits.php avec le message suivant qui envoie les valeurs pour les variables du formulaire : login : produit : Dupont DVD

II-Execution de la page Produits.php La page PHP Produits.php est de cette forme : $login=$_post["login"]; $prod=$_post["produit"]; $requetesql="select nomprod, descriptif FROM Produit WHERE typeprod='$prod';"; $connect=mysql_connect("nomserveur","monlogin", "monpassword"); mysql_select_db("nomdb",$connect); $result=mysql_query($requetesql); echo "Les produits de type : $prod"; while($row[0]) echo "$row[0] : $row[1]\n";?> Les lignes s'exécutent l'une après l'autre : $login=$_post["login"]; $prod=$_post["produit]; $requetesql="select nomprod, descriptif FROM Produits WHERE typeprod='$prod';"; Après ces lignes, la variable $login contient "Dupont", la variable $prod contient "DVD", la variable $requetesql contient "SELECT nomprod, descriptif FROM Produit WHERE typeprod='dvd';". Les deux lignes suivantes permettent d'ouvrir une connexion avec un serveur de base de données et de sélectionner une base de données : $connect=mysql_connect("sql.free.fr","admin", "546787"); mysql_select_db("produit",$connect); Ici on se connecte au serveur sql.free.fr avec le login admin et le password 546787, puis on sélectionne la base de données "Produit". L'instruction $result=mysql_query($requetesql); appelle l'exécution de la requête contenue dans la variable $requetesql.

III- Exécution de la requête sur le serveur de base de données La base de données "Produits" sélectionnée est organisée de la manière suivante : Table Produit : nomprod descriptif typeprod Le nouveau testament Guitry DVD Mozart Requiem CD Lettres de Mon Moulin Daudet Livre Bataille Midway 180 minutes DVD Table achat : nomprod login possede Le nouveau testament Dupont 1 Mozart Dupont 0 Lettres de Mon Moulin Durant 1 Bataille Midway Durant 1 Bataille Midway Paul 0 Mozart Paul 1 L'exécution de la requête "SELECT nomprod, descriptif FROM Produit WHERE typeprod='dvd'; se fait alors selon 3 étapes : FROM Produit La table Produit est sélectionnée : nomprod descriptif typeprod Le nouveau testament Guitry DVD Mozart Requiem CD Lettres de Mon Moulin Daudet Livre Bataille Midway 180 minutes DVD WHERE typeprod="dvd" Les lignes sélectionnées sont : nomprod descriptif typeprod Le nouveau testament Guitry DVD Bataille Midway 180 minutes DVD SELECT nomprod,descriptif Le tableau final renvoyé est donc : nomprod Le nouveau testament Bataille Midway descriptif Guitry 180 minutes

IV- Suite et fin de l'exécution en php : La variable $result reçoit le résultat de la requête SQL : nomprod Le nouveau testament Bataille Midway descriptif Guitry 180 minutes L'instruction $row=mysql_fecth_row($result") conduit à ce que la variable $row contienne : Le nouveau testament Guitry echo "Les produits de type : $prod\n"; affiche "Les produits de type : DVD\n" dans la page HTML résultante : Les produits de type : DVD La boucle complète l'écriture du document, on obtient le code de page HTML renvoyée : Les produits de type : DVD Le nouveau testament : Guitry Bataille Midway : 180 minutes Cette page est enfin renvoyée au navigateur qui affiche : Les produits de type : DVD Le nouveau testament : Guitry Bataille Midway : 180 minutes

Exercice 1- Le code expliqué ligne à ligne Déclaration d un code php $ref=$_post["refproduit"]; Récupération de la variable refproduit $requetesql="select nomproduit, prix From Produit Where Création de la requête SQL ref= $ref "; $connect=mysql_connect("nomserveur","monlogin", Connexion au serveur "monpassword"); mysql_select_db("nomdb",$connect); Selection de la base de données $result=mysql_query($requetesql); Execution de la requête et récupération. $result est le tableau résultat Récupération de la première ligne du tableau résultat Echo "Les ( ) $row[0] de $ref"; Affichage dans la page HTML résultante Echo ""; Affiche d'une instruction de saut de ligne dans la page HTML résultante Echo "Le prix: $row[1] Affichage dans la page HTML résultante?> Balise de fermeture de php Exercice 2 le code expliqué mis en ligne $nom=$_post["nom"]; $prénom=$_post["prénom"]; $requetesql="insert into Connexion (nom,prénom) VALUES ( $nom, $prenom )"; $connect ( ) Mysql_select_db ( ) $result=mysql_query($requetesql); Récupération variable nom Récupération variable prénom Création de requête SQL / insertion en base Connection au serveur Selection de la base de données Exécution de la requete Exercice 3: simulation d'une connexion à la base de données La page HTML : <form action="a.php" method="post"> Login : <input type="text" name="login"> Password : <input type="text" name="password"> <input type="submit" value="envoi pour identification"> </form> La page a.php : <html> Echo "Saisissez votre login et votre mot de passe" $login=$_post["login"]; $pass=$_post["password"]; $requetesql="select count (*) login, password From Users Where login='$login' And password=''$pass';"; $connect=mysql_connect("nomserveur","monlogin", "monpassword"); mysql_select_db("nomdb",$connect); $result=mysql_query($requetesql); If($row >=1)

echo "identification reussie"; else echo "Connecté";?> </html> Exercice 4: $nom=$_post ["nom"] $requetesql1="select count (*) nom From Users Where nom='$nom'"; $requetesql2="insert into Users (nom) VALUES ( $nom );"; $connect=mysql_connect("nomserveur","monlogin", "monpassword"); Mysql_select_db("nomdb",$connect); $result1=mysql_query($requetesql1); If( $row >=1) Echo "Vous êtes identifiés"; Else $result2=mysql_query($requetesql2); Echo "Vous êtes désormais inscrit";?>