Introduction à PHP. Formulaires HTML et PHP, interactions avec le client. monnerat@u-pec.fr. 6 avril 2015. IUT de Fontainebleau. Introduction à PHP



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

TP JAVASCRIPT OMI4 TP5 SRC

Formulaire pour envoyer un mail

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

(structure des entêtes)

CREATION d UN SITE WEB (INTRODUCTION)

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

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

Programmation Web. Madalina Croitoru IUT Montpellier

Manuel du composant CKForms Version 1.3.2

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.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Stockage du fichier dans une table mysql:

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

Manuel d'installation

Etude et développement d un moteur de recherche

Mettre en place un formulaire dans le site avec le module webform

Mise en place d un serveur Proxy sous Ubuntu / Debian

L3 informatique TP n o 2 : Les applications réseau

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

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)

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

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

Attaques applicatives

Module BD et sites WEB

Création de formulaires interactifs

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Environnements informatiques

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

INF8007 Langages de script

Module http MMS AllMySMS.com Manuel d intégration

Module pour la solution e-commerce Magento

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

SUPPORT DE COURS / PHP PARTIE 3

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

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

DOM - Document Object Model

Développement des Systèmes d Information

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Créer un site Web : mode d emploi Sous SPIP, avec le squelette «établissement» de l académie de Versailles

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

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

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

CGI et SSI. La programmation CGI. Sources. Objectifs. Qu'est ce qu'un programme CGI? CGI

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

Solution Pro pour l Envoi de SMS direct opérateurs PUSH SMV MODE HTTP. Documentation Technique

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

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type

Gestion Electronique de Document (ECM/GED)

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

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

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

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

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

Les services usuels de l Internet

Attaques de type. Brandon Petty

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

PARAMETRAGE D INTERNET EXPLORER POUR L UTILISATION DE GRIOTTE

les techniques d'extraction, les formulaires et intégration dans un site WEB

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

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

E-Remises Paramétrage des navigateurs

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

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

Publication dans le Back Office

Application Web et J2EE

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

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

SYSTÈMES D INFORMATIONS

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

< Atelier 1 /> Démarrer une application web

4. SERVICES WEB REST 46

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

1. Installation du Module

INFORM :: DEMARRAGE RAPIDE A service by KIS

API HTTP DOCUMENTATION TECHNIQUE PLATEFORME SAAS D'ENVOI DE SMS. Version Mise à jour : 3 juillet 2015

Secure Card Data. Spécifications. Version SIX Payment Services

Serveurs de noms Protocoles HTTP et FTP

Sessions en ligne - QuestionPoint

Diplôme Universitaire Technologique Spécialité Informatique. Période du stage: 05 Avril Juin 2004

Guide d implémentation. Réussir l intégration de Systempay

Disque Dur Internet «Découverte» Guide d utilisation du service

KWISATZ MODULE PRESTASHOP

Réglages du portail de P&WC

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

GUIDE NSP Activation et gestion des produits avec NSP

Bases de Données et Internet

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

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

WEB page builder and server for SCADA applications usable from a WEB navigator

Comment mettre en ligne un site WordPress local

145A, avenue de Port Royal, Bonaventure (Québec) G0C 1E0 Sans frais :

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

«Cachez-moi cette page!»

Transcription:

Formulaires HTML et PHP, interactions avec le client IUT de Fontainebleau 6 avril 2015

1 Formlaire et traitement 2 Texte Cases à cocher Listes Upload de fichiers

Sommaire Formlaire et traitement 1 Formlaire et traitement 2

Formulaire HTML Formlaire et traitement Echange de données entre le navigateur (client) et le serveur (l application) par http(s). Pourquoi faire? Créer un espace sécurisé par authentification. Uploader des fichiers. Administrer le contenu d un site. Payer ses impôts Gérer un panier d articles.

En HTML, <form> et </form> déclare le début et la fin d un formulaire. L attribut action indique l url destinatrice des données saisies après soumission. <form action="traiterformulaire.php"> <!-- le formulaire --> <input type="submit" value="envoyer"> </form> La soumission des données (l envoi) est déclenchée grâce à un élément input ou button de type submit (par un click).

Lorsqu un formulaire est envoyé à un script php du serveur web, toutes ses données se retrouvent dans des superglobales. Il s agit de tableaux associatifs accessibles dans tout le script. Il en existe beaucoup. on utilisera : $_GET[] $_POST[] $_REQUEST[] contient toutes les données envoyées via l URL (en GET) contient les données envoyées via un formulaire en POST est la fusion des deux premiers. Récupération des donnéees C est la valeur de l attribut name des éléments html du formulaire qui sert de clés dans les tableaux précédents.

Méthode POST Formlaire et traitement La méthode post permet de passer des variables saisies par l utilisateur à un script php, dans la corps de la requête http. Un exemple de formulaire <form method="post" action="enregistrement.php"> <fieldset> <legend><b>identite</b></legend> <label for="el1">nom</label> : <input id="el1" type="text" name="nom" /> <label for="el2">prenom</label> : <input id="el2" type=text name="prenom" /> <label for="el3">email</label> : <input id="el3" type="email" name="email" /> </fieldset> <input type="submit" name="accepter" value="ok"> </form>

L exemple affiche un formulaire simple dans le navigateur : trois champs de saisie de texte.

Lorsque l utilisateur valide et envoie les données au serveur, les variables du formulaire sont passées au script php destination au moyen du tableau _POST. <?php // on recupere les valeurs // du formulaire $nom=$_post[ nom ]; $prenom=$_post[ prenom ]; $email=$_post[ email ]; // on les traite echo "<li>$nom</li>"; echo "<li>$prenom</li>"; echo "<li>$email</li>";?>

Remarque : la fonction extract permet de créer des variables à partir des clés d un tableau associatif. chaque case du tableau génére une variable du nom de sa clé. <?php // on recupere les valeurs du formulaire extract($_post); // on les traite echo "<li>$nom</li>"; echo "<li>$prenom</li>"; echo "<li>$email</li>";?>

Méthode GET Formlaire et traitement L attribut method vaut get (valeur par défaut) <form method="get" action="enregistrement.php"> <fieldset> <legend><b>identite</b></legend> <label for="el1">nom</label> : <input id="el1" type="text" name="nom" /> <!-- etc --> </fieldset> <input type="submit" name="accepter" value="ok"> </form> Les données sont passées directement via l URL (elles sont encodées). ce qui donnera l URL à la soumission :

Les variables se récupérent à l aide du tableau _GET <?php // on recupere les valeurs // du formulaire $nom=$_get[ nom ]; $prenom=$_get[ prenom ]; $email=$_get[ email ]; // on les traite echo "<li>$nom</li>"; echo "<li>$prenom</li>"; echo "<li>$email</li>";?>

Passage de paramètres à un script On peut passer des arguments à un script directement dans l url, comme le fait l envoi des données avec la méthode GET. $id=3; echo "<a href=\"traiter.php?action=buy&id=$id\">acheter</a>"; ce qui donnera l URL : La syntaxe pour passer des arguments à une page est la suivante mon_url_amoi?var1=valeur1&var2=valeur2... Les variables transmises au script sont dans le tableau _GET.

Exemple Formlaire et traitement if (isset($_get[ rubrique ])) $rubrique = $_GET[ rubrique ]; else $rubrique = ""; switch($rubrique){ case "wim" : include( wim.php ); break; case "apl" : include( apl.php ); break; case "maths" : include( mathematique.php ); break; default : include ( accueuil.php ); }

Encodage Formlaire et traitement L attribut enctype de la balise form contrôle l encodage des données. Par défaut, les données issues d un formulaire sont de "type" application/x-www-form-urlencoded. Il s agit d une seule chaîne de caractères de la forme var1=valeur1&var2=valeur2 qui est url encodée : Les caractères non alphanumériques sont remplacés par %xx, ( xx est le code ascii du caractère en hexadécimal) Les caractères ; /? : @ & = + $, sont reservés :? : début de QUERY_STRING. & : séparateur de champs. = : séparation entre le champ et sa valeur. Les espaces sont remplacés par des +. Il existe d autres encodages (notamment multipart/form-data).

Quelle méthode utiliser? peu importe, sauf... On préfére la méthode POST. envoi de fichiers (pas le choix!) envoi de données de taille importante (poids supérieur à 4ko) envoi de données confidentielles. (elles passent en clair sur le réseau néanmoins!) La méthode GET peut être utiliser dans tous les autres cas. On peut revenir en arrière avec le navigateur. Mise en cache. (recherche sur un site,...) Utilisation d un lien pour passer directement un paramètre à un script.

Gestion d un formulaire 1 Génération du premier formulaire. 2 Envoie des données. 3 Reception des données. 4 Vérification de la validité des champs. 5 Si OK, on traite les données (écriture bd, etc.) 6 Sinon, on regénére le formulaire, en y insérant les données valides déjà saisies par l utilisateur. (attribut value)

Sommaire Formlaire et traitement Texte Cases à cocher Listes Upload de fichiers 1 Formlaire et traitement 2 Texte Cases à cocher Listes Upload de fichiers

Textes Formlaire et traitement Texte Cases à cocher Listes Upload de fichiers Champ texte : créer avec la balise <input> et l attribut type text. Zone de texte (zone de texte sur plusieurs lignes) : créer avec la balise <texarea> <form method="post" action="enregistrement.php"> <fieldset> <legend><b>enregistrement</b></legend> <label>titre</label> <input type="text" name="titre"> <label>contenu</label> <textarea rows="5" name="contenu"></textarea> </fieldset> <button type="submit" name="accepter"> ENVOYER </button> </form>

Texte Cases à cocher Listes Upload de fichiers <?php echo $_POST[ titre ]."<br />"; echo nl2br($_post[ contenu ]);?> Notez bien la fonction nl2br qui permet de convertir les sauts de lignes de la zone de texte en balise <br /> pour l affichage HTML. Remarques champ texte qui permet de saisir un mot de passe : Il s agit toujours de la balise input avec l attribut password champ texte caché Il s agit toujours de la balise input avec l attribut hidden <input type="password" name="nom" value="" /> <input type="hidden" name="nom" value="" />

Texte Cases à cocher Listes Upload de fichiers HTML5 a rajouté de nouveaux type input color date datetime datetime-local email month number range search tel time url week

balise input avec l attribut checkbox. Texte Cases à cocher Listes Upload de fichiers <form method="post" action="traitement.php"> <legend> Quel (s) langage (s) utilisez vous?</legend> <input type="checkbox" name="langages[]" value="c"> C <input type="checkbox" name="langages[]" value="php"> PHP <input type="checkbox" name="langages[]" value="js"> JS <input type="checkbox" name="langages[]" value="java"> JAVA <button type="submit"> Validez </button> </form>

Texte Cases à cocher Listes Upload de fichiers <?php $langages = $_POST[ langages ]; foreach ($langages as $unlangage) echo ( La case. $unlangage. a ete cochee <br> );?>

Texte Cases à cocher Listes Upload de fichiers balise input avec l attribut radio : un seul choix possible. <form action="reponse.php" methode=post> Qui etait Pythagore? <input type="radio" name="question1" value=1> Un realisateur de film d horreur. <input type="radio" name="question1" value=2> Un mathematicien grec. <input type="radio" name="question1" value=3> Un danseur mondain <input type=submit value=valider> </form>

Texte Cases à cocher Listes Upload de fichiers Il existe d autres valeurs pour l attribut type de la balise input Boutons reset qui vide tous les champs d un formulaire. submit pour envoyer les données d un formulaire. image pour créer un bouton de validation graphique. Zone de données. file pour soumettre un nom de fichier à uploader. hidden pour envoyer une donnée cachée depuis un formulaire.

Texte Cases à cocher Listes Upload de fichiers Balise select <form action="traiter.php" method=post> Quel est votre langage prefere? <select name="langage"> <option value=1>c</option> <option value=2>php</option> <option value=3>bash</option> <option value=4>assembleur Mips</option> </select> <input type=submit value=valider> </form> Un seul choix possible. On peut néanmoins, en rajoutant multiple dans la balise, autorisé plusieurs choix.

Texte Cases à cocher Listes Upload de fichiers <form enctype="multipart/form-data" action="fileupload.php" method="post"> <input type="hidden" name="max_file_size" value="100000" /> Transfere le fichier <input type="file" name="monfichier" /> <input type="submit" /> </form> Le tableau _FILE contient un tableau pour chaque fichier transféré (clé correspondant à l attribut name) contenant : tmp_name : le nom (et chemin) du fichier temporaire sous lequel le fichier a été stocké. name : le nom qu avait le fichier dans l espace de l utilisateur size : la taille du fichier en octets type : le "MIME type" du fichier (ex : text/html, image/gif, etc.)