Techniques de Programmation pour Internet



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

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

Création de formulaires interactifs

Bases de Données et Internet

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

Activités HTML. Code: act-html

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

Séance d ED n 5 : HTML et JavaScript

TP JAVASCRIPT OMI4 TP5 SRC

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

CREATION d UN SITE WEB (INTRODUCTION)

Formulaire pour envoyer un mail

Formulaires et Compteurs

Les services usuels de l Internet

INF8007 Langages de script

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

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

Module BD et sites WEB

En Perl, les choses sont un peu différentes. Le cgi Perl ne peut être qu'un programme qui génère des sorties.

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

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

TD HTML AVEC CORRECTION

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

Stockage du fichier dans une table mysql:

Manuel d'installation

(structure des entêtes)

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

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

Bases de données et Interfaçage Web

Outils pour la pratique

Guide d implémentation Interface avec la plateforme de paiement

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

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

Optimiser moteur recherche

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

HTML/CSS - Travaux Pratiques 2

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

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

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

Mise en place d un serveur Proxy sous Ubuntu / Debian

Publier un Carnet Blanc

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

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

Serveurs et environnements de développement. Serveur Web

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Open Source Job Scheduler

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

Publier dans la Base Documentaire

TP PLACO. Journées Mathrice d'amiens Mars 2010

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

Serveurs de noms Protocoles HTTP et FTP

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Programmation Web. Madalina Croitoru IUT Montpellier

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

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)

Perl Orienté Objet BioPerl There is more than one way to do it

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

Développement Web. Les protocoles

Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état.

Exonet : sauvegarde automatisée d une base de données

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

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.

Technologie des Serveurs Internet. Langage Perl

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

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

Utilisation de l éditeur.

Attaques de type. Brandon Petty

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Rapports d activités et financiers par Internet. Manuel Utilisateur

PLATE-FORMES LIBRES *AMP CYBER PAIEMENT / CYBER PLUS PAIEMENT GUIDE DE MIGRATION FACILE ET EN UNE HEURE PLATE-FORME SYSTEMPAY

FTP / WebDeploy /WebDAV. Manuel

Comment faire un site i-mode?

Développement des Systèmes d Information

Protection des protocoles

Comment se connecter au VPN ECE sous vista

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

Architectures web/bases de données

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

TNT Express. Magento

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

Attaques applicatives

Dans l'épisode précédent

Documentation d Intégration CB Paysite Cash

LA PLATE-FORME D'ALTERN C

WWSympa, une interface web pour Sympa

Internet Information Server. Conçu et réalisé par Denis Szalkowski Formateur consultant

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

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

Agenda mutualisé en ligne - services A.S.V. Informatique.

Initiation aux techniques du Web. Cours L2 sciences cognitives séance 2 Charif HAYDAR: alchiekc@loria.fr

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

La solution Mobile Banking d ING Version 3.0

SYSTÈMES D INFORMATIONS

I. Présentation du serveur Samba

Des postes Des OS (Win/Linux) et logiciels Un réseau Un identifiant + un mot de passe Un compte personnel Une adresse électronique Un espace web Des

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

Plan. Avant de créer son site. Quelques logiciels complémentaires

Couches 4 à 7 : Traitement des données

Transcription:

Séance 7 Transactions par CGI Année Spéciale Informatique ENSIMAG 2002-2003 James L. Crowley Anullé Le but de l'exercice est d'introduire un certain nombre de constructions en PERL utiles pour la programmation de votre boutique électronique. Dans cet exercice, vous allez réaliser une page html et trois scripts CGI. Les chaînes [**votre-login**] sont à remplacer par votre login. 1) Allez au répertoire ~/www et utilisez votre éditeur de texte préféré afin de créer un fichier formulaire html qui permet de commander un produit. Voir la séance 2 pour les détails sur les formulaires (forms). Votre fichier peut avoir la forme: <HTML> <HEAD> <TITLE>Boutique Electronique</TITLE> </HEAD> <BODY BGCOLOR=#FFFFFF > <H1 ALIGN=CENTER>Vente en Ligne de Pipos</H1> <FORM ACTION="pipo.html" METHOD = "GET"> <P><HR></P> <H3>Pipotech en ligne </H3> <BR> <P><input name="product" value="pipo1" type=radio> Pipo Simple</P> <P><input name="product" value="pipo2" type=radio CHECKED> Pipo de Luxe </P> <P><input name="product" value="pipo3" type=radio> The Ultimate Pipo</P> <P><SELECT NAME="number" size = 1> <OPTION SELECTED>1 <OPTION>2 <OPTION>3 <OPTION>4 <OPTION>5 <OPTION>6 <OPTION>7 <OPTION>8 <OPTION>9 <OPTION>10 <OPTION>Tous </SELECT> Pipo(s)</P> <INPUT TYPE=SUBMIT Value="j'Achete"> <INPUT TYPE=RESET Value="Oops"> <P> </BODY> </HTML>

Sauvegardez le fichier dans votre répertoire ~/www avec le nom pipo.html et lancez Netscape. Allez à la page : http://ensisun.imag.fr/[votre login]/pipo.html. Cliquez sur "j'achete". Notez que ceci a pour effet de relancer la page. 2) Création du fichier CGI. Avec votre éditeur, créez un fichier nommé payment.cgi dans votre répertoire cgi-bin. Entrez dans ce fichier les lignes suivantes : #!/usr/local/bin/perl #payment.cgi # entete d'une page html print "Content-type: text/html", "\n\n"; print "<HTML>", "\n"; print "<TITLE>Payment</TITLE>", "\n"; print "<BODY>", "\n"; print "<H1>Paiement des Pipos</H1><BR>", "\n"; #Determine le type de passage $method = $ENV'REQUEST_METHOD'; if ($method eq "GET") $query = $ENV'QUERY_STRING'; elsif ($method eq "POST") $size = $ENV'CONTENT_LENGTH'; read (STDIN, $query, $size); #split le query en key=value. @key_value_pairs = split(/&/, $query); print "parameters : $query<br>", "\n"; #decode chaque parametre foreach $key_value (@key_value_pairs) ($key, $value) = split(/=/, $key_value); $value =~ tr/+/ /; $value =~ s/%([\da-fa-f][\da-fa-f])/pack("c", hex($1))/eg; $data$key = $value; print "data($key) = $data$key", "\n"; 2

print "<HR>", "\n"; # MERCI print qq(<h1> MERCI </H1><br>\n); print qq(<a HREF ="[**votre-login**]/pipo.html"> pipo.html</a><br>\n); Changez ce fichier en "exécutable pour tous" avec la commande unix : chmod a+x create-plan.cgi Éditez votre page pipo.html afin que l'action du formulaire (form) consiste à exécuter ce script avec la ligne : <FORM ACTION="payment.cgi" METHOD = "GET"> Testez le script à partir de pipo.html. 3) En PERL, le hash $data"product" permet de récupérer le produit commandé. Entrez les lignes suivantes dans le fichier payment.cgi avant la ligne # MERCI du payment.cgi. #Definir le Form Action print qq( <FORM ACTION="/cgi-bin/[**VOTRE- LOGIN**]/record.cgi" METHOD = "GET">); print "parameters : $query<br>", "\n"; #Sauver la commande dans les variables cachees. foreach $key (keys %data) print qq(<input TYPE=HIDDEN NAME="$key" VALUE="$data$key">); print qq(<input TYPE=HIDDEN NAME="$key" VALUE="$data$key">\n<br>); # enregistrer le paiement print qq(commande : $data"number" $data"product"<br>\n); 3

print qq(<h3>methode de Paiment</h3>\n); print qq(<ul>\n); print qq(<input name="payment" value="cash" type=radio> Cash<BR>\n); print qq(<input name="payment" value="cheque" type=radio> Cheque<BR>\n); print qq(<input name="payment" value="carte de credit" type=radio CHECKED> Carte de credit<br>\n); print qq(<ul>\n); print qq(nom sur la carte <input name="name" size=25> <BR>\n); print qq(numero de carte <input name="card-number" size=19><br>\n); print qq(expiration <input name="expiration" size=5><br>\n); print qq(</ul>\n); print qq(</ul>\n); print qq(<input TYPE=SUBMIT Value="j'achete">\n); print qq(<input TYPE=RESET Value="Forget it">\n); #Merci print qq(<h1> Merci </H1>\n); 4) Enregistrez la commande dans un fichier html. Pour cela, faites une copie du fichier payment.cgi. Nommez cette copie "record.cgi". Effacez le texte entre #Definir le Form Action et # merci. Remplacez ce texte par le texte ci-dessus. La commande sera écrite dans un répertoire dans votre /www nommé "/commandes". Créez le répertoire nommé /commandes sous votre /www. Changez sa protection avec la commande : "chmod a+rw /commandes" afin de permettre tout accès pour écrire et lire dans ce répertoire. #!/usr/local/bin/perl #record.cgi # entete d'une page html print "Content-type: text/html", "\n\n";... 4

$dir = "/users/[**votre-login**]/www/commandes"; chdir $dir or die "unable to open directory $dir"; #ouverture du fichier pour ecriture open (FILE, ">pipo-commande.html") print "Error openening file pipo-commande.html","\n"; print FILE "Content-type: text/html", "\n\n"; print FILE "<HTML>", "\n"; print FILE "<TITLE>vente de pipos</title>", "\n"; print FILE "<BODY><BR>", "\n"; print FILE "who : $data'nom'<br>", "\n"; print FILE "what : $data'product'<br>", "\n"; print FILE "how-many : $data'number' <br>", "\n"; print FILE "payment: $data'payment'<br>", "\n"; if ($data'payment' eq "carte") print FILE "Card Number : $data'card'<br>", "\n"; print FILE "Expiration : $data'exp'<br>", "\n"; print FILE "</BODY>", "\n"; print FILE "</HTML>", "\n"; close (FILE); print qq(<br><a HREF ="/[**VOTRE LOGIN**]/pipo.html"> pipo.html</a><br>\n); Passez une commande. Regarderz le fichier Commandes/pipo-commande.html. 5