37
Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 [email protected] 3 ème année IAG Institut Supérieur de Gestion

Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 [email protected] 3 ème année IAGInstitut Supérieur de Gestion

Embed Size (px)

Citation preview

Page 1: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Cours : Programmation Web

Mlle Rahma DHAOUADI

2009-2010

[email protected]

3ème année IAG Institut Supérieur de Gestion

Page 2: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Les pré-requis

Langage HTML

Les notions de base de la programmation objet

Architecture client serveur

Base de données

2

Page 3: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

1- Suivre l’historique et l’évolution de la programmation orientée web

2- Initiation aux langages web de base

3- Comprendre le fonctionnement interne des pages web

4- Se préparer au projet de fin de semestre

Objectifs du cours

3

Page 4: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Références

www.phpfacile.comwww.Developpez.comENPC - Module SYSIN - Option XML - 2003/04 - B. Amann

Initiatin à AJAX (Réseau CERTA ) Denis Cabasson – Programmation Web

4

Page 5: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

PLAN du cours

Les langages du web : PHP

Les langages du web : XML

Historique du web

Les langages du web : JAVA SCRIPT

Les langages du web : AJAX

5

Page 6: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Les langages du web

Un peu d’historique

1

2

3

Web 1.0 pages statiques

Web 1.5 pages dynamiques

Web 2.0 (2004): participation, échange de contenu

6

Page 7: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Avantages - Caractéristiques

Langage interprété

Langage non déclaratif

Langage non typé

Syntaxe inspirée du Shell

Nombreuses bibliothèques

Communauté 1er ordre

Gestion pratique, efficace

SD et objets

Page 8: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Principe du fonctionnement

MySQL

PHP

Apache

Internet

8

Page 9: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Les bases du langage PHP

9

Bloc de code<?php ?>commentaires// commentaires ligne/* commentaires bloc */# commentaires de typeLes blocs{}

Page 10: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Les variables

Modèle unifié de variable : $ + un nom$var = 1;$var = 3.2E+4;$var = "du texte";$var = array();$var = new Object();

10

Page 11: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Bibliothèque

.

Vérifier l’affectation d’une variable : isset (unset : désaffecter une variable)

Exemple : echo (isset($var)) ? 'initialisée' ; 'rien' ;

Tester le type d’une variable : isXXXX() Exemple : isarray($var) ?

Fonctions de manipulation du type :

settype(string var, string type) pour typer une variablegettype pour récupérer le type

11

Page 12: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Bibliothèque Date - Time

.

Time : retourne le nombre de secondes

écoulées depuis le 1er Janvier

1970

Checkdate : contrôler la

validité d'une date

Strftime : afficher une date

getdate : retourne la date/heure

12

Page 13: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Les chaînes de caractèresConcaténation de chaînes de caractères :

$a = "Hello "; $b = $a . "KG!"; echo $b;

$str = " KG";echo $str;

Explode Scinde une chaîne en morceaux, grâce à un délimiteur

Strtolower Met tous les caractères en minuscules opp. strtoupper

Substr Retourne une partie de la chaîne

Strpos Recherche la première occurrence d'un caractère dans une chaîne

KGHelloKG

Ucfirst Force le premier caractère d'une chaîne en majuscule

Trim Enlève les espaces de début et de fin de chaîne

13

Page 14: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Les tableaux

Se déclare mais ne s'alloue pas

Il existe deux types de tableaux

Augmenter de dimension

Un tableau à dimension multiple est TOUJOURS un tableau de tableaux

$var = array();$var[3] = 4.2;

Scalaires et Associatifs

$TAB = array();$TAB[1][0] = 4;

$TAB =

array(1,2,6,array(2,3),array(3,4,7));

14

Page 15: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Construction des objets

Façon opportuniste Façon opportuniste

Instanciation Instanciation

$obj->nom = ‘chocolat';$obj->prix = 2;$obj->quantité = 10;

Les objets peuvent être également déclarés en "classes"

$variable = new NomObjet();

.

15

Page 16: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Les opérateurs & structures de contrôle

Les opérateurs : Opérateurs arithmétiques Opérateurs logiques Opérateurs de comparaison

Les structures : If/else While Do/while For Foreach Switch Break/continue Include 16

Page 17: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Fonction utilisateur

function maFonction($parm1, $parm2 , $parm3=0) {

… code de la fonction … }

function maFonction(…){

$valretour = …;… code de la fonction … return $valretour;

}

Appel fonction$var=nomfonction();

17

Page 18: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Passage de paramètres

18

Page 19: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Passage de paramètres

http://www.laposte.net/thematique/femmes/cuisine/Article.jsp?idArticle=cookies-aux-pepites-de-chocolat&idAgg=femmes_cuisine

19

Ajouter dans l'URL, après le nom du script, une chaîne de la forme ?param1=valeur1&param2=valeur2&...

Page 20: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Interaction avec l’utilisateur : formulaire

20

Page 21: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Récupérer les valeurs des champs d’un formulaire

Méthode GET =

Méthode POST =

Valeur1 Valeur2 Valeur3 Valeur4

Tableau Associatif

Paramètre1 Paramètre2 Paramètre3 Paramètre4

$_GET[" Paramètre1"] vaut "valeur1 $_POST[" Paramètre1"] vaut "valeur1

 echo "Nom: ".$_GET["nom"]  echo "Nom: ".$_POST["nom"]

<form method="get" > <form method="post" >

21

Page 22: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Méthode GET – Méthode POST

22

Méthode GET : (+) Simple(-) le serveur web refuse les valeurs les URLs bien longues(-) Les valeurs passées sont clairement visibles (mot de passe)

Donc utiliser POST

Page 23: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Fichiers

feof()

Lire un fichier ligne par ligne

Lire un fichier paquet par paquet

Ecrire dans un fichier

Lister les fichiers d'un répertoire et de ses sous-répertoires

fopen()

23

Page 24: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Interaction avec une base de données

while ($line = mysql_fetch_assoc($result))        { foreach ($line as $col_value)

        {echo "$col_value\n";}  }

$link = mysql_connect("mysql_hote", "mysql_utilisateur", "mysql_mot_de_passe");

mysql_select_db("my_database");

$query = "SELECT * FROM my_table";$result = mysql_query($query);

mysql_free_result($result);mysql_close($link);

Connexion BD

Choix BD

Exécution requête SQL

Parcours résultat

Fermeture résultat,

connexion

24

Page 25: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Interaction avec l’utilisateur Cookies - Sessions

Permet le stockage d’informations sur le client$_COOKIE contient les valeurs des variablesProblème de sécuritéStockage sur le long terme (détecter les navigateurs étant déjà venus)Variables stockées coté serveur ($_SESSION)

TAF : recherche approfondie sur Cookies & Sessions, ainsi que leur implémentation.

25

Page 26: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Langage XML : Généralités

EXtended Markup Language Structurer et la manipuler toutes sortes de données indépendamment des plates-formes et des logiciels Devenir le standard d'échange principal entre systèmes hétérogènes Un document XML est constitué de balises qui peuvent être enrichies avec des attributs Peut être stocké, transformé, interrogé “facilement”

26

Page 27: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Structure de document XML - Exemple

<?xml version="1.0" ?><root> <Livre><Titre>Yaoum men ayami zamra </Titre> <Auteur>Mohamed saleh jebri </Auteur><CodeISPN>BOU75T</CodeISPN> <NbrePages>100 </NbrePages><Edition>5 </Edition></Livre></root>

27

Page 28: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Gestion de l’information avec XML

Le parseur permet d'extraire les données d'un document XML ainsi que de la vérification de sa validité du document.

Outils d’analyse (parsing, interrogation): SAX lire un fichier XML sous forme de flux. DOM charger un document XML sous forme

d'un arbre.

28

Page 29: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

JAVA SCRIPT

1995 : invention du JavaScriptLangage de script exécuté dans le navigateur (client) et permettant un dynamisme des pages Il est encapsulé dans la page HTML (ou dans un fichier lié) pour être exécuté sur le client

29

Page 30: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Les éléments de base de JS

Déclaration de variables variable=5 var variable_reserve=5locale à la fonction

function addition(a,b){ var c=a+breturn c }

Création des fonctions

types de variablesUndefinednumber boolean string object function

string date array math RegExp

Types des objets

Structures de contrôle et boucles 30

Page 31: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Gestion de l’information avec XML

alert(“Bonjour”); reponse=confirm(“Êtes-vous sûr ?”);

reponse2=prompt(“Please enter your name”,”Harry Potter”);

<a href=”afficher.html” onclick=”affiche();”>test</a>31

Page 32: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Avantages inconvénients JS

Avantages Inconvénients Rendre dynamique une page

web Réagir aux actions des

utilisateurs Valider les données inscrites

dans un formulaire Récolter des informations sur

les visiteurs du site Créer des cookies Effectuer des requêtes

asynchrones (AJAX)

Compatibilité entre les navigateurs

Problème de sécurité Désactivation du JavaScript

(~10% des navigateurs)

32

Page 33: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Le web 2.0

Le réseau comme plate-forme (navigateur) Les utilisateurs possèdent et contrôlent leur information Interface riche et ergonomique, basée sur Ajax Participation collective (Wiki) Réseaux sociaux

33

Page 34: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Pourquoi AJAX ??

Utiliser un tableau JS

Recharger entièrement la page

Solution AJAX Seules les informations nécessaires sont

rechargées

Page 35: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

AJAX

Asynchronous JavaScript And XML Se baser sur l’objet XMLHttpRequest L’objet permet de formuler des requêtes HTTP asynchrones Envoyer requête Récupérer résultat MAJ l’affichage de la page

35

Page 36: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

Langage client - Langage serveur

langages interprétés côté client langages interprétés côté serveur

Les applets JavaLes animations flashLes ActiveX (uniquement sous IE)CssJsAjax

.NET : alternative de Microsoft à PHP et JavaJava (J2EE, JSP)Python (Zope)Ruby (Ruby on Rails)Php

36

Page 37: Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année IAGInstitut Supérieur de Gestion

37

À la prochaine séance