Guide de survie html/php/mysql

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

SYSTÈMES D INFORMATIONS

TP JAVASCRIPT OMI4 TP5 SRC

PDO : PHP Data Object 1/13

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

Attaques applicatives

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

Pratique et administration des systèmes

CREATION WEB DYNAMIQUE

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

Formulaires et Compteurs

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

Mysql avec EasyPhp. 1 er mars 2006

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

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

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

Module BD et sites WEB

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

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

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

CREATION d UN SITE WEB (INTRODUCTION)

Sécurité des applications web. Daniel Boteanu

DOM - Document Object Model

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

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:

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

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

PLUGINS Guide du Développeur STEPHANE FERRARI. P l u X m l 5.4

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

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

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

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

Hébergement de site web Damien Nouvel

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

Les bases de données

Configurer la supervision pour une base MS SQL Server Viadéis Services

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

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

PHP. PHP et bases de données

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

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

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

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

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

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

Formulaire pour envoyer un mail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Introduction. Passage de sites statiques à des sites dynamiques

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Java DataBaseConnectivity

Bases de Données et Internet

Mise en place d un serveur Proxy sous Ubuntu / Debian

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

Création de formulaires interactifs

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

BIRT (Business Intelligence and Reporting Tools)

BTS/CGO P10 SYSTEME INFORMATION Année

A QUOI SERVENT LES BASES DE DONNÉES?

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.

Démonstration de la mise en cache via HTML 5 sur iphone

Activités HTML. Code: act-html

Master1 ère année. Réseaux avancés I. TP nº5 filière ISICG

Attaques de type. Brandon Petty

I. MySQL : Serveur et SGBD

Programmation Web. Madalina Croitoru IUT Montpellier

Solution de gestion de newsletter 12all Version 1.0 p.montier

Utiliser un CMS: Wordpress

Transfert d un site local vers un serveur. NPDS REvolution 13. Rédaction : Axel Relecture : Dev & Jpb

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

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Préparation d un serveur Apache pour Zend Framework

Les BASES de DONNEES dans WampServer

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

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

Tutoriel d installation de Hibernate avec Eclipse

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

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

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

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

Gestion de stock pour un magasin

Manuel d'installation

A QUOI SERVENT LES BASES DE DONNÉES?

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Résoudre les problèmes PHP, les meilleures (et les pires) techniques

TP Service HTTP Serveur Apache Linux Debian

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

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

Serveur d Applications Web : WebObjects

1 Position du problème

contact@nqicorp.com - Web :

Document Object Model (DOM)

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

Programmation Web TP1 - HTML

Transcription:

Guide de survie html/php/mysql Table des matières 1) Configuration de netbeans...2 2) Formulaires en html...5 2.1 - Récupération des informations en provenance d'un formulaire :...6 3) Les fonctions en PHP...8 4) SQL...10 4.1 - Récupérer des informations depuis une table...10 4.2 - Récupérer des informations depuis plusieurs tables...10 4.3 - Inserer des informations dans une table...11 4.4 - Mettre à jour des informations dans une table...11 5) Accès et manipulation de BD via PHP...12 5.1 - Sans données externes...12 5.1.1 Avec la méthode query :...12 5.1.2 Exemple :...13 5.2 - En fonction d'une ou plusieurs données externes...14 5.2.1 Exemple avec Select...15 5.2.2 Exemple avec insert...17 5.2.3 Exemple avec update...18 PHP/BD 1/18

Si une page contient du PHP c'est une page PHP, elle ne peut donc être utilisée que via un serveur HTTP ayant le module PHP. Autrement dit, vous devez avoir une adresse dans votre barre d'url de navigateur et non file://chemin/vers/ma/page 1) Configuration de netbeans Création d'un projet PHP : Mettre le bon chemin d'accès (dans notre cas un sous répertoire de public_html) PHP/BD 2/18

Mettre l'adresse du serveur à la place de localhost dans la zone "Project URL" Finalisation du projet (pas de framework particulier). PHP/BD 3/18

Attention, par défaut, le serveur chargera toujours la page nommée index.php ou index.html. Pour éviter cela lors de l'exécution de votre projet, il faut supprimer/renommer ce fichier (index.php) et modifier la partie "Run configuration" dans les propriétés des votre projet. Supprimer le contenu de la zone "Index File" (cela ne supprime pas le fichier, il faut le faire vous même). Maintenant, lorsque vous cliquerez sur serveur)., votre projet sera lancé au bon endroit (sur le PHP/BD 4/18

2) Formulaires en html Pour pouvoir faire un formulaire, il faut définir la méthode d'envois du formulaire ainsi que le script qui traitera les informations en provenance de ce dernier. <form action="pagequidoitrecupererlesinfoduformulaire" method="post">... </form> Chaque élément du formulaire DOIT avoir un attribut name, car c'est sous ce nom que vous pourrez récupérer la valeur correspondant à cet élément dans la page de traitement. Ce nom peut être considéré comme un nom de variable. Cette variable aura la valeur de l'élément. Exemple : PHP/BD 5/18

2.1 - Récupération des informations en provenance d'un formulaire : Selon la méthode d'envois, les données arrivent dans les tableaux associatifs $_POST ou $_GET. L'accès aux données en provenance du formulaire se fait ainsi (si méthode post) : $_POST['nomDeLelement'] contient la valeur de l'élément dont le nom est "nomdelelement" dans le formulaire et qui a été envoyé via la méthode "post". Exemple : En reprenant le formulaire précédent : Le champs nommé numdep prendra la valeur 72 Le champs nommé ville prendra la valeur 2 (et pas lyons!! il prend la valeur du value de la balise option). Le champs nommé lin prendra la valeur coché (soit : ON ) Le champs nommé win ne prendra pas de valeur Le champs nommé sexe prendra la valeur "nc" (prend la valeur de l'attribut value du radio bouton) traitement.php PHP/BD 6/18

Voici la correspondance entre les données du formulaire et la récupération de ses dernières dans le script PHP. PHP/BD 7/18

Code du script traitement.php : On récupère dans un premier temps les valeurs des différents champs en provenance du formulaire, puis on les affiche. Voici l'affichage produit pas traitement.php : 3) Les fonctions en PHP Les fonctions se place dans un fichier PHP ayant pour extension.inc. La syntaxe globale est la suivante : function nomdelafonction($param1, $param2,...){ Il peut ne pas y avoir de paramètre. S'il y a une donnée à retourner, on ne le précise pas à la déclaration de la fonction, mais cette dernière contiendra une instruction "return". PHP/BD 8/18

Exemple du script précédent avec une fonction : mesfonctions.inc traitement.php Version avec passage du tableau $_POST mesfonctions.inc traitement.php PHP/BD 9/18

4) SQL Pour les exemples nous prendrons la base de données nommée franceiris et ayant les tables suivantes : 4.1 - Récupérer des informations depuis une table SELECT nomchamps1, nomchamps2, FROM nomdelatable WHERE uneconditionparticuliere ; Exemple : Avoir la liste des communes ayant comme numéro de département 72. SELECT ville_nom FROM villes_france WHERE ville_departement = 72; 4.2 - Récupérer des informations depuis plusieurs tables SELECT nomchamps1, nomchamps2, FROM nomdelatable1, nomdelatable2,... WHERE table1.clefprimaire = table2.clefetrangere AND table2.clefprimaire = table3.clefetrangere AND uneconditionparticuliere ; Exemple : Avoir le nom du département et de la région dont le numéro de département est 72 SELECT departement_nom, region_nom FROM departement, region WHERE region.region_id = departement.departement_region AND departement_code = 72 ; PHP/BD 10/18

4.3 - Inserer des informations dans une table INSERT INTO nomdelatable (champ1, champ2, ) VALUES (valchamp1, valchamp2, ) ; Exemple : Ajouter un utilisateur. INSERT INTO utilisateur (nom, prenom, idville,datenaissance) VALUES ("bidochon","robert",3489,"1950-06-26") ; On ne s'occupe pas du champs idutilisateur, car c'est un champ numérique auto-incrémenté par le système. 4.4 - Mettre à jour des informations dans une table UPDATE nomdelatable SET nomduchamp = nouvellevaleurduchamp WHERE clefprimaire=valeurdelaclef ; Exemple : Changer le nom et le prenom de la personne ayant pour idutilisateur 25. UPDATE utilisateur SET nom = "doe", prenom = "john" WHERE idutilisateur =25; PHP/BD 11/18

5) Accès et manipulation de BD via PHP Il faut définir les 4 constantes qui sont : 1. Adresse du serveur de base de données 2. Nom de la base de données 3. Login 4. Mot de passe Dans un fichier.inc : define ("HOTE","adresseServeur") ; define ("NOMBD","nomBaseDeDonnées") ; define ("LOGIN","loginDeLaBaseDeDonnées") ; define ("MDP","motDePasseDeLaBaseDeDonnées") ; Exemple : fonctionaccesbd.inc <?php define("hote", "172.18.58.15"); define("login", "iris"); define("mdp", "iris"); define("bd", "franceiris"); Dans tous les cas, vous devez faire une fonction (à mettre dans le même.inc que vos constantes) 5.1 - Sans données externes 5.1.1 Avec la méthode query : function nomdevotrefonction(){ // connexion au serveur et selection de la BD try { $bdd = new PDO('mysql:host='. HOTE. ';dbname='. BD, LOGIN, MDP); catch (Exception $ex) { die("pb connexion BD : ". $ex->getmessage()); // execution de la requete $requete = $bdd->query("la requete sql à effectuer ;") or die(print_r($requete->errorinfo())); // exploitation des resultats while ($ligne = $requete->fetch()) { // à chaque tour de boucle, $ligne est mis à jour avec // la ligne courante contenant le resultat de la requete. // on accède aux différentes valeurs des champs via // $ligne['nomduchamp'] // nomduchamp correspondant au(x) champs que vous avez // précisé entre le SELECT et le FROM dans votre requete SQL // s'il s'agit d'une requete de consultation // liberation des ressources de la requete $requete->closecursor(); PHP/BD 12/18

5.1.2 Exemple : Afficher l'ensemble des départements et des régions sous forme de tableau HTML. fonctionaccesbd.inc <?php define("hote", "172.18.58.15"); define("login", "iris"); define("mdp", "iris"); define("nombase", "franceiris"); Avec la méthode query : affichage.php <?php require_once 'fonctionaccesbd.inc' ; affichedepartementregions() ; Appel à la page affichage.php : PHP/BD 13/18

5.2 - En fonction d'une ou plusieurs données externes function nomdevotrefonction($donne1, $donne2,...){ // connexion au serveur et selection de la BD try { $bdd = new PDO('mysql:host='. HOTE. ';dbname='. BD, LOGIN, MDP); catch (Exception $ex) { die("pb connexion BD : ". $ex->getmessage()); // preparation de la requete $requete = $bdd->prepare("la requete sql à effectuer contenant des items:itemx ;"); // association des valeurs aux items $requete->bindparam(":item1",$donnee1) ; $requete->bindparam(":item2",$donnee2) ;... // execution de la requete $requete->execute() or die(print_r($requete->errorinfo())); // exploitation des resultats while ($ligne = $requete->fetch()) { // à chaque tour de boucle, $ligne est mis à jour avec // la ligne courante contenant le resultat de la requete. // on accède aux différentes valeurs des champs via // $ligne['nomduchamp'] // nomduchamp correspondant au(x) champs que vous avez // précisé entre le SELECT et le FROM dans votre requete SQL // s'il s'agit d'une requete de consultation // liberation des ressources de la requete $requete->closecursor(); PHP/BD 14/18

5.2.1 Exemple avec Select Avoir le nom du département et de la région dont le numéro de département est passé en paramètre de la fonction. fonctionaccesbd.inc function afficheregiondepartementfromnrodept($nrodept){ // connexion au serveur et selection de la BD try { $bdd = new PDO('mysql:host='. HOTE. ';dbname='. BD, LOGIN, MDP); catch (Exception $ex) { die("pb connexion BD : ". $ex->getmessage()); // preparation de la requete $requete = $bdd->prepare("select departement_nom, region_nom FROM departement, region WHERE region.region_id = departement.departement_region AND departement_code = :codedept ;"); // association des valeurs aux items $requete->bindparam(":codedept",$nrodept) ;... // execution de la requete $requete->execute() or die(print_r($requete->errorinfo())); // exploitation des resultats while ($ligne = $requete->fetch()) { echo utf8_encode($ligne['departement_nom']) ; echo " - " ; echo utf8_encode($ligne['region_nom']) ; // liberation des ressources de la requete $requete->closecursor(); 1. Appel dans le script affiche.php <?php require_once 'fonctionaccesbd.inc' ; afficheregiondepartementfromnrodept(72) ; PHP/BD 15/18

2. Via un formulaire. formulairechoix.html <html> <head> <title>exemple de formulaire</title> </head> <body> <div> <form method="post" action="traitement.php"> <label for="numdep">numéro département</label> <input type="text" name="numdep" id="numdep" /> <input type="submit" /> </form> </div> </body> </html> traitement.php <?php require_once 'fonctionaccesbd.inc' ; $nrodept = $_POST['numDep'] ; afficheregiondepartementfromnrodept($nrodept) ; PHP/BD 16/18

5.2.2 Exemple avec insert fonctionaccesbd.inc function ajouterutilisateur($nom, $prenom,$idville,$naissance){ // connexion au serveur et selection de la BD try { $bdd = new PDO('mysql:host='. HOTE. ';dbname='. BD, LOGIN, MDP); catch (Exception $ex) { die("pb connexion BD : ". $ex->getmessage()); // preparation de la requete $requete = $bdd->prepare("insert INTO utilisateur (nom,prenom,idville,datenaissance) VALUES (:nom, :prenom, :ville, :ddn) ;"); // association des valeurs aux items $requete->bindparam(":nom",$nom) ; $requete->bindparam(":prenom",$prenom) ; $requete->bindparam(":ville",$idville) ; $requete->bindparam(":ddn",$naissance) ;... // execution de la requete $requete->execute() or die(print_r($requete->errorinfo())); // liberation des ressources de la requete $requete->closecursor(); formulaireajout.html <html> <head> <title>exemple de formulaire</title> </head> <body> <form method="post" action="ajoutpersonne.php"> <label for="dn">date naissance</label> <input type="text" name="dn" id="dn" /> <label for="nom">nom</label> <input type="text" name="nom" id="nom" /> <label for="prenom">prenom</label> <input type="text" name="prenom" id="prenom" /> <label for="idville">identifiant de la ville</label> <input type="text" name="idville" id="idville" /> <input type="submit" /> </form> </body> </html> ajoutpersonne.php <?php require_once 'fonctionaccesbd.inc' ; $dn = $_POST['dn'] ; $nom = $_POST['nom'] ; $prenom = $_POST['prenom'] ; $idv = $_POST['idVille'] ; ajouterutilisateur($nom, $prenom,$idv,$dn) ; PHP/BD 17/18

5.2.3 Exemple avec update fonctionaccesbd.inc function modifnomprenom($idpers,$nom,$prenom){ // connexion au serveur et selection de la BD try { $bdd = new PDO('mysql:host='. HOTE. ';dbname='. BD, LOGIN, MDP); catch (Exception $ex) { die("pb connexion BD : ". $ex->getmessage()); // preparation de la requete $requete = $bdd->prepare("update utilisateur SET nom =:nom, prenom=:prenom WHERE idutilisateur=:idp ;"); // association des valeurs aux items $requete->bindparam(":nom",$nom) ; $requete->bindparam(":prenom",$prenom) ; $requete->bindparam(":idp",$idpers) ; // execution de la requete $requete->execute() or die(print_r($requete->errorinfo())); // liberation des ressources de la requete $requete->closecursor(); formulairemodif.html <html> <head> <title>exemple de formulaire</title> </head> <body> <form method="post" action="modifpersonne.php"> <label for="nom">nom</label> <input type="text" name="nom" id="nom" /> <label for="prenom">prenom</label> <input type="text" name="prenom" id="prenom" /> <label for="idville">identifiant de la personne</label> <input type="text" name="idp" id="idp" /> <input type="submit" /> </form> </body> </html> modifpersonne.php <?php require_once 'fonctionaccesbd.inc' ; $nom = $_POST['nom'] ; $prenom = $_POST['prenom'] ; $idp = $_POST['idp'] ; modifnomprenom($idp,$nom,$prenom) ; PHP/BD 18/18