PHP 5.4 Développez un site web dynamique et interactif



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

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

TD HTML AVEC CORRECTION

Formulaire pour envoyer un mail

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

Séance d ED n 5 : HTML et JavaScript

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

Activités HTML. Code: act-html

Programmation Internet Cours 4

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

Création de formulaires interactifs

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

HTML, CSS, JS et CGI. Elanore Elessar Dimar

HTML/CSS - Travaux Pratiques 2

Module BD et sites WEB

Formulaires et Compteurs

Extended communication server 4.1 : VoIP SIP service- Administration

101 Réaliser et publier un site WEB

Gestion Électronique de Documents et XML. Master 2 TSM

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

PHP 5.4 Développez un site web dynamique et interactif

Panel des technologies Web

Guide d interfaçage SSO Connexion des ressources aux plates-formes de type Corrélyce. Sommaire. Titre du document

EXPOSE. La SuisseID, qu est ce que c est? Secrétariat d Etat à l Economie SECO Pierre Hemmer, Chef du développement egovernment

Introduction. Passage de sites statiques à des sites dynamiques

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Les outils de création de sites web

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

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

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

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

HTML. Notions générales

Mysql avec EasyPhp. 1 er mars 2006

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

< Atelier 1 /> Démarrer une application web

Notes pour l utilisation d Expression Web

Attaques de type. Brandon Petty

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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.

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

DOM - Document Object Model

SUPPORT DE COURS / HTML

Module : programmation site Web dynamique Naviguer entre les pages via site map

SYSTÈMES D INFORMATIONS

Formation HTML / CSS. ar dionoea

Attaques applicatives

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

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

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

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

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

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

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

Les services usuels de l Internet

Hébergement de site web Damien Nouvel

Le Registre sous Windows 8 architecture, administration, script, réparation...

Programmation Web. Madalina Croitoru IUT Montpellier

PDO : PHP Data Object 1/13

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

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

Publier un Carnet Blanc

Sana Sellami. Licence Professionnelle SIL

Bases de Données et Internet

MANUEL D INSTALLATION du module Chronopost pour. version 1.0.5

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

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

Bonnes pratiques de développement JavaScript

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

Web statique : client-serveur. PHP/MySQL: Sites dynamiques Formulaires et bases de données. Discussion HTTP. Caractéristiques du HTTP

Techniques de Programmation pour Internet

WorkflowGen 6.0 Guide de mise à jour

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Mise en place d un serveur Proxy sous Ubuntu / Debian

Corrigés des exercices du livre. Exercices du chapitre 2

Stockage du fichier dans une table mysql:

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

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

WebSSO, synchronisation et contrôle des accès via LDAP

Initiation à html et à la création d'un site web

Document Object Model (DOM)

Publier dans la Base Documentaire

Guide de réalisation d une campagne marketing

Google Tag Manager. Optimisez le tracking de votre site web. Google Tag Manager. Google Tag Manager. Optimisez le tracking de votre site web 26,50

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

Tutoriel d installation de Hibernate avec Eclipse

Création d'une application WEB avec PHP / MySQL

Gestion du cache dans les applications ASP.NET

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base 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 CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

1. Installation du Module

SQL Server Installation Center et SQL Server Management Studio

BIRT (Business Intelligence and Reporting Tools)

HTML5, CSS3 et JavaScript Développez vos sites pour les terminaux mobiles

Transcription:

Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Extrait

183 Chapitre 7 Gérer les formulaires 1. Vue d'ensemble Gérer les formulaires 1.1 Petit rappel sur les formulaires Le formulaire est un outil de base indispensable pour les sites Web dynamiques puisqu'il permet à l'utilisateur de saisir des informations et donc d'interagir avec le site. Un formulaire HTML est défini entre les balises <form> et </form>. Syntaxe simplifiée <form [ action="url_de_traitement" ] [ method="get" "POST" ] [ id="identifiant_formulaire" ] [ target="cible" ]>... </form> Les attributs de la balise <form> sont les suivants : action URL (Uniform Resource Locator) relative ou absolue qui va traiter le formulaire, en ce qui nous concerne, un script PHP. Cet attribut est obligatoire pour se conformer à la recommandation XHTML stricte.

184 PHP 5.4 Développez un site web dynamique et interactif method id target Mode de transmission vers le serveur des informations saisies dans le formulaire. GET (valeur par défaut) : les données du formulaire sont transmises dans l URL. POST : les données du formulaire sont transmises dans le corps de la requête. Identifiant du formulaire. Si la page HTML contient plusieurs formulaires, l'identifiant permet de les différencier. En ce qui nous concerne, cet identifiant ne présente pas d intérêt car il n est pas récupéré dans le script de traitement du formulaire. Par contre, il peut être utilisé côté client, en JavaScript par exemple. Cible (par exemple une autre fenêtre) dans laquelle ouvrir l'url cible. Entre les balises <form> et </form>, il est possible de placer des balises <input>, <select> ou <textarea> pour définir des zones de saisie. Exemple (formulaire HTML complet) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>saisie</title> </head> <body> <form action="" method="post"> <div> Nom : <input type="text" name="nom" value="" size="20" maxlength="20" /> Mot de passe : <input type="password" name="mot_de_passe" value="" size="20" maxlength="20" /> <br />Sexe : <input type="radio" name="sexe" value="m" />Masculin <input type="radio" name="sexe" value="f" />Féminin <input type="radio" name="sexe" value="?" checked="checked" />Ne sait pas <br />Photo : <input type="file" name="photo" value="" size="50" /> <br />Couleurs préférées : <input type="checkbox" name="couleurs[bleu]" />Bleu <input type="checkbox" name="couleurs[blanc]" />Blanc Editions ENI - All rights reserved

Gérer les formulaires Chapitre 7 185 <input type="checkbox" name="couleurs[rouge]" />Rouge <input type="checkbox" name="couleurs[pas]" checked="checked" />Ne sait pas <br />Langue : <select name="langue"> <option value="e">espagnol</option> <option value="f" selected="selected" >Francais</option> <option value="i">italien</option> </select> <br />Fruits préférés :<br /> <select name="fruits[]" multiple="multiple" size="8"> <option value="a">abricots</option> <option value="c">cerises</option> <option value="f">fraises</option> <option value="p">pêches</option> <option value="?" selected="selected"> Ne sait pas</option> </select> <br />Commentaire :<br /> <textarea name="commentaire" rows="4" cols="50"></textarea> <br /> <input type="hidden" name="invisible" value="123" /><br /> <input type="submit" name="soumettre" value="ok" /> <input type="image" name="valider" src="valider.gif" /> <input type="reset" name="effacer" value="effacer" /> <input type="button" name="action" value="ne fait rien" /> </div> </form> </body> </html>

186 PHP 5.4 Développez un site web dynamique et interactif Résultat 1.2 Interaction entre un formulaire et un script PHP PHP peut intervenir à deux endroits par rapport au formulaire : Pour la construction du formulaire, si ce dernier doit contenir des informations dynamiques. Pour le traitement du formulaire (c'est-à-dire des données saisies par l'utilisateur dans le formulaire). Trois grandes méthodes sont utilisables pour faire interagir un formulaire et un script PHP : Placer le formulaire dans un document HTML "pur" (.htm ou.html), le formulaire ne contient alors aucun élément dynamique, et indiquer le nom du script PHP qui doit traiter le formulaire dans l'attribut action de la balise <form>. Placer le formulaire dans un script PHP (par exemple, pour construire une partie du formulaire dynamiquement) et faire traiter le formulaire par un autre script PHP (mentionné dans l'attribut action de la balise <form>). Editions ENI - All rights reserved

Gérer les formulaires Chapitre 7 187 Placer le formulaire dans un script PHP (par exemple, pour construire une partie du formulaire dynamiquement), et le faire traiter par le même script PHP (mentionné dans l'attribut action de la balise <form> ou appelé par défaut si cet attribut n'est pas présent). Par ailleurs, quelque part sur une autre page, un lien (Saisie par exemple) peut être inséré pour appeler le formulaire de saisie : Formulaire HTML : <a href="saisie.htm">saisie</a> Formulaire PHP : <a href="saisie.php">saisie</a> Première méthode Document HTML saisie.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>saisie</title></head> <body> <form action="traitement.php" method="post"> <div> Nom : <input type="text" name="nom" value="" /> <input type="submit" name="ok" value="ok" /> </div> </form> </body> </html> Script PHP traitement.php <?php /* A faire... - récupérer les informations saisies - faire le traitement - afficher une nouvelle page */?> Résultat Affichage initial du formulaire :

188 PHP 5.4 Développez un site web dynamique et interactif Saisie d une information : Le résultat du clic sur le bouton OK est une page vide, car, pour l instant, le script de traitement ne fait rien. Deuxième méthode Document PHP saisie.php Un peu de code PHP (en gras) est utilisé pour générer une partie dynamique du formulaire. <?php // Inclure un fichier qui contient des définitions de // constantes, dont le titre de la page (TITRE_PAGE_SAISIE). require('constantes.inc'); // Initialisation d'une variable qui contient la valeur // initiale de la zone de saisie (dans la pratique, cette // valeur vient sans doute d'ailleurs et n'est pas codée // en dur). $nom = 'X'; // Dans le code HTML qui suit, inclusion de deux petits // bouts de code PHP pour afficher respectivement le titre // de la page et la valeur initiale de la zone de saisie.?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title><?php echo TITRE_PAGE_SAISIE;?></title> </head> <body> <form action="traitement.php" method="post"> <div> Nom : <input type="text" name="nom" value="<?php echo $nom;?>" /> <input type="submit" name="ok" value="ok" /> </div> </form> </body> </html> Editions ENI - All rights reserved

Editions ENI Magento Réalisez des développements professionnels avec PHP Collection Expert IT Extrait

143 Chapitre 3 Surcharge des classes existantes 1. Objectif Surcharge des classes existantes Pour adapter les fonctionnements natifs de Magento à vos besoins, il vous faut modifier les codes de Magento. Pour modifier ces codes, vous devez avoir recours à la surcharge du core de Magento en créant un nouveau module, car il ne faut jamais écrire vos codes directement dans le core de Magento (dossier /app/code/core/). Si vous écrivez vos codes directement dans le core de Magento, ils risqueront d'être écrasés lors d'une mise à jour de la version de Magento. Magento vous permet de surcharger les contrôleurs, les blocks, les modèles et les helpers en modifiant les méthodes existantes (en ne réécrivant dans les fichiers de surcharge que les méthodes modifiées), ou en ajoutant d autres méthodes. Ce chapitre vous guidera dans les surcharges de ces différents éléments d un module.

144 Magento Réalisez des développements professionnels avec PHP 2. Surcharge d'un contrôleur La surcharge d une classe dans Magento se fait dans un nouveau module. Donc avant de commencer la surcharge, vous devez créer un nouveau module et passer par la déclaration. /app/etc/modules/espacedenoms_nommodule.xml <?xml version="1.0"?> <config> <Espacedenoms_Nommodule> <active>true</active> <codepool>local</codepool> </Espacedenoms_Nommodule> </config> 2.1 Surcharge d un contrôleur en front office Une fois le module déclaré, créez votre fichier de configuration config.xml : app/code/local/espacedenoms/nommodule/etc/config.xml <?xml version="1.0"?> <config> <Espacedenoms_Nommodule> <version>0.1.0</version> </Espacedenoms_Nommodule> <frontend> <routers> <nommodule> <use>standard</use> <args> <module>espacedenoms_nommodule</module> <frontname>nommodule</frontname> </args> </nommodule> </routers> </frontend> Editions ENI - All rights reserved

Surcharge des classes existantes Chapitre 3 145 <global> <rewrite> <espacedenoms_nommodule_nomcontroleur> <from><![cdata[#^/nommodule1/chemin_vers_controleur1/#]]></from> <to>/nommodule/chemin_vers_controleur/</to> </espacedenoms_nommodule_nomcontroleur> </rewrite> </global> </config> Dans le nœud rewrite : Le nœud espacedenoms_nommodule_nomcontroleur est l identifiant de la réécriture, il doit être unique. Le nœud from permet de renseigner le contrôleur à surcharger. nommodule1 est le frontname du module dont le contrôleur est à surcharger et chemin_vers_controleur1 est le chemin vers le contrôleur à surcharger. Le nœud to permet de renseigner le contrôleur de surcharge. nommodule est le frontname et chemin_vers_controleur est le chemin vers le contrôleur. Pour la création de votre fichier de configuration, vous pouvez aussi choisir d utiliser le code ci-après : <config> <Espacedenoms_Nommodule> <version>0.1.0</version> </Espacedenoms_Nommodule> <frontend> <routers> <nommoduleasurcharger> <args> <Espacedenoms_Nommodule_Nommoduleasurcharger before="mage_nommoduleasurcharger">espacedenoms_nommodule_ Nommoduleasurcharger</Espacedenoms_Nommodule_ Nommoduleasurcharger> </args> </nommoduleasurcharger> </routers>

146 Magento Réalisez des développements professionnels avec PHP </frontend> </config> Nommoduleasurcharger ou nommoduleasurcharger : correspond au nom du module contenant le contrôleur à surcharger. Pour la suite, créez le contrôleur : /app/code/local/espacedenoms/nommodule/controllers/nomcontroleur- Controller.php <?php require_once 'Chemin/Vers/Module/A/Surcharger/NomcontroleurController.php'; class Espacedenoms_Nommodule_NomcontroleurController extends Nom_De_Classe_Du_Controleur_A_Surcharger { // Ecrire ici les méthodes que vous voulez modifier // Vous pouvez aussi ajouter d'autres méthodes ici } Vous devez inclure le contrôleur à surcharger en faisant appel à la méthode require_once. La classe du contrôleur à créer doit aussi étendre la classe du contrôleur à surcharger. Pour mieux comprendre, passons tout de suite à l exemple. Surcharge d un contrôleur en front office Le comportement natif de Magento permet d ajouter au comparateur un produit de type configurable et de type groupé. Nous allons modifier ce comportement en empêchant les produits ayant ces deux types d être ajoutés au comparateur. Pour cela, nous allons surcharger le contrôleur dans Mage/Catalog/controllers/Product/CompareController.php pour la modification de la méthode addaction. Editions ENI - All rights reserved

Surcharge des classes existantes Chapitre 3 147 Déclaration du module /app/etc/modules/mongroupe_monmodule.xml <?xml version="1.0"?> <config> <Mongroupe_Monmodule> <active>true</active> <codepool>local</codepool> </Mongroupe_Monmodule> </config> Création du fichier de configuration config.xml Vous pouvez choisir entre les deux fichiers de configuration suivants : /app/code/local/mongroupe/monmodule/etc/config.xml <?xml version="1.0"?> <config> <Mongroupe_Monmodule> <version>0.1.0</version> </Mongroupe_Monmodule> <frontend> <routers> <monmodule> <use>standard</use> <args> <module>mongroupe_monmodule</module> <frontname>monmodule</frontname> </args> </monmodule> </routers> </frontend> <global> <rewrite> <mongroupe_monmodule_catalog_product_compare> <from><![cdata[#^/catalog/product_compare/#]]></from> <to>/monmodule/catalog_product_compare/</to> </mongroupe_monmodule_catalog_product_compare>

148 Magento Réalisez des développements professionnels avec PHP Ou </rewrite> </global> </config> /app/code/local/mongroupe/monmodule/etc/config.xml <config> <Nomgroupe_Nommodule> <version>0.1.0</version> </Nomgroupe_Nommodule> <frontend> <routers> <catalog><!-- correspond au module Mage_Catalog --> <args> <Mongroupe_Monmodule_Catalog before="mage_catalog"> Mongroupe_Monmodule_Catalog </Mongroupe_Monmodule_Catalog> </args> </catalog> </routers> </frontend> </config> Création du contrôleur /app/code/local/mongroupe/monmodule/controllers/catalog/product/ CompareController.php <?php require_once("mage/catalog/controllers/product/comparecontroller. php"); class Mongroupe_Monmodule_Catalog_Product_CompareController extends Mage_Catalog_Product_CompareController { /** * Add item to compare list */ public function addaction() Editions ENI - All rights reserved