Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 rahma.dhaouadi@laposte.net 3 ème année...

Preview:

Citation preview

Cours : Programmation Web

Mlle Rahma DHAOUADI

2009-2010

rahma.dhaouadi@laposte.net

3ème année IAG Institut 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

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

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

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

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

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

Principe du fonctionnement

MySQL

PHP

Apache

Internet

8

Les bases du langage PHP

9

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

Les variables

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

10

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

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

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

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

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

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

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

Passage de paramètres

18

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

Interaction avec l’utilisateur : formulaire

20

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

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

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

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

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

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

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

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

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

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

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

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

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

Pourquoi AJAX ??

Utiliser un tableau JS

Recharger entièrement la page

Solution AJAX Seules les informations nécessaires sont

rechargées

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

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

37

À la prochaine séance

Recommended