DEUST 2. Développement Internet

Dimension: px
Commencer à balayer dès la page:

Download "DEUST 2. Développement Internet"

Transcription

1 DEUST 2 Développement Internet

2 Table des matières TABLE DES MATIERES... 2 INTRODUCTION... 3 LES SCRIPTS CGI INTRODUCTION RESULTAT D UN SCRIPT CGI TESTER DES SCRIPTS CGI UN EXEMPLE DE SCRIPTS PERL ET LE MODULE CGI.PM COMMUNICATION DU NAVIGATEUR CLIENT VERS LE SCRIPT CGI PERL ET LES BASES DE DONNEES TEXTE EXERCICE : REPONSE A UN FORMULAIRE... 9 MICROSOFT ACTIVE SERVER PAGES (ASP) EXEMPLES D'INCLUSION DE FICHIERS ET DE FONCTIONS UTILISATION DE FONCTIONS GENERALES UTILISATION DE L OBJET REQUEST UTILISATION DE L OBJET RESPONSE UTILISATION DE L OBJET APPLICATION UTILISATION DE L OBJET SESSION CONNEXION AUX BASES DE DONNEES ACCESS BASES DE DONNEES MYSQL LANCEMENT DU SERVEUR MYSQL CREATION D UNE BASE DE DONNEES MYSQL EN MODE INTERACTIF ARRET DE EASYPHP SERVLETS JAVA, JAVA SERVER PAGES ET JAVA BEANS PRINCIPE TESTS DE SERVLETS ET DE PAGES JSP DIRECTIVES D'INSERTION UTILISATION DE L OBJET REQUEST : RECUPERATION D ELEMENTS DE FORMULAIRE UTILISATION DE VARIABLES ET DE CLASSES JAVA CONNEXION AUX BASES DE DONNEES ACCESS ET MYSQL PHP LOCALISATION ET IDENTIFICATION DES FICHIERS BALISES PHP LES VARIABLES DU LANGAGE PHP STRUCTURES DE CONTROLE FONCTIONS PHP VARIABLES PROVENANT D'UN FORMULAIRE CLASSES PHP PHP ET LES FICHIERS TEXTE PHP ET LES FONCTIONS SYSTEMES LES SESSIONS CONNEXION AUX BASES DE DONNEES MYSQL CREATION ET UTILISATION D UN PANIER

3 Introduction Lors d une connexion à Internet, lorsqu un utilisateur (client) demande au serveur auquel il est connecté d effectuer un traitement (interrogation d une base de données en réponse à une demande effectuée avec un formulaire), un programme s exécute en temps réel sur le serveur et renvoie le résultat (généralement une page HTML) au navigateur client. La page renvoyée est appelée une page dynamique, car elle n était pas stockée telle quelle sur le serveur mais a été générée lors de la demande. Plusieurs technologies permettent de générer des pages dynamiquement. La technologie choisie dépend du système d exploitation de la machine utilisée comme serveur (Windows, Unix, Linux ) et du logiciel serveur lui-même (Apache, MIIS, Netscape server ). Ce cours a pour but de présenter chacune des technologies coexistant actuellement : CGI, ASP, JSP et PHP. Pour chacune, on étudiera l interfaçage avec des bases de données (bases de données texte, Access, MySQL). Les scripts CGI 1. Introduction. La programmation CGI (Common Gateway Interface) permet de construire dynamiquement des documents par un serveur HTTP. Elle est associée au serveur Apache, généralement sous Unix et Linux mais éventuellement aussi sous Windows. Les programmes CGI (appelés généralement scripts CGI) sont placés dans un répertoire spécifique de l'arborescence du serveur, nommé /cgi-bin, contrôlé par l'administrateur du serveur qui vérifie leur sécurité avant de les rendre accessibles au public. Un programme CGI peut être écrit dans de nombreux langages, mais le langage choisi : doit pouvoir être exécuté sur une ligne de commande sans faire appel à un autre programme doit avoir accès aux variables d'environnement du serveur doit permettre d'écrire sur la sortie standard On utilise : sous UNIX, les langages PERL, C, C++, Fortran, Pascal, TCL, sh, csh, ksh ou n'importe quel autre shell sous Windows, le C, le C++, le Visual Basic sur MAC-OS, essentiellement AppleScript. S ils sont écrits dans un langage de programmation qui demande à être compilé (C, C++, Fortran, Pascal ), les fichiers compilés sont dans le répertoire /cgi-bin. Si les scripts sont écrits dans un langage de programmation interprété (PERL, TCL, shell Unix, Applescript ), ils doivent se trouver dans le répertoire /cgi-bin. Dans tous les cas, il faut vérifier que les fichiers possèdent bien les droits d'exécution. 2. Résultat d un script CGI Un script CGI peut renvoyer une image, un document HTML, un clip audio, des références vers d autres documents, etc. Comme le navigateur client doit savoir quel type de document lui est renvoyé afin de pouvoir le traiter correctement, le résultat de l exécution d un script CGI doit comporter un en-tête (header) qui précise la nature du document renvoyé. Exemple de résultat généré par un script CGI : Content-type:text/html <head> <title>resultat du script CGI</title> </head>... l en-tête ligne blanche de séparation obligatoire corps de la page HTML générée par le script CGI 3

4 La syntaxe utilisée pour indiquer le type de données MIME est Content-type: type/subtype. Quelques types : application/pdf application/postscript application/rtf application/x-tex image/gif image/jpeg text/html text/plain text/richtext video/mpeg Type MIME Extension du fichier et nature du fichier pdf (format de fichier d Acrobat Reader) ai eps ps (format lisible par Ghostview) rtf (format RTF classique des traitements de texte tex (fichier en LaTex) gif (fichier image format GIF) jpeg (fichier image format JPEG) html htm (page HTML) txt (page en format TXT) rtx (page en format RTX) mpeg mpg mpe (fichiers video MPEG) 3. Tester des scripts CGI On teste des scripts CGI : 1) en mode ligne de commande : - perl cw nomscript.cgi permet de vérifier la syntaxe d un script - perl nomscript.cgi permet de le faire exécuter 2) avec un serveur Apache, utilisable en hôte local. Dans ce cas, - les fichiers HTML se trouvent dans un répertoire spécifique, ici /var/www/htdocs - les scripts CGI se trouvent dans un autre répertoire spécifique, ici /var/www/cgi-bin - l interpréteur PERL se trouve dans le répertoire /usr/bin/perl. L adresse fournie au navigateur pour l affichage d une page HTML est Si cette page HTML contient un formulaire, l appel au script CGI devant traiter ce formulaire se fait par : <form action="/cgi-bin/nomscript.cgi" method=" " > L adresse pour l'exécution directe d'un script CGI sans page HTML associée est : 4. Un exemple de scripts Ouvrir un terminal et aller dans /var/www/cgi-bin.taper emacs page1.cgi et entrer le script suivant : #!/usr/bin/perl Script page1.cgi print "Content-type:text/html\n\n"; print "<head><title>page créée par script CGI</title>" ; print "</head>\n"; print "<h2>page créée par script CGI</h2>\n"; print "On crée une page HTML complète par script CGI<br>\n"; print "Celle-ci en est un exemple<br>\n" ; print "\n"; L enregistrer, lui donner des droits d exécution par : chmod +x page1.cgi. Vérifier sa syntaxe par perl cw page1.cgi Exécution en ligne de commande Le faire exécuter en ligne de commande par : perl page1.cgi. Vérifier sur l'écran la qualité du code HTML résultant. Exécution avec Apache Faire exécuter le script CGI par Apache en donnant au navigateur l adresse : puisqu il s agit d un scipt CGI sans page HTML associée. 4

5 5. PERL et le module CGI.pm Le module CGI.pm, généralement installé avec Apache, automatise le décodage des données provenant d un formulaire. Module CGI utilisé en mode objet La disquette contient un répertoire htdocs et un répertoire cgi-bin. On doit recopier le contenu du répertoire htdocs dans /var/www/htdocs et le contenu du répertoire cgi-bin dans /var/www/cgi-bin. Pour recopier : o Poste de travail double-clic sur disquette icône sur le bureau. Double-clic sur l icône pour faire apparaître de contenu de la dk. o Applications Outils système Navigateur de fichiers : remonter jusqu à var, puis descendre dans www (on ira d abord dans htdocs, puis dans cgi-bin) o Faire glisser les fichiers des deux répertoires de la dk vers les répertoires correspondant de /var/www o Ensuite faire un clic droit sur l icône de la disquette pour démonter le floppy avant de retirer la disquette. Donner ensuite aux scripts cgi les droits d exécution et au fichier base.txt les droits de lecture. Soit la page HTML suivante figurant dans www/htdocs : Page voter.html <head><title>pouvez-vous voter?</title></head> <h2>avez-vous l'âge de voter?</h2> <form method="get" action="/cgi-bin/voter.cgi"> Quel est votre âge? <input type="text" name="age" size=3><br> <input type="submit" value="ok"> </form> Cette page contient un formulaire demandant l âge du client ; l action associée au bouton submit est l appel du script cgi suivant, de nom voter.cgi placé dans le répertoire www/cgi-bin : Script voter.cgi #!/usr/bin/perl (emplacement de l'interpréteur perl) use CGI; (module CGI.pm associé à l'interpréteur) $query=new CGI; (objet créé par le module) if ($query->param('age')>=18) { (récupération de la valeur de la variable age) $voter='oui'; else { $voter='non'; print $query->header; (impression automatique de l'en-tête) print "<head><title>pouvez-vous voter?</title></head>\n"; print "<h2>avez-vous l'âge de voter?</h2>\n"; if ($voter eq 'oui') { print "<P>Vous êtes majeur, donc vous pouvez voter.</p>\n"; else { print "<P>Vous êtes encore trop jeune pour voter...</p>\n"; print "\n"; Faites exécuter le fichier HTML par Apache avec l adresse En validant le formulaire, le script CGI est automatiquement exécuté. 5

6 Module CGI utilisé en mode standard Soit le fichier suivant, figurant dans /var/www/htdocs : Page decode1.html <head><title>decode2</title></head> Test de decodage des parametres d'un formulaire <form method="get" action="cgi-bin/decode1.cgi"> <p>nom : <input type="text" name="nom"><br> Prenom : <input type="text" name="prenom"><br> Age : <input type="text" name="age"><br> </p> <input type="submit" value="ok"> </form> Le script decode1.cgi, dans /var/www/cgi-bin, effectue le décodage des paramètres : #!/usr/bin/perl Script decode1.cgi use CGI qw(:standard); print header(); print "<head><title>les parametres d'un formulaire</title></head>\n"; print "\n"; print "<H2>Les parametres d'un formulaire</h2>\n"; if (param()) { print "Nom : ", param('nom'),"<br>\n"; print "Prenom : ",param('prenom'),"<br>\n"; print "Age : ",param('age'),"<br>\n"; else { print "<P>Aucun formulaire n'est soumis</p>\n"; print "\n"; On utilise ici le module CGI en mode standard et pas en mode objet. Les paramètres sont alors accessibles dans le script CGI par $n = param('nom'); alors qu en mode objet, ils le sont par : $n=$query->param('nom'); Exécution avec Apache Faire exécuter le fichier HTML par Récupération des couples variables - valeurs Soit le fichier suivant, figurant dans /var/www/htdocs : Page decode2.html <head><title>decode2</title></head> Test de decodage des parametres d'un formulaire <form method="get"/"post" action="cgi-bin/decode2.cgi"> <p> Nom : <input type="text" name="nom"><br> Prenom : <input type="text" name="prenom"><br> Age : <input type="text" name="age"><br> </p> <input type="submit" value="ok"> </form> Le script decode2.cgi, dans /var/www/cgi-bin, effectue le décodage des paramètres (variables et valeurs) : 6

7 #!/usr/bin/perl use CGI qw(:standard); Script decode2.cgi (interface standard, non objet ; $query=new CGI; est alors inutile et on écrira param('nom') au lieu de $query->param('nom') ) print header(); print "<head><title>les parametres d'un formulaire</title></head>\n"; print "\n"; print "<h2>les parametres d'un formulaire</h2>\n"; if (param()) = param(); foreach $key (@keys) { print $key, " : ", param($key), "<br>\n"; else { print "<p>aucun formulaire n'est soumis</p>\n"; print "\n"; Exécution avec Apache Faire exécuter le fichier HTML par (@keys est un tableau) 6. Communication du navigateur client vers le script CGI Pour transmettre les paramètres d un formulaire au script CGI, la norme CGI prévoit d utiliser les variables d environnement du serveur HTTP. Les principales variables utilisées sont : CONTENT_LENGTH QUERY_STRING REQUEST_METHOD Variable Valeur Taille en octets du corps de la requête Données transmises après le? dans l'url POST ou GET Exemple avec GET Soit le formulaire suivant : <form method="get" action="/cgi-bin/machin.cgi"> Nom : <input type="text" name="nom"> Pr&eacute ;nom : <input type="text" name="prenom"> Age : <input type="text" name="age"> <input type="submit" value="ok"> </form> Au moment où l utilisateur clique sur le bouton submit, la ligne de l URL affiche : Tout ce qui suit le? correspond aux différents couples variable=valeur provenant du formulaire. Lorsque le formulaire de la page HTML comporte l instruction method="get" (ou ne comporte pas d instruction METHOD) alors la variable REQUEST_METHOD prend la valeur get (par défaut) et la variable QUERY_STRING prend comme valeur tout ce qui suit le? dans l URL demandée par le formulaire. QUERY_STRING prend donc ici la valeur nom=dupont&prenom=antoine&age=25. Si l utilisateur a tapé des espaces, ils sont remplacés par des +. Exemple avec POST Soit le formulaire suivant : <form method="post" action="/cgi-bin/machin.cgi"> Nom : <input type="text" name="nom"> Pr&eacute ;nom : <input type="text" name="prenom"> Age : <input type="text" name="age"> <input type="submit" value="ok"> </form> 7

8 Au moment où l utilisateur clique sur le bouton submit, la ligne de l URL affiche seulement : Lorsque le formulaire comporte l instruction method="post", alors la variable REQUEST_METHOD prend la valeur post et le serveur reçoit, sur son entrée standard, d abord la demande d exécution du CGI, ensuite le codage des paramètres. La variable CONTENT_LENGTH permet de déterminer la longueur des données à lire. CONTENT-LENGTH recevra donc ici la valeur 32 (nombre de caractères de la chaîne : nom=dupont&prenom=antoine&age=25) puis le serveur recevra sur son entrée standard la chaîne elle-même. Choix entre GET et POST On emploie post si les valeurs des variables ne doivent pas être visibles (mot de passe, par exemple), si les données sont longues, s'il y a un fichier joint. On emploie get dans la plupart des autres cas. 7. PERL et les bases de données texte Le fichier suivant comporte une base de données texte qui est une sorte de carnet d'adresses (le séparateur sur chaque ligne est en fait une tabulation) : Fichier base.txt dupont dupont@ssi.fr explorer francois francois@wanadoo.fr explorer philippe phil@aol.com opera anne anne@compuserve.com explorer anne anne@hotmail.com opera Lecture de la base La page suivante demande un nom pour interroger la base de données. Page lecture.html <head><title>interrogation de la base</title></head> <h1>recherche d'enregistrements</h1><br> <form method="get" action="/cgi-bin/lecture.cgi"> Nom : <input type="text" name="nom"><br> <input type="submit" value="ok"> </form> Cette page fait appel au script CGI suivant : #!/usr/bin/perl Script lecture.cgi use CGI; $query = new CGI; $fichier="base.txt"; &print_page_start; if ($query->param()) { $search_name = $query->param('nom'); eval { open (GUESTS, "< $fichier") or die "Impossible d'ouvrir $fichier : $!"; while (<GUESTS>) { ($name, $ , $browser)=split /\t/; if ($name =~ /$search_name/i) { print "$name<br>\n$ <br>\n$browser<br>\n<hr>\n"; &print_page_end; 8

9 sub print_page_start { print $query->header; print "\n<head>\n<title>interrogation de la base</title>\n"; print "</head>\n\n"; print "<h1>recherche d'enregistrements</h1>\n<br>"; sub print_page_end { print "\n\n"; Exécution avec Apache Faire exécuter la page HTML via l adresse 8. Exercice : réponse à un formulaire 1) Visualisez avec Netscape le fichier formulaire.html qui se trouve dans le répertoire /var/www/htdocs. On veut écrire en PERL le script CGI chargé, sur le serveur, de répondre à ce formulaire. Exemple ci-contre de formulaire rempli : 2) Ouvrez avec emacs le fichier formulaire.html et notez les renseignements dont vous aurez besoin dans le script CGI. Il ne faut pas modifier le fichier formulaire.html. 3) Dans le répertoire /var/www/cgi-bin écrivez en PERL le script CGI qui génère, en réponse au formulaire, la page HTML présentée ci-dessous. La page doit être adaptée aux renseignements fournis par le client (sexe, prénom, nom, choix du pays) et la phrase «N oubliez pas que nous proposons» ne doit apparaître que pour les utilisateurs âgés effectivement de moins de 25 ans. 4) Testez la syntaxe de ce script CGI. Donnez-lui les droits d exécution puis faites exécuter formulaire.html par Apache et vérifiez que le script CGI répond correctement à la demande de l utilisateur. 9

10 Microsoft Active Server Pages (ASP) La technologie ASP de Microsoft est dédiée aux serveurs Microsoft Internet Information Server (MIIS) fourni avec Windows XP Pro. Elle propose un cadre de développement associant du HTML, des scripts incorporés dans les pages de suffixe.asp et des composants (ou contrôles) ActiveX. Les scripts sont généralement écrits en VBScript ou en Jscript (version de JavaScript modifiée par Microsoft). La première fois qu'une page ASP est appelée, les scripts de la page sont "compilés". Le code généré est conservé par le serveur tant qu'il n'est pas modifié. Les scripts compilés sont ensuite exécutés et les résultats sont retournés au client sous forme d'une page HTML. Recopier le dossier pages fourni sur la disquette dans C:\inetpub\wwwroot L icône IIS figure sur le bureau. Effectuer un double-clic sur elle. Choisir ensuite «Site Web par défaut» et faire un double-clic sur le triangle tourné vers la droite pour lancer le serveur. L appel des pages se fait par Mettre la base de données PAYS1 en écriture pour les utilisateurs Web : Cliquer sur la base, bouton droit, menu Propriétés Sécurité Compte invité Internet : autoriser lecture & exécution, lecture, écriture. 1. Exemples d'inclusion de fichiers et de fonctions La première page est incluse dans la seconde : Page world.asp <%@ LANGUAGE="VBSCRIPT"%> <%Response.Write("Hello, World") %> Page inclusion.asp <HEAD><TITLE>Exemple d'inclusion de page ASP</TITLE></HEAD> <p>la ligne suivante :<br> <!--#include file="world.asp"--><br> permet d'inclure dans la page courante le fichier "world.asp"<br> dont voici le résultat :</p> <!--#include file="world.asp"--> La première page contenant une fonction est incluse dans la seconde page, qui fait appel à la fonction : <% function Carre(num) Carre = num* num end function Page Carre.asp function Cube(num) Cube = num * num * num end function %> Page utilisation.asp <%@ LANGUAGE="VBSCRIPT"%> <!--#include file="carre.asp"--> <% Dim Age Age=CInt(10) %> <HEAD><TITLE>Exemple d'inclusion de fonction</title></head> Ce meuble a <%=Age%> ans et en paraît <%=Carre(Age)%>. <br> La maison a le même âge et en paraît <%=Cube(Age)%>! 10

11 2. Utilisation de fonctions générales Exemple d'utilisation de fonctions de date et heure : Page salut.asp <%@ LANGUAGE="VBSCRIPT"%> <HEAD><TITLE>Exemple de page ASP</TITLE></HEAD> Aujourd'hui, nous sommes le <%=Now%> <br> <%Dim strgreeting If Hour(Now)<12 Then strgreeting="bonne matinée!" ElseIf Hour(Now)<16 Then strgreeting="bonne après-midi!" Else strgreeting="bonne soirée!" End If %> <center><h3><%=strgreeting%></h3></center> Si la page ASP est appelée l après-midi, le serveur générera le code HTML suivant : <HEAD><TITLE>Exemple de page ASP</TITLE></HEAD> <H1>Bonne soirée!</h1> Exercice En vous inspirant des deux fichiers Carre.asp et utilisation.asp qui se trouvent dans le dossier pages, créez un fichier table.asp affichant le résultat ci-contre : Vous initialiserez un entier i à la valeur 1, puis vous utiliserez une boucle : Do While i<= 20 %> <% Loop %> pour faire afficher les lignes successives du tableau. 3. Utilisation de l objet Request L'objet Request permet de traiter les requêtes provenant de formulaires. Passage des valeurs d un formulaire (méthode POST) La page suivante comporte un formulaire faisant appel à la méthode POST : Page form1.html <HEAD><TITLE>Formulaire</TITLE></HEAD> <FORM METHOD="post" ACTION="rep1.asp"></P> <TABLE> <TR> <TD>Prénom :</TD> <TD><INPUT TYPE="text" NAME="prenom"></TD> </TR> <TR> <TD>Nom : </TD> <TD><INPUT TYPE="text" NAME="nom"></TD> </TR> 11

12 <TR> <TD>Type d'ordinateur : </TD> <TD> <INPUT TYPE="Checkbox" NAME="type" VALUE="PC">PC <INPUT TYPE="Checkbox" NAME="type" VALUE="MAC">Mac </TD> </TR> </TABLE> <P><INPUT TYPE="submit" VALUE="OK"></P> </FORM> La page ASP générant la réponse est : Page rep1.asp <%@ LANGUAGE="VBSCRIPT"%> <HEAD><TITLE>Réponse formulaire</title></head> <P>Voici les éléments que vous avez donnés : </P> <TABLE> <TR> <TD>Votre prénom est : </TD> <TD><%=Request.Form("prenom")%></TD> </TR> <TR> <TD>Votre nom est : </TD> <TD><%=Request.Form("nom")%></TD> </TR> <TR> <TD>Votre type d'ordinateur est : </TD> <TD><%=Request.Form("type")%></TD> </TR> </TABLE> Récupération de la valeur d une variable passée dans l URL de la page (méthode GET) La page suivante comporte le même formulaire faisant cette fois appel à la méthode GET : Page form2.html <HEAD><TITLE>Formulaire</TITLE></HEAD> <FORM METHOD="get" ACTION="rep2.asp"></P> <TABLE> <TR> <TD>Prénom : </TD> <TD><INPUT TYPE="text" NAME="prenom"></TD> </TR> <TR> <TD>Nom : </TD> <TD><INPUT TYPE="text" NAME="nom"></TD> </TR> <TR> <TD>Type d'ordinateur : </TD> <TD> <INPUT TYPE="Checkbox" NAME="type" VALUE="PC">PC <INPUT TYPE="Checkbox" NAME="type" VALUE="MAC">Mac </TD> </TR> </TABLE> <P><INPUT TYPE="submit" VALUE="OK"></P> </FORM> 12

13 La page ASP générant la réponse fait maintenant appel à la méthode QueryString de la variable Request : Page rep2.asp <%@ LANGUAGE="VBSCRIPT"%> <HEAD><TITLE>Réponse</TITLE></HEAD> <TABLE> <TR><TD>La variable prénom contient : </TD> <TD><%=Request.QueryString("prenom")%></TD></TR> <TR><TD>La variable nom contient : </TD> <TD><%=Request.QueryString("nom")%></TD></TR> <TR><TD>La variable type contient : </TD> <TD><%=Request.QueryString("type")%></TD></TR> </TABLE> Informations sur le navigateur Web L'objet Request a accès aux variables d'environnement du serveur : Page nav.asp <HEAD><TITLE>Navigateur</TITLE></HEAD> <P><B>Consultation de variable du serveur</b></p> <P><%=Request.ServerVariables("HTTP_USER_AGENT")%> <br>permet de récupérer les renseignements sur le navigateur client.<br> Le résultat est ici :</P> <%=Request.ServerVariables("HTTP_USER_AGENT")%> 4. Utilisation de l objet Response Ecriture sur la page HTML générée <%=Request.ServerVariables("HTTP_USER_AGENT")%> est en fait une abréviation de <%Response.Write Request.ServerVariables("HTTP_USER_AGENT")%> Ecriture et lecture de cookies Page cookie1.asp <head><title>formulaire</title></head> Merci de remplir ce formulaire <form method="get" action="validation.asp"> <table> <tr> <td>nom</td> <td><input type="text" name="nom" size="20"></td> </tr> <tr> <td>nationalité</td> <td><input type="text" name="nationalite" size="20"></td> </tr> </table> <input type="submit" value="envoyer" name="b1"> </form> Page validation.asp <% 'on récupère les informations relatives à l'utilisateur Response.Cookies("Nom")=Request.QueryString("Nom") Response.Cookies("Nom").Expires=Date+365 Response.Cookies("Nationalite")=Request.QueryString("Nationalite") Response.Cookies("Nationalite").Expires=Date+365%> 13

14 <head> <title>validation</title> </head> Mme ou M. <%=Request.Cookies("Nom")%>, votre nationalité est <%=Request.Cookies("Nationalite")%> On peut tester, avant de demander les renseignements à l'utilisateur, si le cookie n'existe pas déjà : Page cookie2.asp <head><title>formulaire</title></head> <%If Request.Cookies("Nom")= "" Then ' test <%' il n'y a pas de cookie alors :%> Merci de remplir ce formulaire <form method="get" action="validation.asp"> <table> <tr> <td>nom</td> <td><input type="text" name="nom" size="20"></td> </tr> <tr> <td>nationalité</td> <td><input type="text" name="nationalite" size="20"></td> </tr> </table> <input type="submit" value="envoyer" name="b1"> </form> <%Else%> Bienvenue sur notre site et merci de votre fidélité, Mme ou M. <%=Request.Cookies("Nom")%>, votre nationalité est <%=Request.Cookies("Nationalite")%> <%End If%> La récupération des cookies existant se fait par : Page cookie3.asp <head> <title>recuperation de tous les cookies</title> </head> <% For Each cookie in Request.Cookies %> <%="Cookie : "+ cookie +" : " + Request.Cookies(cookie)%><BR> <% Next %> 5. Utilisation de l objet Application Un objet Application démarre à la première demande d une page.asp spécifique à un serveur et se termine quand on arrête le serveur. Cet objet peut être utilisé pour stocker des valeurs de variables. Exemple : Page date.asp <%@ LANGUAGE="VBSCRIPT"%> <HEAD><TITLE>Date</TITLE></HEAD> <BODY BGCOLOR="FFFFFF"> <p>cette page a été visitée pour la dernière fois le : <%=Application("Dateheure")%></p> <p>si rien ne s'est affiché, c'est que la page a été ouverte pour la première fois depuis le lancement du serveur.</p> <p>la date va être mise à jour par :<br> <%Application.Lock%><br> <%Application("Dateheure")=Now%><br> <%Application.Unlock%></p> 14

15 <%Application.Lock%> <%Application("Dateheure")=Now%> <%Application.Unlock%> <p>il suffit maintenant de recharger la page pour que la dernière date de chargement de la page s'affiche.</p> 6. Utilisation de l objet Session Les variables de type Session stockent des informations sur le serveur le temps d une session, sont associées à un visiteur et peuvent être utilisées indifféremment sur toutes les pages.asp d un site Web. Exemple d'utilisation : Page session.asp <%@ LANGUAGE="VBSCRIPT"%> <HEAD><TITLE>Lecture des paramètres de la session</title></head> <P>Identificateur de la session : <%=Session.SessionID%></P> <%Session("compteur")=Session("compteur")+1%> <P>Vous avez visité cette page <%=Session("compteur")%> fois dans cette session</p> 7. Connexion aux bases de données Access Les pages ASP s'interfacent avec les composants ActiveX, qui sont des morceaux de logiciels jouant un rôle spécifique. Les composants ActiveX peuvent être écrits en C++, Java, Visual Basic, Cobol... Une bibliothèque de composants est disponible. Un composant ActiveX permet l accès à une base de données relationnelle. Un objet composant est créé dans la page par la méthode CreateObject de l objet Server. On peut ensuite accéder à ses propriétés et méthodes pour exécuter des fonctions. Lorsque la connexion est établie, un objet de type RecordSet permet de récupérer le résultat des requêtes sur la base de données. La base de données Access PAYS1.MDB contient une table Pays ayant un champ NOM et un champ CAPITALE. La source de données et le pilote doivent être déclarés via l option ODBC 32 bits du panneau de configuration de Windows. Lecture de la base de données La page suivante lit le contenu de la table pays de la base PAYS1 via une requête SQL : Page lecture1.asp <%@ LANGUAGE="VBSCRIPT"%> <HEAD><TITLE>Lecture d'une base de données Access</TITLE></HEAD> <TABLE BORDER=1> <TR><TD><B>Nom du pays</b></td><td><b>capitale</b></td></tr> <% ' crée un objet de type Connection Set objconnection=server.createobject("adodb.connection") ' ouverture connexion : base, utilisateur, mot de passe objconnection.open "Driver={Microsoft Access Driver (*.mdb); DBQ=" & Server.MapPath("/pages") & "\pays1.mdb" ' crée un objet de type RecordSet Set objrecord=server.createobject("adodb.recordset") ' le remplit avec le résultat d une requête objrecord.open "SELECT * FROM pays", objconnection 15

16 %> </TABLE> Création d un nouvel enregistrement ' fait afficher le résultat ligne à ligne Do While Not objrecord.eof %> <TR> <TD><%=objRecord("nom")%></TD><TD><%=objRecord("capitale")%></TD> </TR> <%objrecord.movenext Loop objrecord.close objconnection.close Set objrecord = Nothing Set objconnection = Nothing ' fermeture de la connexion La page creation1.html demande dans un formulaire le nom du pays correspondant à l enregistrement à créer ; la création effective est effectuée par la page creation1.asp. Page creation1.html <HEAD><TITLE>Creation</TITLE></HEAD> <FORM METHOD=POST ACTION="creation1.asp"></P> <P>Pays : <INPUT TYPE="text" NAME="nom"></P> <P>Capitale : <INPUT TYPE="text" NAME="ville"></P> <P><INPUT TYPE="submit" VALUE="Envoi"></P> </FORM> Page creation1.asp <%@ LANGUAGE="VBSCRIPT"%> <HEAD> <TITLE>Création d'un enregistrement</title> </HEAD> <% pays=request.form("nom") capitale=request.form("ville") Set objconnection=server.createobject("adodb.connection") objconnection.open "Driver={Microsoft Access Driver (*.mdb); DBQ=" & Server.MapPath("/pages") & "\pays1.mdb" Set objrecord=server.createobject("adodb.recordset") %> <%objrecord.open "INSERT INTO pays (nom,capitale) VALUES('"&pays&"','"&capitale&"')", objconnection %> <p>enregistrement ajouté à la base. Nouveau contenu : </p> <TABLE BORDER=1> <TR><TD><B>Nom du pays</b></td><td><b>capitale</b></td></tr> <%objrecord.open "SELECT * FROM pays", objconnection Do While Not objrecord.eof %> <TR><TD><%=objRecord("nom")%></TD> <TD><%=objRecord("capitale")%></TD></TR> <%objrecord.movenext Loop%> </table> <%objrecord.close objconnection.close Set objrecord = Nothing Set objconnection = Nothing %> 16

17 Exercice : suppression d un enregistrement La page suppression1.html demande dans un formulaire le nom du pays correspondant à l enregistrement à supprimer ; la suppression effective doit être effectuée par la page suppression1.asp. Page suppression1.html <HEAD> <TITLE>Suppression</TITLE> /HEAD> <FORM METHOD=POST ACTION="suppression1.asp"></P> <P>Pays : <INPUT TYPE="text" NAME="nom"></P> <P><INPUT TYPE="submit" VALUE="Envoi"></P> </FORM> Page suppression1.asp réalisant la suppression effective <%@ LANGUAGE="VBSCRIPT"%> <HEAD><TITLE>Suppression d'un enregistrement</title></head> <% nom=request.form("nom") Set objconnection=server.createobject("adodb.connection") objconnection.open "Driver={Microsoft Access Driver (*.mdb); DBQ=" & Server.MapPath("/pages") & "\pays1.mdb" Set objrecord=server.createobject("adodb.recordset") objrecord.open "DELETE FROM pays WHERE nom='"&nom&"'", objconnection %> <p>enregistrement supprimé de la base. Nouveau contenu :</p> <table border="1"> <TR><TD><B>Nom du pays</b></td><td><b>capitale</b></td></tr> <%objrecord.open "SELECT * FROM pays", objconnection Do While Not objrecord.eof %> <TR><TD><%=objRecord("nom")%></TD> <TD><%=objRecord("capitale")%></TD></TR> <%objrecord.movenext Loop%> </table> <%objrecord.close objconnection.close Set objrecord = Nothing Set objconnection = Nothing %> Exercice Faites exécuter le fichier question.asp qui propose le formulaire ci-contre : Puis écrivez la page asp qui répond à ce formulaire. Exemple : 17

18 Bases de données MySQL 1. Lancement du serveur mysql La distribution mysql est généralement utilisée sous le système d exploitation Linux, où le moteur mysql est couplé avec Apache. Sous Linux, les bases mysql sont stockées dans /var/lib/mysql. Mais elle existe aussi, dans une optique de développement, sous Windows via easyphp. Cliquer sur l icône easyphp sur le bureau. easyphp lance en même temps un serveur Apache pour Windows et le serveur de bases de données mysql. Dès que easyphp est lancé, son icône apparaît dans la barre des tâches et clignote. Sous Windows, les bases mysql sont stockées dans C:\Program files\easyphp \mysql\data. 2. Création d une base de données Recopiez les fichiers PRODUITS.DUMP et PRIX.DUMP dans C:\Program files\easyphp \mysql\bin. En suivant les instructions, créez la base de données PRODUITS et remplissez-la à l aide du fichier PRODUITS.DUMP suivant : CREATE TABLE fournisseurs (num tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMENT, nom varchar(30), adresse varchar(100), PRIMARY KEY(num), UNIQUE id(num)); INSERT INTO fournisseurs VALUES(1, 'Dupuis SA', '13 rue de la Convention Paris'); INSERT INTO fournisseurs VALUES(2, 'Meubles en gros', '18 place de la Bastille Paris'); INSERT INTO fournisseurs VALUES(3, 'Fabricat', '120 rue du faubourg Montmartre Paris'); CREATE TABLE produits (num tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMENT, nom varchar(30), fournisseur tinyint(4), PRIMARY KEY(num), UNIQUE id(num)); INSERT INTO produits VALUES(1, 'table Louis XV', 1); INSERT INTO produits VALUES(2, 'chaise Renaissance', 1); INSERT INTO produits VALUES(3, 'lit Empire',2); INSERT INTO produits VALUES(4, 'commode Renaissance',3); INSERT INTO produits VALUES(5, 'table de chevet',2); INSERT INTO produits VALUES(6, 'canape Empire',3); CREATE TABLE prix (numproduit tinyint(4) DEFAULT '0' NOT NULL PRIMARY KEY(numproduit), UNIQUE id(numproduit)); AUTO_INCREMENT, prix int(4), INSERT INTO prix VALUES(1, 850); INSERT INTO prix VALUES(2, 150); INSERT INTO prix VALUES(3, 950); INSERT INTO prix VALUES(4, 920); INSERT INTO prix VALUES(5, 100); INSERT INTO prix VALUES(6, 1050); 3. mysql en mode interactif Ajout d occurrences L insertion d une occurrence dans une relation se fait par INSERT. Insérez dans la base de données PRODUITS un produit canape Empire provenant du fournisseur n 3 et de prix 1100 (deux commandes INSERT sont nécessaires). Pour vérifier, tapez une requête faisant afficher le nom de chaque produit et son prix. Le produit qui vient d être inséré doit apparaître. Modification de la structure de la base On peut modifier la structure de la base par l instruction ALTER. Tapez la commande : alter table Fournisseurs modify adresse char(200); qui passe la taille de l attribut adresse de Fournisseurs de 100 à 200 caractères, et regardez le message renvoyé par le SGBD. Tapez ensuite la commande : alter table Fournisseurs add (telephone char(10)); qui ajoute un attribut à la relation Fournisseurs. Tapez : select * from fournisseurs; pour voir le résultat. 18

19 Modification d occurrences La modification d occurrences se fait par l instruction UPDATE. Tapez successivement les trois lignes : update Fournisseurs set telephone = ' ' where num= 1; update Fournisseurs set telephone = ' ' where num= 2; update Fournisseurs set telephone = ' ' where num= 3; Tapez select * from fournisseurs; pour voir le résultat. Exécution de requêtes Faites exécuter les requêtes suivantes et notez-en le texte : - nom des fournisseurs dont le numéro de téléphone commence par nom des produits de prix inférieur à nom des fournisseurs proposant des produits de prix compris entre 500 et nombre de fournisseurs habitant le 12 ème arrondissement de Paris - nom de chaque fournisseur et nombre de produits proposés par ce fournisseur Suppression de table La suppression de table se fait par DROP TABLE Supprimez la table PRIX de la base de données PRODUITS. Réinitialisation Le fichier PRIX.DUMP a le contenu suivant : CREATE TABLE prix (numproduit tinyint(4) DEFAULT '0' NOT NULL PRIMARY KEY(numproduit), UNIQUE id(numproduit)); AUTO_INCREMENT, prix int(5), INSERT INTO prix VALUES(1, 950); INSERT INTO prix VALUES(2, 250); INSERT INTO prix VALUES(3, 1050); INSERT INTO prix VALUES(4, 940); INSERT INTO prix VALUES(5, 120); INSERT INTO prix VALUES(6, 1100); INSERT INTO prix VALUES(7, 1250); 19

20 Les prix peuvent à présent s exprimer avec 5 chiffres. Recréez la table prix dans la base PRODUITS en faisant effectuer les requêtes du fichier PRIX.DUMP. Exécution de requêtes (suite) Effectuez les requêtes suivantes : - nom des produits de prix supérieur à nom de chaque fournisseur et somme des prix des produits proposés par ce fournisseur 4. Arrêt de easyphp Cliquez avec le bouton droit de la souris sur l icône easyphp dans la barre des tâches, choisissez Arrêter puis Quitter. 20

21 Servlets Java, Java Server Pages et Java Beans Un servlet est un petit morceau de code Java qui étend les fonctionnalités d'un serveur Web. Sun a développé un serveur entièrement en Java, le Java Web Server, qui fonctionne à base de servlets et est disponible pour les plates-formes Windows et Solaris, et développe en parallèle des supports de servlets (moteurs Java) pour les autres serveurs (dont Apache, MIIS et Netscape). Les Java Server Pages d extension.jsp sont construites par-dessus les servlets. Le moteur Java transforme les fichiers.jsp en servlets (étape de traduction) puis exécute le servlet résultant qui génère la page HTML (étape de requête). 1. Principe 2. Tests de servlets et de pages JSP Le serveur Tomcat, issu du projet jakarta-tomcat et libre de droits, est téléchargeable sur Internet. Il nécessite un JDK et peut être utilisé seul ou être couplé à Apache. L icône TOMCAT5 figure sur le bureau. Effectuer un double-clic sur l icône ouvre une fenêtre de dialogue. Un clic sur le bouton Start lance le serveur. Le dossier pages de la disquette doit être recopié dans le dossier C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps, à côté de ROOT L appel des pages via le serveur se fait alors par L arrêt de Tomcat se fait en appyant sur le bouton Stop. 3. Directives d'insertion Comme les SSI, les pages JSP peuvent contenir des directives d'inclusion qui sont traitées au moment de la traduction. Exemple à exécuter par /pages/ : Page page1.jsp <HEAD> <TITLE>Exemple d'inclusion</title> </HEAD> <%@include file="entete.jsp"%> L'en-tête (ci-dessus) est faite par l'inclusion du fichier "entete.jsp". <P>Corps de la page : on entre ici ce que l'on souhaite mettre dans la page.</p> Le sommaire (ci-dessous) est aussi fait par inclusion du fichier "sommaire.jsp" : <%@include file="sommaire.jsp"%> 21

22 Page entete.jsp <%-- Entete --%> <H1>Titre général</h1> <H2>Titre de chapitre</h2> <hr> <%-- Fin entete--%> Page sommaire.jsp <%-- Sommaire --%> <hr> <TABLE> <tr> <td width=100>accueil</td> <td width=100>nouvelles</td> <td width=100>editorial</td> </tr> </table> <%-- Fin sommaire --%> 4. Utilisation de l objet request : récupération d éléments de formulaire L'objet request permet de récupérer les valeurs des champs des formulaires. Exemple 1 Page formulaire.jsp <HEAD><TITLE>Un formulaire</title></head> <FORM METHOD="get" ACTION="requete.jsp"> <P>Exemple de formulaire</p> <TABLE> <TR> <TD>Nom :</TD> <TD><INPUT TYPE="text" NAME="nom"></TD> </TR> <TR> <TD>Prénom :</TD> <TD><INPUT TYPE="text" NAME="prenom"></TD> </TR> <TR> <TD>Ordinateur : </TD> <TD><INPUT TYPE="RADIO" NAME="supp" VALUE="mac" CHECKED>Mac <INPUT TYPE="RADIO" NAME="supp" VALUE="pc"> PC </TD> </TR> <TR> <TD>Système d'exploitation : </TD> <TD> <SELECT NAME="sys"> <OPTION VALUE="win">Windows <OPTION VALUE="linux">Linux <OPTION VALUE="macos">Mac-OS </SELECT> </TD> </TR> </TABLE> <P><INPUT TYPE="SUBMIT" VALUE="Confirmer"></P> </FORM> Page requete.jsp <P>Vous avez repondu : </P> <TABLE> <TR><TD>Nom : </TD><TD> <%= request.getparameter("nom") %></TD></TR> <TR><TD>Prénom : </TD> <TD> <%= request.getparameter("prenom") %></TD></TR> <TR><TD>Ordinateur : </TD> <TD> <%= request.getparameter("supp") %></TD></TR> <TR><TD>Système d'exploitation : </TD> <TD> <%= request.getparameter("sys") %></TD></TR> </TABLE> Remarque : le formulaire peut être employé également avec la méthode POST sans rien changer au fichier requete.jsp. L analyse des paramètres se fait à l aide des mêmes fonctions. 22

23 Exemple 2 Récupération d éléments de formulaire et calculs à l aide de ces éléments : Page calculatrice.jsp <HEAD><TITLE>Calculatrice</TITLE></HEAD> <P>Les pages JSP peuvent effectuer des calculs.</p> <P>Exemple : entrez deux nombres entiers et cliquez ensuite sur le bouton Calculs</P> <FORM METHOD="GET" ACTION="calcul.jsp"> <TABLE> <TR><TD>Premier nombre </TD> <TD><INPUT TYPE="TEXT" NAME="val1" SIZE=4></TD></TR> <TR><TD>Deuxième nombre </TD> <TD><INPUT TYPE="TEXT" NAME="val2" SIZE=4></TD></TR> </TABLE> <P><INPUT TYPE="SUBMIT" VALUE="Calculs"></P> </FORM> Page calcul.jsp <HEAD><TITLE>Resultat</TITLE></HEAD> <P>Les nombres que vous avez donnés sont <%int n1=integer.parseint(request.getparameter("val1"));%> <%=n1%> et <%int n2=integer.parseint(request.getparameter("val2"));%> <%=n2%> </P> <P> Leur somme est <%= n1 + n2 %> et leur produit est <%= n1 * n2 %> </P> 5. Utilisation de variables et de classes java La page suivante utilise des variables de type int et double et fait appel au constructeur et aux méthodes de la classe Date de java.util : Page variables.jsp <HEAD><TITLE>Utilisation de variables</title></head> <p>on déclare trois variables pi, a et b : </p> <%! double pi = java.lang.math.pi ; %> <P>pi vaut <%= pi %>.</P> <%! int a = 5; %> <P>a vaut <%= a %>.</P> <%! int b = 7; %> <P>b vaut <%= b %>.</P> <P>L'aire du cercle de rayon a (formule : pi * a * a) vaut <%= pi * a * a %>.</P> <P>Le périmètre du cercle de rayon a (formule : 2 * pi * a) vaut <%= 2 * pi * a %>.</P> <P>L'aire du cercle de rayon b vaut <%= pi * b * b %>.</P> <P>Le périmètre du cercle de rayon b vaut <%= 2 * pi * b %>.</P> <hr> <%! java.util.date maintenant = new java.util.date(); %> <P>La date du jour : on est le <%= maintenant.getdate() %>/ <%= maintenant.getmonth() +1 %>/<%= maintenant.getyear() %> </P> 23

24 La page suivante définit une variable de type int, incrémentée et testée : Page compteur1.jsp <%! int count =0; %> <HEAD> <TITLE>Un compteur</title> </HEAD> <% count = count + 1; %> <P>Cette page a été visitée <%= count %> fois.</p> <% if (count == 1) { out.print("<p>premier visiteur!</p>"); %> 6. Connexion aux bases de données Access et mysql L API JDBC permet d accéder aux bases de données depuis Java via le package java.sql. C'est la couche la plus externe pour développer des applications. Les couches inférieures sont destinées à l implantation des pilotes pour les bases de données, réalisée par des sociétés tierces ayant passé des licences avec les éditeurs de SGBD. Chaque pilote doit, pour donner accès à la base de données concernée, fournir une implémentation des interfaces et fournir une classe qui implémente l interface java.sql.driver utilisée par la classe générique java.sql.drivermanager. DriverManager gère la liste des Drivers chargés et crée les connexions TCP (Connection). Connection crée un canal de communication TCP vers une BD dont l URL est connue. Un objet de type Connection a pour attributs username et password, crée les Statements (requêtes SQL) et gère les transactions. Statement gère les requêtes SQL simples, avec les méthodes executequery admettant une chaîne SQL en paramètre et retournant un objet ResultSet, et executeupdate() permettant la mise à jour et renvoyant le nombre de rangées modifiées. Enfin, un objet de type ResultSet contient une rangée de données extraite de la base par une requête SQL. La méthode next() permet d accéder à la rangée suivante. Connexion à une base de données Access La base de données CATALOGUE.MDB contient une table Films ayant deux champs TITRE et REALISATEUR. La source de données et le pilote doivent être déclarés : Démarrer Paramètres Panneau de configuration Outils d administration Sources de données ODBC. Choisir Sources de données Système, spécifier le type de la base (Access, fichiers de type mdb) et le chemin vers la base de données. Lecture de la base Page lecture.jsp <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <% java.sql.connection con=java.sql.drivermanager.getconnection("jdbc:odbc:catalogue","","");%> <% java.sql.statement statement = con.createstatement(); %> <% java.sql.resultset rs; %> <HEAD> <TITLE>Requete</TITLE> </HEAD> <H2>Base de données CATALOGUE</h2> <H3>Contenu de la table FILMS</h3> <P> <% rs = statement.executequery("select * FROM Films"); %> <table border=1> <tr> <td><b>titre</b></td> <td><b>réalisateur</b></td> </tr> 24

25 <% while (rs.next()) { %> <tr> <td><%= rs.getstring("titre") %></td> <td><%= rs.getstring("realisateur") %></td> </tr> <% %> </table> </P> <% rs.close(); %> <% statement.close(); %> <% con.close(); %> Ecriture dans la base Un formulaire demande le film à insérer dans la base. Page insertion.jsp <HEAD><TITLE>Insertion d'un film</title></head> <FORM ACTION="ecriture1.jsp" METHOD="GET"> Titre : <INPUT TYPE="text" NAME="titre"><br> Realisateur : <INPUT TYPE="text" NAME="realisateur"><br> <INPUT TYPE="SUBMIT" NAME="ok" VALUE="OK"> </FORM> La page ecriture1.jsp suivante effectue l insertion (l écriture doit être autorisée dans la base) : Page ecriture1.jsp <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <% java.sql.connection con=java.sql.drivermanager.getconnection("jdbc:odbc:catalogue","","");%> <% java.sql.statement statement = con.createstatement(); %> <% java.sql.resultset rs; %> <HEAD> <TITLE>Requete</TITLE> </HEAD> <h2>insertion d'un enregistrement</h2> <%String s=request.getparameter("titre");%> <%String t=request.getparameter("realisateur");%> <%String requete="insert into Films VALUES('"+s+"','"+t+"')";%> <% statement.executeupdate(requete); %> <h3>nouveau contenu : </h3> <table border=1> <tr> <td><center><b>titre</b></center></td> <td><center><b>realisateur</b></center></td> </tr> <% rs = statement.executequery("select * FROM Films"); %> <% while (rs.next()) { %> <tr> <td><%= rs.getstring("titre") %></td> <td><%= rs.getstring("realisateur") %></td> </tr> <% %> </table> <% rs.close(); %> <% statement.close(); %> <% con.close(); %> 25

26 Suppression d'enregistrement de la base Un formulaire demande le film à supprimer de la base. Le fichier suppression1.jsp le supprime ffectivement. Page enleve.jsp <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <% java.sql.connection con = java.sql.drivermanager.getconnection("jdbc:odbc:catalogue","","");%> <% java.sql.statement statement = con.createstatement(); %> <% java.sql.resultset rs; %> <HEAD> <TITLE>Suppression d'un film</title> </HEAD> <FORM ACTION="suppression1.jsp" METHOD="GET"> Titre : <select name="titre"> <% rs=statement.executequery("select * FROM Films"); %> <% while (rs.next()) { out.print("<option>");%> <%=rs.getstring("titre")%> <%out.print("</option>");%> <% %> </select> <INPUT TYPE="SUBMIT" NAME="ok" VALUE="OK"> </FORM> <% rs.close(); %> <% statement.close(); %> <% con.close(); %> Page suppression1.jsp <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <%java.sql.connection con= java.sql.drivermanager.getconnection("jdbc:odbc:catalogue","","");%> <% java.sql.statement statement = con.createstatement(); %> <% java.sql.resultset rs; %> <HEAD> <TITLE>Requete</TITLE> </HEAD> <h2>suppression d'un enregistrement</h2> <%String s=request.getparameter("titre");%> <%String requete="delete from Films WHERE titre ='"+s+"'";%> <% statement.executeupdate(requete); %> <h3>nouveau contenu : </h3> <table border=1> <tr> <td><center><b>titre</b></center></td> <td><center><b>realisateur</b></center></td> </tr> <% rs = statement.executequery("select * FROM Films"); %> <% while (rs.next()) { %> <tr> <td><%= rs.getstring("titre") %></td> <td><%= rs.getstring("realisateur") %></td> </tr> <% %> </table> <% rs.close(); %> <% statement.close(); %> <% con.close(); %> 26

27 Connexion à une base de données mysql Lancer easyphp sous Windows. Si ce n est pas déjà fait, créer et remplir la base de données produits. Pour pouvoir l interroger via JDBC (Java Data Base Connectivity), il faut l enregistrer comme sources de données ODBC : Démarrer Paramètres Panneau de configuration Outils d administration Sources de données ODBC. A noter : il faut déclarer les bases de données mysql en Sources de données Système : - Ajouter une nouvelle source de données - choisir le driver MySQL ODBC 3.51 Driver - valider Dans la nouvelle fenêtre (voir ci-contre), préciser : - Data Source Name : produits - Description : ne pas remplir - Server : localhost - User : root - Password : aucun - Database : mydb Pour l exécution des pages interrogeant des bases de données mysql, il faut que les deux serveurs (easyphp et JSWDK) soient actifs. Fichier lectureproduits.jsp <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <% java.sql.connection con = java.sql.drivermanager.getconnection("jdbc:odbc:produits","","");%> <% java.sql.statement statement = con.createstatement(); %> <% java.sql.resultset rs; %> <HEAD><TITLE>Requete</TITLE></HEAD> <H3>Lecture de la base de données mysql produits par une page JSP</h3> <p><b>lecture de la table Fournisseurs</b></p> <table border=1> <tr><td><b>numéro</b></td><td><b>nom</b></td> <td><b>adresse</b></td></tr> <% rs = statement.executequery("select * FROM fournisseurs"); %> <% while (rs.next()) { %> <tr> <td><%= rs.getstring("num") %></td> <td><%= rs.getstring("nom") %></td> <td><%= rs.getstring("adresse") %></td> </tr> <% %> </table> <p><b>lecture de la table Produits</b></p> <table border=1> <tr><td><b>numéro</b></td><td><b>désignation</b></td> <td><b>fournisseur</b></td></tr> <% rs = statement.executequery("select * FROM produits"); %> <% while (rs.next()) { %> <tr> <td><%= rs.getstring("num") %></td> <td><%= rs.getstring("nom") %></td> <td><%= rs.getstring("fournisseur") %></td> </tr> <% %> </table> <p><b>lecture de la table Prix</b></p> <table border=1> <tr><td><b>numéro du produit</b></td><td><b>prix</b></td></tr> <% rs = statement.executequery("select * FROM prix"); %> <% while (rs.next()) { %> <tr> <td><%= rs.getstring("numproduit") %></td> <td><%= rs.getstring("prix") %></td> </tr> <% %> </table> 27

28 <% rs.close(); %> <% statement.close(); %> <% con.close(); %> Exercice Ecrire une page lectureproduits1.jsp faisant afficher, dans une table, les désignations des différents produits et leurs prix. On utilisera les tables produits et prix de la base de données Produits. Exemple de résultat attendu : 28

29 PHP PHP est un langage de scripts destiné à l écriture d applications Web. L API PHP permet d intégrer du code exécutable dans une page Web. Ce code est exécuté à chaque affichage de la page et peut générer dynamiquement un certain contenu qui sera incorporé au résultat renvoyé au navigateur Web du client. 1. Localisation et identification des fichiers Sous Linux, les pages PHP se mettent dans le dossier www/htdocs où se trouvent déjà les pages HTML et sont exécutées par le serveur Apache. L appel se fait par Sous Windows, on utilise le serveur easyphp : cliquer sur l icône correspondante sur le bureau. Le dossier des pages PHP est placé dans le dossier C:\Program Files\easyPHP1-8\www. L appel se fait, comme sous Linux, par Pour arrêter easyphp, cliquer avec le bouton droit de la souris sur l icône easyphp qui clignote dans la barre des tâches, choisir d abord Arrêter (le serveur) puis Quitter. Les noms de fichiers attribués aux fichiers contenant des scripts PHP ont pour extension.php qui permet à l interpréteur PHP de les reconnaître automatiquement et de les exécuter immédiatement. D autres extensions sont également utilisables :.php3 et.phtml. L utilisation d une extension plutôt qu une autre dépend de la configuration du serveur. On peut invoquer des scripts PHP autonomes, c est-à-dire des fichiers de commandes chargés à partir du disque de la machine locale comme avec un script shell standard. Mais la philosophie de PHP part plutôt de l hypothèse que le script sera appelé et exécuté par un serveur Web pour générer une page Web dynamique sur un poste client. 2. Balises PHP Le code PHP est encadré par des balises PHP. Il y a quatre styles de balise PHP : o Les balises par défaut :... Code PHP... o Les balises d ouverture courtes 1 : <?... Code PHP... o 2 Les balises compatibles ASP : <%... Code PHP... %> o Les balises <script>: <SCRIPT LANGUAGE="php">...Code PHP...</SCRIPT> Exemple : print("hello World!\n"); Quand l interpréteur PHP rencontre la balise d ouverture, il interprète tous les caractères rencontrés jusqu à ce qu il trouve la balise de fermeture. Le script est alors exécuté et remplacé par le résultat qu il produit. On peut générer une page HTML entière par un script PHP : Page page.php echo "\n"; echo "<head>\n"; echo "<title>page html générée en PHP</title>\n"; echo "</head>\n"; echo "\n"; echo "Voici une page HTML générée par PHP\n"; echo "\n"; echo "\n"; 3. Les variables du langage PHP o o Les variables du langage sont représentées par un identificateur précédé du signe $, quel que soit le type de la variable : nombre (valeur numérique), chaîne de caractères, tableau, objet composite. Pour créer des variables avec PHP, il suffit d en faire usage. Il n est nullement besoin de les déclarer. 1 A éviter si le serveur Apache n est pas configuré pour les balises courtes. 2 N est utilisé que très rarement 29

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

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

Gestion de stock pour un magasin

Gestion de stock pour un magasin Département d Informatique Université de Fribourg, Suisse http://diuf.unifr.ch Gestion de stock pour un magasin Stock online utilise ASP/MS-Access DO Thi Tra My No étudiant : 05-333-750 Travail de séminaire

Plus en détail

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

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs. Connexion à 4D Server depuis une page ASP Par Noreddine MARGOUM, Technicien Contrôle Qualité, 4D S.A. Note technique 4D-200403-08-FR Version 1 Date 1 Mars 2004 Résumé Le propos de cette note technique

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

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 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 et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Bases de données et Interfaçage Web

Bases de données et Interfaçage Web Bases de données et Interfaçage Web Université Virtuelle de Tunis 2006 Le Web et les Bases de Données Connecter une base de données au World Wide Web, c est mettre en place une passerelle entre un serveur

Plus en détail

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

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

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

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Diffusé par Le Projet Documentation OpenOffice.org OpenOffice.org Documentation Project How-To Table des matières 1. Introduction...3

Plus en détail

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

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

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé) Introduction PHP = Personal Home Pages ou PHP Hypertext Preprocessor Langage de script interprété (non compilé) Plan Avantages Fonctionnement interne Bases du langage Formulaires Envoi d un email Avantages

Plus en détail

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

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

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

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Création de formulaires interactifs

Création de formulaires interactifs SESSION 16 Création de formulaires interactifs Programme de la session Lancer un sondage en utilisant divers éléments d'entrée de formulaire Traiter les entrées utilisateur Activer un script à partir d'un

Plus en détail

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France Développement d applications Internet et réseaux avec LabVIEW Alexandre STANURSKI National Instruments France Quelles sont les possibilités? Publication de données Génération de rapports et de documents

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

Techniques de Programmation pour Internet

Techniques de Programmation pour Internet 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

Plus en détail

Formulaires et Compteurs

Formulaires et Compteurs Formulaires et Compteurs Création de formulaires et de compteurs avec extensions FrontPage ou ASP. INFORMATIONS CONNEXES Le but du présent manuel est de permettre à une personne familière d Internet de

Plus en détail

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

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

Attaques applicatives

Attaques applicatives Attaques applicatives Attaques applicatives Exploitation d une mauvaise programmation des applications Ne touche pas le serveur lui-même mais son utilisation/ configuration Surtout populaire pour les sites

Plus en détail

FileMaker 13. Guide ODBC et JDBC

FileMaker 13. Guide ODBC et JDBC FileMaker 13 Guide ODBC et JDBC 2004-2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

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

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL

Plus en détail

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél. +41 032 718 2000, hotline.sitel@unine.ch.

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél. +41 032 718 2000, hotline.sitel@unine.ch. Terminal Server 1. Présentation Le terminal server est un service offert par les serveurs Windows 2000 ou par une version spéciale de windows NT 4.0 server, appelée Terminal Server. Un programme client

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Assistance à distance sous Windows

Assistance à distance sous Windows Bureau à distance Assistance à distance sous Windows Le bureau à distance est la meilleure solution pour prendre le contrôle à distance de son PC à la maison depuis son PC au bureau, ou inversement. Mais

Plus en détail

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

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

PDO : PHP Data Object 1/13

PDO : PHP Data Object 1/13 PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Sommaire 1. Objectifs et intérêts... 2 2. Intégrer le driver SQL Server dans SJSAS 9... 2 2.1. Télécharger

Plus en détail

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau- Ministère de l Enseignement Supérieur et de la Recherche Scientifique Centre de Recherche sur l Information Scientifique et Technique Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

Plus en détail

STATISTICA Version 12 : Instructions d'installation

STATISTICA Version 12 : Instructions d'installation STATISTICA Version 12 : Instructions d'installation STATISTICA Entreprise Server Remarques : 1. L'installation de STATISTICA Entreprise Server s'effectue en deux temps : a) l'installation du serveur et

Plus en détail

I. MySQL : Serveur et SGBD

I. MySQL : Serveur et SGBD Le Système de Gestion de Base de Données MySQL I. MySQL : Serveur et SGBD Menu I. MySQL : Serveur et SGBG II. Création d'une base de données avec MySQL MySQL est un système de gestion et conception de

Plus en détail

Manuel d'installation

Manuel d'installation CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

Guide d installation de MySQL

Guide d installation de MySQL INF 1250 Introduction aux bases de données Guide d installation de MySQL 1 Introduction Ce guide vous indique la façon d installer et d utiliser le logiciel MySQL de Oracle (disponible en licence GPL).

Plus en détail

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

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2) Le langage PHP (2) Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation

Plus en détail

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

PHP et les Bases de données - Généralités PHP et les Bases de données - Généralités Conception d une base de données Méthodes utilisées : MERISE, UML Modèle conceptuel des données MCD, Modèle logique MLD, Modèle Physique MPD. Ces aspects seront

Plus en détail

LES ACCES ODBC AVEC LE SYSTEME SAS

LES ACCES ODBC AVEC LE SYSTEME SAS LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie

Plus en détail

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication Table des matières Atelier pratique 8 : Implémentation de la réplication 1 Exercice 1 : Création d'une publication 1 Exercice

Plus en détail

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

Failles XSS : Principes, Catégories Démonstrations, Contre mesures HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Séminaire 15 ans HSC Failles XSS : Principes, Catégories Démonstrations,

Plus en détail

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

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2 Sommaire I. SCENARII DE TRAITEMENTS...2 I.1 : Alimentation à partir d un fichier Access (.mdb)...2 I.1 : Vérification de l intégrité des traitements SQL sur la pyramide des ages...3 I.2 : Vérification

Plus en détail

Mysql avec EasyPhp. 1 er mars 2006

Mysql avec EasyPhp. 1 er mars 2006 Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe

Plus en détail

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

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068 HTTP/1.1 RFC 2068 1 Caractéristiques Niveau application Sans état Tout transfert de données Au dessus du protocole TCP Largement utilisé dans le World Wide Web Utilise les normes : URI (Uniform Resource

Plus en détail

PHP 4 PARTIE : BASE DE DONNEES

PHP 4 PARTIE : BASE DE DONNEES PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux

Plus en détail

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

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé

Plus en détail

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

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

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

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test? Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC Qui contacter pour commencer la mise en place d une configuration de test? CyberMUT Paiement - Paiement CIC Commerce Electronique mailto:centrecom@e-i.com

Plus en détail

1. La plate-forme LAMP

1. La plate-forme LAMP Servi ces pour intranet et Internet Ubuntu Linux - Création et gestion d un réseau local d entreprise 1. La plate-forme LAMP Services pour intranet et Internet La fourniture d'un site pour le réseau ou

Plus en détail

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

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web NFA016 : Introduction O. Pons, S. Rosmorduc Conservatoire National des Arts & Métiers Pour naviguer sur le Web, il faut : 1. Une connexion au réseau Réseau Connexion physique (câbles,sans fils, ) à des

Plus en détail

Accès aux bases de données

Accès aux bases de données 13 Accès aux bases de données Les bases de données fournissent un mécanisme de stockage persistant pour les données d application et dans bien des cas, elles sont essentielles au fonctionnement des applications.

Plus en détail

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

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse

Plus en détail

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

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.

Plus en détail

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1 CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table

Plus en détail

1/ Présentation de SQL Server :

1/ Présentation de SQL Server : Chapitre II I Vue d ensemble de Microsoft SQL Server Chapitre I : Vue d ensemble de Microsoft SQL Server Module: SQL server Semestre 3 Année: 2010/2011 Sommaire 1/ Présentation de SQL Server 2/ Architerture

Plus en détail

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Test de HSQLDB et Comparatif avec Sqlite

Test de HSQLDB et Comparatif avec Sqlite Test de HSQLDB et Comparatif avec Sqlite Table des matières 1 - Conditions préalables... 2 2 - Installation de HSQLDB... 2 3 - Premier Test de HSQLDB... 2 4 - Deuxième Test pour bien comprendre :-)...

Plus en détail

Installation FollowMe Q server

Installation FollowMe Q server Installation FollowMe Q server FollowMe Rev 1.00 30 nov 2007 Pré requis FollowMe v5 est un service de Windows et s'installe sur tout poste fonctionnant sous XP Pro, 2000 server, 2003 server. Il utilise

Plus en détail

Manuel Utilisateur Version 1.6 Décembre 2001

Manuel Utilisateur Version 1.6 Décembre 2001 Manuel Utilisateur Version 1.6 Décembre 2001 Table des matières TABLE DES MATIERES 2 PRESENTATION 4 À PROPOS DU FORMAT PDF 4 PDFMAIL : L ASSOCIATION DU FORMAT PDF ET DE L EMAIL 4 PRINCIPE DE FONCTIONNEMENT

Plus en détail

Guide d'installation sous Windows

Guide d'installation sous Windows Guide d'installation sous Windows Le but de ce guide est de faciliter l'installation de Phpcompta sous Windows et vous guidera pas-àpas, étape par étape. L'installation se déroule sous Windows XP SP2 mais

Plus en détail

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE Le responsable de la société Itaste utilise une application installée sur son poste : elle est programmée en VBA sous Microsoft Access et pourvue d une

Plus en détail

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

TD HTML AVEC CORRECTION

TD HTML AVEC CORRECTION TD HTML AVEC CORRECTION On utilisera Notepad++ comme éditeur sur Windows Vous créez un répertoire www sous vos répertoires personnels et vous mettrez vos pages dedans. Créez vos fichiers HTML et n oubliez

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Formation. Module WEB 4.1. Support de cours

Formation. Module WEB 4.1. Support de cours Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,

Plus en détail

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement

Plus en détail

Service Systèmes et Réseaux

Service Systèmes et Réseaux Service Systèmes et Réseaux Configuration de l accès ODBC dans les bases de données EBP Produits EBP : Comptabilité, Gestion Commerciale, Paye PRO v12 Automobile V10 Point de vente PRO v12 EBP Informatique

Plus en détail

Installation des outils OCS et GLPI

Installation des outils OCS et GLPI Installation des outils OCS et GLPI MAYERAU David 06/02/2012 PRESENTATION. --------------------------------------------------------------------------------------------- 3 INSTALLATION DE GLPI. ------------------------------------------------------------------------------------

Plus en détail

Modélisation et Gestion des bases de données avec mysql workbench

Modélisation et Gestion des bases de données avec mysql workbench Modélisation et Gestion des bases de données avec mysql workbench par novembre 2011 Table des matières 1 Installation 3 1.1 Ecran de chargement 3 1.2 Page d accueil 3 2 Réalisation d une base de données

Plus en détail

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

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org Les sites Internet dynamiques contact : Patrick VINCENT pvincent@erasme.org Qu est-ce qu un site Web? ensemble de pages multimédia (texte, images, son, vidéo, ) organisées autour d une page d accueil et

Plus en détail

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence Corrigé de l'atelier pratique du module 3 : Récupération d'urgence Table des matières Atelier pratique 3 : Récupération d'urgence 1 Exercice 1 : Implémentation d'une stratégie de sauvegarde 1 Exercice

Plus en détail

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

TP réseaux 4 : Installation et configuration d'un serveur Web Apache TP réseaux 4 : Installation et configuration d'un serveur Web Apache Objectifs Installer, configurer, lancer et administrer le serveur Web Apache sous Linux Données de base machine fonctionnant sous Linux

Plus en détail

MEGA Web Front-End Installation Guide MEGA HOPEX V1R1 FR. Révisé le : 5 novembre 2013 Créé le : 31 octobre 2013. Auteur : Noé LAVALLEE

MEGA Web Front-End Installation Guide MEGA HOPEX V1R1 FR. Révisé le : 5 novembre 2013 Créé le : 31 octobre 2013. Auteur : Noé LAVALLEE MEGA HOPEX V1R1 FR Révisé le : 5 novembre 2013 Créé le : 31 octobre 2013 Auteur : Noé LAVALLEE SOMMAIRE Sommaire... 2 Étape préliminaire... 3 Système d exploitation... 3.Net... 3 Rôles nécessaires... 3

Plus en détail

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante : Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante : http://www.hegerys.com/documentation/magicsafe-windows-doc.pdf

Plus en détail

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

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

Logiciel Enterprise Guide Version 1.3 Windows

Logiciel Enterprise Guide Version 1.3 Windows Configuration requise Logiciel Enterprise Guide Version 1.3 Windows Ce document indique la configuration requise pour l'installation et l'exécution du logiciel Enterprise Guide. Vous devez mettre votre

Plus en détail

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.

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. ASTRIUM - Toulouse JEE Formation 2013 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. Figure 1 Architecture

Plus en détail

L accès à distance du serveur

L accès à distance du serveur Chapitre 11 L accès à distance du serveur Accéder à votre serveur et aux ordinateurs de votre réseau depuis Internet, permettre à vos amis ou à votre famille de regarder vos dernières photos, écouter vos

Plus en détail

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

Installation d'un serveur FTP géré par une base de données MySQL BTS INFORMATIQUE DE GESTION Option Administrateur de réseaux développement d applications COMPTE-RENDU D ACTIVITE ACTIVITE N 2 Nom et Prénom : Casanova Grégory Identification (objectif) de l activité Installation

Plus en détail

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

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

(structure des entêtes)

(structure des entêtes) Aide mémoire HTTP (structure des entêtes) Fabrice HARROUET École Nationale d Ingénieurs de Brest http://www.enib.fr/~harrouet/ enib 1/10 Structure générale d une requête Requête HTTP méthode ressource

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE

Plus en détail

Java et les bases de données

Java et les bases de données Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples

Plus en détail

Connexion entre une BD FileMaker Pro 10 et ArcGis 10.x sous Windows 7

Connexion entre une BD FileMaker Pro 10 et ArcGis 10.x sous Windows 7 Connexion entre une BD FileMaker Pro 10 et ArcGis 10.x sous Windows 7 1. Pré-requis sur FileMaker Pro 10 Ouvrir la base que l on veut partager en connexion ODBC. Il faut activer le partage ODBC : menu

Plus en détail