Applications interactives

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

Download "Applications interactives"

Transcription

1 Applications interactives Anne-Laure Ligozat ENSIIE, 1re année 2015/ / 94

2 1 Formulaires Présentation Balises Exemple 2 / 94

3 Présentation Les formulaires Permettent l interaction entre un utilisateur et un programme d application Définition de différents types de champs de saisie 3 / 94

4 Présentation Exemple de formulaire 4 / 94

5 Balises Formulaires : balises de définition (1) Définition du formulaire balise conteneur < form >... < /form > Attributs du formulaire action : nom du programme (de la page) qui sera exécuté par le serveur method : mode de transmission des paramètres ( GET ou POST ) GET: passage des champs saisis dans l URL sous forme de paires (nom,valeur) : method.asp?fname=magali&lname=dupont POST: envoi des champs saisis par transaction HTTP POST enctype : type d encodage utilisé pour la transmission des données 5 / 94

6 Balises Formulaires : balises de définition (2) Champs du formulaire balise <input> Type du champ : attribut type text : champ monoligne de contenu quelconque <input type= text size= 20 maxlength= 18 name= titre /> transmet le contenu du champ dans une variable de nom name titre = le texte contenu dans le champ password : le texte tapé au clavier est remplacé par * hidden : champ non visible sur le formulaire à l écran qui permet de transmettre une information au programme appelé 6 / 94

7 Balises Formulaires : balises de définition (3) Type du champ : attribut type (suite) checkbox : boutons à choix multiples <label>comédie</label> : <input type= checkbox name= genre value= c /> <label>drame</label> : <input type= checkbox name= genre value= d /> transmet l information: genre = value radio : boutons à choix exclusif France: <input type= radio name= pays value = fr /> États-Unis: <input type= radio name= pays value= us /> mais aussi date, number, url... 7 / 94

8 Balises Formulaires : balises de définition (4) Valeur présélectionnée <input type= checkbox name= genre value= d checked= checked /> Boutons de commande submit : termine la saisie et transmet les informations saisies au programme désigné par l attribut action dans <form> <input type= submit value= Rechercher name= bouton1 > : au moins un bouton submit par formulaire reset : réinitialise le formulaire <input type= reset value= Annuler name= bouton2 > 8 / 94

9 Balises Formulaires : balises de définition (5) Liste de sélection de valeurs balise select Metteur en scène: <select name= réalisateur > <option value= 1 >Alfred Hitchcock</option> <option value= 2 >Quentin Tarantino</option>... </select> aide au codage selected : choix présélectionné par défaut : choix exclusif choix multiple : attribut multiple dans la balise select 9 / 94

10 Balises Formulaires : balises de définition (6) Champs de saisie / affichage multilignes balise textarea <textarea name= resume cols= 30 rows= 3 > [texte par défaut] </textarea> 10 / 94

11 Balises Formulaire : exemple de définition (1) <html> <head> <title>formulaire complet </title> <link rel= stylesheet href= films.css type= text/css > </head> <body> <form action= method= post > <input type= hidden name= NomForme value= exforme1 /> Titre: <input type= text size= 20 name= titre /> Année: <input type= text size= 4 maxlength= 4 name= annee value= 2000 /> <p> Comédie: <input type= checkbox name= genre value= c /> Drame: <input type= checkbox name= genre value= d /> Histoire: <input type= checkbox name= genre value= h /> </p> 11 / 94

12 Exemple Formulaire : exemple de définition (2) <p> Résumé: <textarea name= resume cols= 30 rows= 3 >Résumé du film </textarea> </p> Metteur en scène: <select name= réalisateur size= 3 > <option value= 1 >Alfred Hitchcock</option> <option value= 2 >François Truffaut</option> <option value= 3 selected= selected >Quentin Tarantino</option>... </select> <h3>votre choix?</h3> <input type= submit value= Rechercher /> <input type= reset value= Annuler /> </form> </body> </html> 12 / 94

13 2 PHP Caractéristiques Interaction avec l utilisateur Connexion à une base de données 13 / 94

14 Caractéristiques PHP PHP PHP: Hypertext Preprocessor Caractéristiques langage dédié à la production de pages HTML générées dynamiquement langage interprété script intégré à HTML (interpréteur de PHP intégré au serveur web) syntaxe similaire à celle du C Documentation php : toutes les fonctions php: 14 / 94

15 Caractéristiques Historique des versions de PHP / 94

16 Caractéristiques Rappel : exemple d accès à une page web avec PHP 16 / 94

17 Caractéristiques Génération du HTML Un premier exemple très simple (exemple.php) <!DOCTYPE html> <html> <body> <h1>un très beau titre</h1> <p>j affiche la date : </body> </html> deviendra (html) <?php echo date( j/m/y );?> </p> <!DOCTYPE html> <html> <body> <h1>un très beau titre</h1> <p>j affiche la date : 19/02/2013 </p> </body> </html> 17 / 94

18 Caractéristiques Généralités sur le langage PHP fichiers.html ou.php code php contenu entre les balises <?php et?> code = instructions terminées par un ; 18 / 94

19 Caractéristiques Généralités Commentaires /*plusieurs lignes*/ // 1 ligne Variables variables: pas de déclaration; pas de type fixe; noms de variables préfixés par $ sensible à la casse: nclient nclient variable définie et non NULL? fonction isset($nomvariable) Constantes define ( NOM, valeur) nom-constante par convention en majuscules 19 / 94

20 Caractéristiques Généralités Types chaîne de caractères (autres exemples) Le titre est $titre \n, Mme.$nom guillemets simples (quotes) : $var n est pas interprétée (pas remplacée par sa valeur); echo la variable $lecteur ; //affiche : la variable $lecteur protéger les apostrophes : echo d \ abord guillemets doubles : echo la variable \$lecteur vaut : $lecteur //affiche : la variable $lecteur vaut : 124 utilisation des accolades : {} $boisson = vin; echo il a goûté plusieurs ${boisson}s ; // plusieurs vins syntaxe heredoc : <<< <<<EOD Ceci est une chaîne. EOD; même identifiant qu au début avec rien d autre qu un ; 20 / 94

21 Caractéristiques Généralités Types (autres) booléens 0, 0.0, 0,, tableau vide, null: faux ; tout le reste vrai valeurs booléennes: TRUE, FALSE (non sensible à la casse) entiers flottants 3.14, 0.3 e-2 tableaux longueur dynamique, éléments pas nécessairement du même type indice = entier ou chaîne de caractère (tableau associatif), ou les deux 21 / 94

22 Caractéristiques Tableaux avec clés numériques Affectation automatique des indices $tab[0] = element1 ; $tab[ ] = element1 ; $tab[1] = element2 ; $tab[ ] = element2 ; $tab[2] = 12; $tab[ ] = 12; $tab = array( element1, element2, 12); $trimestre1 = array(1 janvier, février, mars ); print r($trimestre1); // va afficher: Array ([1] janvier [2] fevrier [3] mars ) 22 / 94

23 Caractéristiques Tableaux avec clé chaîne de caractères (associatif) Repère les éléments par une clé $real[ vertigo ] = Hitchcock ; $real[ alien ] = Scott ; $real[ kagemusha ] = Kurosawa ; $real=array( vertigo Hitchcock, alien Scott, kagemusha Kurosawa ); Utilisation echo $real[ alien ] ; // Scott echo le réalisateur est {$real[ alien ]}. ; 23 / 94

24 Caractéristiques Traitements des tableaux (1) Parcours de tableaux foreach ($tab as $value) { echo $value \n <br /> ; } // $tab: tableau, $value: valeur de l élément courant foreach ($tab as $key => $value){... } // $key clé de l élément courant 24 / 94

25 Caractéristiques Traitements des tableaux (2) Quelques fonctions sur les tableaux reset : positionne au premier élément end : positionne en fin de tableau next : avance le pointeur d un élément prev : recule le pointeur d un élément current : retourne l élément courant key : retourne la clé courante unset : suppression d un tableau ou d un élément serialize, unserialize : linéarisation ( stockage) count : compte éléments du tableau très nombreuses autres fonctions sur tableaux (tris, comparaisons...) [ 25 / 94

26 Caractéristiques Fonctions Arguments passage des arguments par valeur par adresse : function ex2 ( &$p1, $p2) {... $p1++;... } $j =1; k = ex2($j, $i); // j = 2 noms de fonctions insensibles à la casse (minuscules / majuscules sans importance) 26 / 94

27 Caractéristiques Structuration d un script Inclusion d une fonction (ou d un ensemble de fonctions) dans le script d un programme include ou require(fichier) différence: include ne produit qu un warning en cas d erreur d inclusion, alors que require produit une erreur et arrête l exécution du script si répétitive include once/require once à utiliser pour des définitions de fonctions (éviter d inclure code php) 27 / 94

28 Caractéristiques Exemple d inclusion 28 / 94

29 Caractéristiques Structuration des pages de script Module Ensemble de fonctions concernant un même sujet que l on peut inclure dans le code PHP <?php include( connect.php ); include( gestiontable.php ); include( formulaire.php ); / 94

30 Interaction avec l utilisateur Interagir avec l utilisateur Utilisation de formulaires pour connaître ses choix 30 / 94

31 Interaction avec l utilisateur Traitement du formulaire 31 / 94

32 Interaction avec l utilisateur Exemple simple de formulaire formulaire.php <form action= cible.php method= post > <p>quel est votre nom? <input type= text name= nom /> </p> <p> <input type= submit value= Valider /> </p> </form> cible.php <p>bonjour <?php echo $ POST[ nom ];?>! </p> 32 / 94

33 Connexion à une base de données Stockage des informations dans une base de données Que stocker? informations propres à l application développée films, réalisateurs... dans l exemple de la base de films informations concernant le site web informations sur les utilisateurs (nom, mot de passe, login...), actualités / 94

34 Connexion à une base de données Exemple d accès à une page web avec PHP + PosgreSQL 34 / 94

35 Connexion à une base de données Exemple d échange 35 / 94

36 Connexion à une base de données Exemple : Formulaire appelant un script PHP <html> <head> <title>formulaire pour script PHP </title> </head> <body> <h1> Formulaire de saisie pour rechercher des films</h1> <form action= ExPhp1.php method= post > <p> Titre: <input type= text size= 20 name= titre value= % /> Le caractère % remplace n importe quelle chaîne. </p> <p> <input type= submit value= Rechercher /> <input type= reset value= Annuler /> </p> </form> </body> </html> 36 / 94

37 Connexion à une base de données Exemple : Affichage client 37 / 94

38 Connexion à une base de données Exemple : Script PHP ExPhp1.php <html> <head> <title>formulaire pour script PHP </title> </head> <body> <h1>résultat de l interrogation par formulaire le <?php echo date( j/m/y );?></h1> <?php $titre = $ POST[ titre ]; echo <p>vous avez demandé: Titre = $titre<br/> ; /*on veut un film qui contienne la chaine rentrée*/ $requete = SELECT * FROM film WHERE titre LIKE %$titre% ; ; $connexion = pg connect( host=localhost dbname=films ); //on devrait tester la connexion / 94

39 Connexion à une base de données Exemple : Script PHP ExPhp1.php (suite) $reponse = pg query($connexion, $requete); if($reponse){ $nbtuples = pg num rows ($reponse); echo <ul> ; while ($tuplecourant = pg fetch assoc($reponse) ){ echo <li>titre : $tuplecourant[ titre ], ; echo sorti en : $tuplecourant[ annee ]</li> ; } echo </ul> ; } else{ echo Problème à l exécution de la requete sur les films ; } pg close($connexion); echo </p> ;?> </body> </html> 39 / 94

40 Connexion à une base de données Exemple : Code (X)HTML produit par l exécution des scripts PHP <html> <head> < t i t l e>f o r m u l a i r e pour s c r i p t PHP</ t i t l e> </ head> <body> <h1>r e s u l t a t de l i n t e r r o g a t i o n par f o r m u l a i r e l e 03/03/2015</h1> <p>vous avez demande : T i t r e=s l e e p<br /> <u l> < l i>t i t r e : Sleepy Hollow, paru en : 1999</ l i> < l i>t i t r e : S l e e p l e s s i n S e a t t l e, paru en : 1993</ l i> </ u l> </p> </ body> </ html> 40 / 94

41 Connexion à une base de données Exemple : Affichage client 41 / 94

42 Connexion à une base de données Exemple : fonctionnement 42 / 94

43 Connexion à une base de données Fonctionnement du transfert d information 43 / 94

44 Connexion à une base de données Transfert d informations entre deux pages php : champs cachés 44 / 94

45 Connexion à une base de données Transfert d informations entre deux pages php : variables de session 45 / 94

46 Connexion à une base de données API PHP/PostgreSQL Ensemble de fonctions attachement à la base: pg connect ; renvoie un indice de connexion (ou false, s il y a erreur) exécution d une requête : pg query; renvoie un indice de résultat ou false pg num rows : renvoie le nombre de tuples résultat de select pg num fields : renvoie le nombre d attributs du résultat de select pg affected rows: renvoie le nombre de tuples insérés/modifiés/supprimés récupération message erreur: pg last error (indice connexion) récupération du tuple courant d un résultat : pg fetch row/pg fetch array/pg fetch object fermeture de la base: pg close 46 / 94

47 Connexion à une base de données Portabilité des accès BD : extension PHP Data Objects (PDO) interface d abstraction de l accès aux données (pas de la base de données) il faut utiliser en plus le driver PDO spécifique de la BD à utiliser <?php $dbh = new PDO( pgsql:host=$host;dbname=$dbname, $user, $pass, array(pdo::attr PERSISTENT => true)); pour avoir une connexion persistante (mise en cache au lieu de fermée à la fin du script)?> 47 / 94

48 Connexion à une base de données Portabilité des accès BD : extension PHP Data Objects (PDO) 48 / 94

49 Connexion à une base de données Select dans le contexte web Limitation du nombre de résultats LIMIT affichage d une partie du résultat d une requête en fonction du besoin récupération d une partie seulement du résultat d une requête SELECT... ORDER BY... [LIMIT {nombre / ALL}] [OFFSET nombre] Ne pas oublier d ordonner les résultats Exemples select * from lecteurs order by n lecteur limit 30; select * from lecteurs order by n lecteur limit 30 offset 31; 49 / 94

50 Connexion à une base de données Curseurs SQL inclus dans un langage hôte requêtes SQL incluses dans un langage de programmation impératif passage d un langage ensembliste (SQL) à un langage procédural mécanisme du curseur = tampon correspondant au résultat d une requête plusieurs curseurs peuvent être ouverts simultanément 50 / 94

51 Connexion à une base de données Exemple de BD Exemple client(n client, nom client, prenom client) commande(n client, n commande, date, commande) ligne commande(n commande, n produit, quantite, total client) 51 / 94

52 Connexion à une base de données Exemple: affichage souhaité Affichage Etat des montants commandés client num 100, Stark Tony commande num 50 du dddd total... commande num 72 du dddd total... total client 100:... client num 200, Rogers Steve commande num 58 du dddd total... total client 200:... client num 230, Banner Bruce commande num 56 du dddd total... commande num 90 du dddd total... total client 230:... Nombre de clients:... Nombre de commandes:... Total ensemble des clients: / 94

53 Connexion à une base de données Curseurs triés client NJ commande NJ ligne commande trié par n client, n commande n client n commande... n produit total client / 94

54 Connexion à une base de données Algorithme de traitement séquentiel des curseurs triés lecture premier tuple boucle client traitement début client boucle commandes du client courant traitement début commande boucle des lignes de la commande courante du client courant traitement d un tuple lecture tuple suivant traitement fin commande traitement fin client 54 / 94

55 Connexion à une base de données Algorithme (1/2) /* traitement dé but */ /* connection à la BD */ $curseur = pg_query ($bd, $requete ); if ( $curseur ) { $tot_gen = 0; /* traitement dé but curseur */ $tuple_courant = pg_fetch_assoc ( $curseur ); /* tester si ré sultat non vide */ $n_client = $tuple_courant [ n_client ]; $n_commande = $tuple_courant [ n_commande ]; $mtlc= $tuple_courant [ mtlc ]; $date= $tuple_courant [ date_com ]; while ( $tuple_courant ){ $n_client_courant = $n_client ; $tot_cl = 0; /* traitement dé but client */ print " client numero : $n_client_courant "; while ( $tuple_courant && $n_client = = $n_client_courant ){ { $n_com_courant = $n_commande ; $tot_com = 0; /* traitement dé but commande */ while ( $tuple_courant && $n_client == $n_client_courant && $n_commande == $n_com_courant ) { $tot_com += $mtlc ; /* traitement tuple */ // lecture tuple suivant $tuple_courant = pg_fetch_assoc ( $curseur ); 55 / 94

56 Connexion à une base de données Algorithme (2/2) If ( $tuple_courant ){ $n_client = $tuple_courant [ n_client ]; // n_client lu $n_commande = $tuple_courant [ n_commande ]; // autres attributs lus $mtlc= $tuple_courant [ mtlc ]; $date= $tuple_courant [ date_com ]; } } $tot_cl += $tot_com ; /* traitement fin commande */ print " commande num : $n_com - courant, date : $date, total : $tot - com " } $tot_gen += $tot_cl ; /* traitement fin client */ print " total client : $tot - cl"; } print " total général = $tot - gen "; /* traitement fin curseur */ } else { print " erreur exé cution requ^ete = ". pg_last_error ( $bd ); } /* traitement fin */ 56 / 94

57 3 MVC Principe Exemple 57 / 94

58 Principe Amélioration de l architecture des pages : patron MVC MVC Modèle Vue Contrôleur Dans le code des pages ne pas mélanger ce qui est : modèle : accès aux données vue : affichage (principalement HTML) contrôleur : traitement des données pages dédiées à chaque partie + orchestration des deux parties 58 / 94

59 Principe Patron MVC 59 / 94

60 Principe MVC : fonctionnement 60 / 94

61 Exemple Exemple MVC voir fichier exemple initial et fichier exemple MVC modele news.php vue news.php contient essentiellement du xhtml code php très simple et limité (parcours tableau, appel de fonction, echo) controleur news.php inclut le modèle (pour pouvoir récupérer les données ou faire les traitements sur les données) inclut la vue (pour faire l affichage) 61 / 94

62 Exemple MVC : architecture des pages 62 / 94

63 4 JavaScript Présentation Manipulation des éléments HTML 63 / 94

64 Présentation Intérêt de JavaScript augmenter l interactivité de l IHM en réduisant les échanges client-serveur objectifs: petites applications simples (calculette, calcul de devis..) amélioration de l aspect graphique de l interface (gestion fenêtres, modification d image au passage de la souris...) contrôle de la validité des saisies (champs obligatoires remplis, valeur saisie du bon type...) aide contextuelle, menus contextuels / 94

65 Présentation Accès à une page web avec JavaScript 65 / 94

66 Présentation JavaScript Généralités sur le langage rien à voir avec Java code intégré au texte HTML et interprété par le navigateur (donc exécuté sur le client) langage de programmation objet simple, programmation événementielle code visible, aucune sécurité JavaScript désactivable par l utilisateur code contenu dans une balise <script> 66 / 94

67 Présentation Insertion du code JavaScript Insertion du code dans l en-tête de préférence (notamment fonctions) dans le corps pour générer du HTML dynamique dans un événement d objet de la page Exemple de code dans le corps du document (w3schools) <!DOCTYPE html> <html> <body>... < s c r i p t> document. w r i t e ( <h1>c e c i e s t un t i t r e </h1> ) ; document. w r i t e ( <p>c e c i e s t un p a r a g r a p h e </p> ) ; </ s c r i p t>... </ body> </ html> 67 / 94

68 Présentation Définition de fonctions <script language= JavaScript > function nom fonction(paramètres) { //contenu fonction;... ; return(...); } </script> N.B. return pas obligatoire 68 / 94

69 Présentation Insertion du code dans l en-tête Exemple de code dans l en-tête du document (w3schools) <!DOCTYPE html> <html> <head> <script> function myfunction() { document.getelementbyid( demo ).innerhtml= Ma premiere fonction JavaScript ; } </script> </head> <body> <h1>ma page web</h1> <p id= demo >Un paragraphe</p> <button type= button onclick= myfunction() >Cliquez!</button> </body> </html> 69 / 94

70 Présentation Exemple JavaScript 70 / 94

71 Présentation Code JavaScript séparé code JavaScript stocké dans un fichier séparé nom de ce fichier dans l attribut src de la balise <script> <script src= scriptcontroles.js > code partagé, bibliothèque de fonctions, lisibilité 71 / 94

72 Manipulation des éléments HTML Possibilités Manipulation des éléments HTML Pour JavaScript, les différents éléments d une page HTML sont des objets que l on peut manipuler via: leurs propriétés (attributs) des méthodes de l objet (fonctions s exécutant avec les attributs de l objet) des événements associés à l objet 72 / 94

73 Manipulation des éléments HTML Hiérarchie d objets navigator informations sur le navigateur du client window propriétés et méthodes pour manipuler une fenêtre du navigateur history propriétés et méthodes pour manipuler l historique d une fenêtre frame propriétés et méthodes pour manipuler une frame d une fenêtre document propriétés et méthodes pour manipuler le document dans une fenêtre/frame (écrire dans le document...) location propriétés et méthodes pour traiter l url localisée dans une fenêtre forms propriétés et méthodes pour manipuler un formulaire element anchors links 73 / 94

74 Manipulation des éléments HTML Manipulation des objets, autres objets désignation de la propriété value d un élément text de nom ex Champ d un formulaire de nom ex Forme : document.ex Forme.ex Champ.value utilisation d une méthode d un objet document.writeln( output by JavaScript ); autres objets JS string, Math, Date objets définis par le programmeur 74 / 94

75 Manipulation des éléments HTML Gestion des événements Événements déclenchés auxquels on associe du code JS 5 catégories document (chargement nouvelle page, sortie ancienne page) (onload, onunload) form (interaction avec le formulaire) ancre (click sur le lien) element (statut des images associées à une page) fenêtre (quelle fenêtre est active) 75 / 94

76 Manipulation des éléments HTML Exemple: les liens (ancres) événements associés: onmouseover, onmouseout, onclick association code JavaScript et événement: <a href=... événement= fonctionjavascript(paramètre1, paramètre2,...) ou code JS >texte de l ancre</a> 76 / 94

77 Manipulation des éléments HTML Association événement-code Peut aussi être faite par programme <body onfocus= mafocusfonction(); onblur = mablurfonction(); > <script> window.document.onfocus = mafocusfonction; window.document.onblur = mablurfonction; </script> 77 / 94

78 Manipulation des éléments HTML Forms : objets, propriétés, méthodes (1) Objet propriétés méthode Prop.événement (Event Handler) form action, elements submit() onsubmit encoding, length method, target button name, value click() onclick checkbox checked click() onclick defaultchecked name, value 78 / 94

79 Manipulation des éléments HTML Forms : objets, propriétés, méthodes (2) Objet propriétés méthode Prop.événement (Event Handler) select name, length blur() onblur selectedindex focus() onfocus options(array) onchange - defaultselected - index - length - name - selected - selectedindex - text - value... hidden, password, radio, reset, submit, text, textarea 79 / 94

80 Manipulation des éléments HTML Exemple de page <html> <head><title> test balise input</title> <script> Function verifnum(valeur){ //vérification que la chaîne de caractères représentée par le //paramètre valeur ne contient que des caractères numériques for (var i=0; i<valeur.length; i++){ var caractere=valeur.substring(i, i+1); if (caractere < 0 caractere > 9 ) return false; } return true; } </script> <body> <form name= exemple > <input name= montant onchange= if (!verifnum(this.value)){alert ( ne saisissez que des chiffres! ); return false} > </form> </body> </html> 80 / 94

81 Manipulation des éléments HTML AJAX AJAX = Asynchronous JavaScript and XML client riche échange de données avec un serveur sans mise à jour de la page complète 81 / 94

82 Manipulation des éléments HTML Accès à une page web avec AJAX 82 / 94

83 Manipulation des éléments HTML Exemple d utilisation d AJAX Formulaire web sans: demande à l utilisateur de saisir des informations vérification de format avec JavaScript envoyer la page au serveur pour validation avec: validation des données entrées chargement à la volée d informations en fonction des entrées exemple: Google Suggest Exemple formulaire avec suggestions 83 / 94

84 Manipulation des éléments HTML Fonctionnement d Ajax 84 / 94

85 5 Sécurité Principes généraux Injection SQL Injection HTML 85 / 94

86 Principes généraux Sécurité et applications web Ne jamais faire confiance aux données envoyées par le client contrôler les données reçues (par GET ou par POST): tout ce qui est attendu est là les données reçues sont conformes à ce qui est attendu (type, bornes de validité, valeurs, jeu de caractères...) 86 / 94

87 Principes généraux Interdire la mise en cache Complétion de formulaires Page web header( Cache-Control : no-cache ); //HTTP/1.1 header( Expires: Thu, 01 Jan :00:00 GMT ); 87 / 94

88 Injection SQL Injection SQL Exemple de code problématique <?php... $requete = SELECT nom, prenom, login FROM users WHERE login =.$ POST[ login ]. AND password =.$ POST[ password ]. ;... echo Bonjour $prenom, $nom!?> 88 / 94

89 Injection SQL Injection SQL (2) Requête SQL exécutée SELECT nom, prenom FROM users WHERE login = OR 1 = 1 AND password = bonjour paul dupond! (indépendamment du nom entré) 89 / 94

90 Injection SQL Injection SQL (3) Détournement de la clause DELETE <?php $requete = DELETE FROM user WHERE id =.$ POST[ id ]. ; ;?> saisie dans id: 1 OR id > 0 ; requête exécutée: DELETE FROM user WHERE id = 1 OR id > 0 ; destruction de tous les user! 90 / 94

91 Injection SQL Injection SQL (4) Protection contre les injections filtrer les entrées: taille, type... ne pas afficher d information en cas d erreur protéger avec la fonction addcslashes() string addcslashes ( string $str, string $charlist ) échapper les caractères:,, %, \x00 et \x1a <?php $chaine = %salut ; // Échappement des caractères % et $chaine = addcslashes($chaine, % ); echo $chaine; // Affiche \%salut\?>, caractère null (\0), /, \n, \r, 91 / 94

92 Injection HTML Injection HTML (faille XSS, cross-site scripting ) <html> <head> <title>injection HTML</title> </head> <body> <?php echo Salut, tu t appelles.$ POST[ pseudo ];?> </body> </html> saisie dans le champ pseudo: <i>smith</i> affichera : Salut, tu t appelles Smith saisie dans le champ pseudo: Smith<script src= > injection de code malveillant 92 / 94

93 Injection HTML Injection HTML (2) Filtrer les entrées, les nettoyer (utf decode, strip tags, filter *) Ne pas stocker des informations non vérifiées Préciser le jeu de caractères Protéger les sorties échapper les balises html dans le texte affiché (htmlspecialchars, htmlentities) <?php echo Salut, tu t appelles.htmlentities($ POST[ pseudo ], ent quotes);?> affichera : Salut, tu t appelles <i>smith</i> ou Smith<script src= > Les balises html sont justes restituées code source de la page: Smith<script src=" sitepirate.com/injection.js"/script > 93 / 94

94 Injection HTML Bibliographie W3schools : OpenClassrooms: Documentation PHP : hhttps://php.net/manual/fr/ 94 / 94

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

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

CREATION d UN SITE WEB (INTRODUCTION)

CREATION d UN SITE WEB (INTRODUCTION) CREATION d UN SITE WEB (INTRODUCTION) Environnement : World Wide Web : ordinateurs interconnectés pour l échange d informations ( de données) Langages : HTML (HyperText Markup Language) : langages pour

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

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

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

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

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

SYSTÈMES D INFORMATIONS

SYSTÈMES D INFORMATIONS SYSTÈMES D INFORMATIONS Développement Modx Les systèmes de gestion de contenu Les Content Management Système (CMS) servent à simplifier le développement de sites web ainsi que la mise à jour des contenus.

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

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

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

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

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

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

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

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

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

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

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 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

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

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 PHP Bertrand Estellon Aix-Marseille Université 26 avril 2012 Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 SQLite et PDO Base de données SQLite et PDO SQLite écrit les données relatives à la base dans

Plus en détail

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING Durée : 3J / 21H Formateur : Consultant expert en PAO et Web-marketing. Groupe de : 4 max Formation au web marketing Objectifs : Mettre en oeuvre des

Plus en détail

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

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables

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

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

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

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

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

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

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 A t t a q u e s c o n t r e l e s a p p l i s w e b cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 D e l ' u t i l i t é d e l ' a t t a

Plus en détail

DOM - Document Object Model

DOM - Document Object Model DOM - Document Object Model 1 But de DOM Interfacer les langages de programmation avec les documents XML en les associant avec un modèle orienté objet DOM permet aux programmes et scripts : d'accéder et

Plus en détail

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

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL 2015 - Beauvais. 8 Juillet 2015 Benjamin Lampérier - Benoît Goyheneche RMLL 2015 - Beauvais 8 Juillet 2015 1 2 3 État des lieux On ne change rien On optimise intelligemment Avant de commencer Mettre les chaines de caractères entre simple

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

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

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

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES WEB & DÉVELOPPEMENT LES BASES DU WEB HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES LE LANGAGE HTML STRUCTURE D UNE PAGE En-tête et corps Syntaxe INSÉRER DES CONTENUS Texte : formatage (titre,

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

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

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10 modalisa Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10 8 Fonctionnalités de mise en ligne de questionnaires Vous trouverez dans cet opuscule les informations nécessaires

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

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

PHP. PHP et bases de données

PHP. PHP et bases de données Accés aux bases de données Une des raisons du succès de PHP Support d un grand nombre de bases - MySQL - Oracle - PostgreSQL - SQLite - Microso> Access - DBM - IBM Informix -... Accés aux bases de données

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

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

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

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

SQL Parser XML Xquery : Approche de détection des injections SQL

SQL Parser XML Xquery : Approche de détection des injections SQL SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des

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

Module http MMS AllMySMS.com Manuel d intégration

Module http MMS AllMySMS.com Manuel d intégration Module http MMS AllMySMS.com Manuel d intégration Objectif du document... 3 1 Envoi de MMS par requête http... 4 1.1 Format de la requête utilisée... 4 1.2 Arborescence et explication des balises du flux

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte? Avant-propos... V CHAPITRE 1 Scripting Windows, pour quoi faire?... 1 Dans quel contexte?.................................................. 1 La mauvaise réputation............................................

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

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

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

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

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

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

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

Vulnérabilités et sécurisation des applications Web OSSIR 09/09/2002 Vulnérabilités, attaques et sécurisation des applications Web Pourquoi les firewalls sont impuissants patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com Page 1 Planning

Plus en détail

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s Mickaël Mickaël BLANCHARD BLANCHARD Préface de Sébastien L e p e r s Magento Préface de Sébastien L e p e r s Magento Réussir son site e-commerce Réussir son site e-commerce Groupe Eyrolles, 2010, ISBN

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

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

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition) Présentation du langage XML 1. De SGML à XML 17 2. Les bases de XML 18 2.1 Rappel sur HTML 18 2.2 Votre premier document XML 19 2.3 Les avantages de XML 21 3. La syntaxe XML 21 3.1 La première ligne du

Plus en détail

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8 Sage 100 CRM - Guide de la Fusion Avancée Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

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

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

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward PHP CLÉS EN MAIN 76 scripts efficaces pour enrichir vos sites web par William Steinmetz et Brian Ward TABLE DES MATIÈRES INTRODUCTION 1 1 TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR LES SCRIPTS PHP

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

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

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

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT FileMaker Server 11 Publication Web personnalisée avec XML et XSLT 2007-2010 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker est une

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

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

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

Formation : WEbMaster

Formation : WEbMaster Formation : WEbMaster Objectif et Description : Centre Eclipse vous propose une formation complète WebMaster, vous permettant de : Utiliser dès maintenant les nouveautés du web2, ainsi alléger les besoins

Plus en détail

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques Introduction 1. Introduction 11 2. La plateforme de développement web de Microsoft 11 3. Définition du modèle de programmation MVC 14 4. L'historique d'asp.net MVC 17 4.1 ASP.NET MVC 1 (2008) 17 4.2 ASP.NET

Plus en détail

Hébergement de site web Damien Nouvel

Hébergement de site web Damien Nouvel Hébergement de site web Plan L'hébergeur Le serveur web Apache Sites dynamiques 2 / 27 Plan L'hébergeur Le serveur web Apache Sites dynamiques 3 / 27 L'hébergeur L'hébergeur sous-traite l'architecture

Plus en détail

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

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

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

FileMaker Server 12. publication Web personnalisée avec XML

FileMaker Server 12. publication Web personnalisée avec XML FileMaker Server 12 publication Web personnalisée avec XML 2007-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker et Bento sont

Plus en détail

Le stockage local de données en HTML5

Le stockage local de données en HTML5 Le stockage local HTML5, pourquoi faire? Dans une optique de réduction des couts de maintenance, de déploiement, beaucoup d'entreprises ont fait le choix de migrer leurs applicatifs (comptables, commerciales,

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

Sécurité des applications web. Daniel Boteanu

Sécurité des applications web. Daniel Boteanu I F8420: Éléments de Sécurité des applications web Daniel Boteanu Architecture des applications web Client légitime Internet HTTP 浀 HTML Server Web 2 Architecture des applications web Client légitime Internet

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

AWS avancé. Surveiller votre utilisation d EC2

AWS avancé. Surveiller votre utilisation d EC2 10 AWS avancé Dans ce chapitre, nous bâtirons sur les bases que nous avons apprises jusqu ici. Nous étudierons des sujets plus avancés tels que la surveillance de votre utilisation d AWS, l utilisation

Plus en détail

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4) Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4) Sommaire : Contenu I. Introduction:... 2 II. Présentation de l atelier :... 2 1) Attaque persistante :... 3 2) Attaque non persistante :...

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

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

Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état. Failles des applications Web Ce document est extrait du travail de diplôme de M. DIZON dans l état. 1 Introduction...1 2 Contournement de validation javascript...2 2.1 Introduction...2 2.2 Principe de

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Attaques de type. Brandon Petty

Attaques de type. Brandon Petty Attaques de type injection HTML Brandon Petty Article publié dans le numéro 1/2004 du magazine Hakin9 Tous droits reservés. La copie et la diffusion de l'article sont admises à condition de garder sa forme

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures 3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures Objectif global : A l issue de la formation, les stagiaires doivent être opérationnels dans la création d un site internet

Plus en détail

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

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

PROJET 1 : BASE DE DONNÉES REPARTIES

PROJET 1 : BASE DE DONNÉES REPARTIES PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

Serveur d Applications Web : WebObjects

Serveur d Applications Web : WebObjects Serveur d Applications Web : WebObjects Nicolas Roard 29 avril 2004 Table des matières 1 Introduction 1 2 Historique 1 2.1 Implémentation WebObjects....... 2 2.2 Différences et manques?......... 3 3 Principes

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

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

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

Dans l'article précédent, vous avez appris Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

Guide d utilisation. Version 1.1

Guide d utilisation. Version 1.1 Guide d utilisation Version 1.1 Guide d utilisation Version 1.1 OBJECTIF LUNE Inc. 2030 boulevard Pie-IX, bureau 500 Montréal (QC) Canada H1V 2C8 +1 514-875-5863 sales@ca.objectiflune.com http://captureonthego.objectiflune.com

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Présentation Windows Azure Hadoop Big Data - BI

Présentation Windows Azure Hadoop Big Data - BI Présentation Windows Azure Hadoop Big Data - BI Sommaire 1. Architecture Hadoop dans Windows Azure... 3 2. Requête Hive avec Hadoop dans Windows Azure... 4 3. Cas d études... 5 3.1 Vue : Administrateur...

Plus en détail

Cours en ligne Développement Java pour le web

Cours en ligne Développement Java pour le web Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité

Plus en détail