Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 [email protected] 3 ème année...
-
Upload
gilbertine-bourguignon -
Category
Documents
-
view
110 -
download
0
Transcript of Cours : Programmation Web Mlle Rahma DHAOUADI 2009-2010 [email protected] 3 ème année...
Cours : Programmation Web
Mlle Rahma DHAOUADI
2009-2010
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¶m2=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