Web dynamique. approche client/serveur

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

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

TP JAVASCRIPT OMI4 TP5 SRC

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

Formulaire pour envoyer un mail

Module BD et sites WEB

CREATION d UN SITE WEB (INTRODUCTION)

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)

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

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

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Programmation Web. Madalina Croitoru IUT Montpellier

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

Attaques de type. Brandon Petty

SYSTÈMES D INFORMATIONS

Hébergement de site web Damien Nouvel

Pratique et administration des systèmes

Attaques applicatives

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

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

Séance d ED n 5 : HTML et JavaScript

Activités HTML. Code: act-html

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

Bases de Données et Internet

Document Object Model (DOM)

Création de formulaires interactifs

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

DOM - Document Object Model

Mise en place d un serveur Proxy sous Ubuntu / Debian

Sécurité des applications web. Daniel Boteanu

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

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

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

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

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

CREATION WEB DYNAMIQUE

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

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

TD HTML AVEC CORRECTION

Mysql avec EasyPhp. 1 er mars 2006

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.

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

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

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

Formulaires et Compteurs

Introduction. Passage de sites statiques à des sites dynamiques

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

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

Présentation du Framework BootstrapTwitter

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

Les bases de données

Panel des technologies Web

Programmation Internet Cours 4

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

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

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

PDO : PHP Data Object 1/13

OpenPaaS Le réseau social d'entreprise

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

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

Master1 ère année. Réseaux avancés I. TP nº5 filière ISICG

1. La plate-forme LAMP

PHP 5.4 Développez un site web dynamique et interactif

Programmation Web. Introduction

Formation : WEbMaster

Stockage du fichier dans une table mysql:

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

HTML. Notions générales

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

HTML/CSS - Travaux Pratiques 2

PHP. PHP et bases de données

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

Compte-rendu de projet de Système de gestion de base de données

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

Bases de données et sites WEB Licence d informatique LI345

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

Application Web et J2EE

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

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

Technologies Web avancées. ING1 SIGL Technologies Web avancées

Bases de données et Interfaçage Web

Java DataBaseConnectivity

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

Rapport de stage Nicolas PLAZE Licence Pro A2I. Rapport de Stage LICENCE PRO A2I. Société INFHOTIK. Nicolas PLAZE

Les services usuels de l Internet

BES WEBDEVELOPER ACTIVITÉ RÔLE

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

PROJET 1 : BASE DE DONNÉES REPARTIES

Petite définition : Présentation :

Serveur d Applications Web : WebObjects

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Programmation Web TP1 - HTML

Normes techniques 2011

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

1 ère Université WEB. Courbevoie Samedi 21 octobre Votre site interactif sur internet.

Gestion de stock pour un magasin

Les outils de création de sites web

Transcription:

Web dynamique approche client/serveur

Client/serveur Serveur requête (url) réponse (fichiers) Client url = adresse IP + /chemin/vers/fichier réponse = fichier (lu sur le DD du serveur) Le client gère la mise en page.

html + css Serveur requête (url) html + css + ressources affichage (statique) DOM + ressources interpréteur côté client : construction de l'arbre DOM => bloc = objet affichage (flux)

Pages dynamiques Serveur requête (url) html + css + ressources + javascript affichage (dynamique) DOM + ressources javascript événements côté client : modification du DOM selon les événements produits par l'utilisateur

Web dynamique BD LECTURE / ECRITURE Serveur url (+ variables) réponse (données) Client CRUD : Create / Read / Update / Delete réponse = données mises en forme au niveau du serveur

Transmission de données "en clair" Les variables sont inscrites dans l'url transmise au serveur: http//mon.adresse.com/mon_site.php?nom=pignon&prenom=francois adresse ressource variables Le serveur exécute le script (en général du php mais aussi python, java,...), c'est à dire : traite les variables exécute des opérations de lecture/écriture transmet un contenu au client (en général html mais aussi xml ou json...)

Transmission de données variables "POST" (n'apparaissent pas dans l'url) utilisation de Formulaires HTML : le fichier cible est défini comme attribut du formulaire : <FORM method="post" action="cible.php">... </FORM> les balises INPUT définissent les variables à transmettre: <INPUT type="text" name="var1" /> l'input de type submit lance la requête : la page cible est chargée et remplace la page courante: <INPUT type="submit" value="envoyer" />

php Langage de script interprété côté serveur Le fichier contenant du php doit posséder l'extension.php Le script est inséré dans du html à l'aide du conteneur : <?php...?> en entrée : les variables transmises (méthode GET ou POST) en sortie : du texte : echo "Salut la Terre!"; echo "J'ai $mon_age ans! <BR/>"; echo "{nom : $nom, liste : [$a, $b, $c]}" remarque : le client reçoit un fichier html où les zones de script sont remplacées par le texte généré par echo ne pas oublier d'insérer des balises html pour la mise en forme côté client

Exemple 1 <html> <head> <title> Salut! </title> </head> <body> <?php echo "Salut la Terre!"; // echo Salut la terre!"?> </body> </html>

Variables php Les variables commencent par $ sont interprétées dans les chaînes : "J'ai $age ans!"; Variables externes : celles qui sont transmises par url: http://bla.bla/site.php?nom=pignon&prenom=francois --> $nom = $_GET['nom']; $prenom = $_GET['prenom']; ou formulaire : $var1 = $_POST['var1']; Variables internes : déclarées dans le script : $n = 100; for ($i=0; $i<$n; $i++) {... }

Exemple 2 formulaire.html : <form action = "bonjour.php" method ="post"> Votre nom : <input type="text" name="nom"/> <br/> Votre prénom : <input type="text" name="prenom"/> <br/> <input type="submit" value="envoyer"> </form> bonjour.php <?php echo "Bonjour, ".$_POST["prenom"]." ".$_POST["nom"]."!!!";?>

Exemple 3 : table de multiplications <?php echo '<table width="100%">'; for ($i=1;$i<=10;$i++){ echo "<tr>"; for ($j=1;$j<=10;$j++){ echo "<td>". $i * $j."</td>"; } echo "</td>"; } echo '<caption> Table de multiplication </caption>'; echo '</table>';?>

Session php Voir sessions php Tableau $_SESSION persistant d'une page à l'autre.... pour toutes les pages possédant l'en-tête session_start : <?php session_start();?> <!DOCTYPE... pour tester une valeur : if (!isset($_session['pseudo'])){... pour effacer le tableau : session_destroy()

Pour conserver l'information plus longtemps... Les informations fournies par l'utilisateur peuvent être stockés dans un fichier (ex : fichier dbm). voir la recette La plupart du temps, on utilisera des bases de données : plus robuste plus sécurisé plus rapide

php + base de données! C'est la recette du succès! Le web dynamique repose sur : la mise à jour en continu d'informations gérées par une base de données tout se passe côté serveur php/mysql est la combinaison la plus utilisée pour cette fonctionnalité

Exemple avec SQLite3 un simple fichier situé dans le répertoire courant sert à stocker les informations: Connexion à la base: $db = new SQLite3("ma_base.db"); où ma_base.db est située dans le même dossier que le script php attention : le fichier ma_base.db doit être accessible en lecture/écriture : chmod 777 ma_base.db

Exécuter une requête Requête lecture/écriture : INSERT, UPDATE ou DELETE $db->exec("insert INTO Utilisateur VALUES ('Joe','Dalton')"); retourne un booléen Requête SELECT : retourne une liste de tuples $reponse = $db->query('select * FROM Livre');

Exemple <?php $db = new SQLite3('biblio.db'); $reponse = $db->query('select * FROM Livre'); while ($tuple = $reponse->fetcharray()) { echo " Titre : $tuple[2] - "; echo " Editeur : $tuple[3] <BR/>"; }?>

Exemple : poster un message formulaire.html : <form action = "insere.php" method ="post"> Votre pseudo : <input type="text" name="pseudo"/> <br/> Votre message : <textarea name="message"/> <br/> <input type="submit" value="envoyer"> </form> insere.php: <? php $db = new SQLite3("message.db"); $auth = $_POST['pseudo']; $mes = $_POST['message']; $db->exec("insert INTO Message values ('$auth','$mes')"); $reponse = $db->query('select * FROM Message'); echo "<h3>liste des messages :</h3>"; while ($tuple = $reponse->fetcharray()) { echo " <b>auteur</b> : $tuple['auteur'] <BR/> "; echo " <b>texte</b> : $tuple['texte'] <BR/>"; }?>

jquery + ajax Serveur requête (url) html + css + ressources + javascript A J A X affichage (dynamique) DOM + ressources javascript événements

jquery + ajax http://babylon-design.com/apprendre-et-comprendre-jquery-3-3/ http://api.jquery.com/category/ajax/ $.ajax({ type: "POST", url: "test.html", success: function(retour){ alert("données retournées : " + retour ); } });

Requête sur un lien $("a.test").click(function() { $.ajax({ type: "POST", url: $(this).attr("href"), success: function(retour){ $("#recipient").empty().append(retour); } }); return false; });

Requête sur un formulaire $("form.test").submit(function() { s = $(this).serialize(); $.ajax({ type: "POST", data: s, url: $(this).attr("action"), success: function(retour){ $("#recipient").empty().append(retour); } }); return false; });