Cours : Programmation Web Mlle Rahma DHAOUADI rahma.dhaouadi@laposte.net 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 les motivations peut être juste les avantages au début
Objectifs du cours 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
Références www.phpfacile.com www.Developpez.com ENPC - Module SYSIN - Option XML - 2003/04 - B. Amann Initiatin à AJAX (Réseau CERTA ) Denis Cabasson – Programmation Web
PLAN du cours Historique du web Les langages du web : PHP Les langages du web : XML Les langages du web : JAVA SCRIPT Les langages du web : AJAX
Un peu d’historique Les langages du web 3 Web 2.0 (2004): participation, échange de contenu 2 Web 1.5 pages dynamiques 1 Web 1.0 pages statiques
Avantages - Caractéristiques Langage interprété Nombreuses bibliothèques Communauté 1er ordre Langage non déclaratif PHP : PHP Hypertext Preprocessor PHP : acronyme historique Personal Home Page Gestion pratique, efficace Langage non typé SD et objets Syntaxe inspirée du Shell
Principe du fonctionnement MySQL PHP Apache Internet Une fois une page HTML ou PHP appelée, elle passe par le serveur Web (ici Apache). Si l'extension du fichier correspond à ce que l'on a défini comme étant l'extension PHP le serveur demande à l'interpréteur PHP d'exécuter le code PHP contenu dans le fichier. L'exécution de ce code PHP entrainera éventuellement un échange d'informations avec la base de données. Au final, c'est une page HTML (généralement) qui est renvoyé à Apache (avec éventuellement du Javascript, des appels à des applets... enfin tout ce que les navigateurs peuvent comprendre). Le résultat est émis vers le navigateur.
Les bases du langage PHP Bloc de code <?php ?> commentaires // commentaires ligne /* commentaires bloc */ # commentaires de type Les blocs { }
Les variables Modèle unifié de variable : $ + un nom $var = 1; $var = 3.2E+4; $var = "du texte"; $var = array(); $var = new Object();
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 variable gettype pour récupérer le type . l'utilisation d'une variable non initialisée ne signale rien, la variable vaut 0 ou '' ou null suivant son utilisation.
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 .
Les chaînes de caractères $str = " KG"; echo $str; Concaténation de chaînes de caractères : $a = "Hello "; $b = $a . "KG!"; echo $b; KG HelloKG Strpos Recherche la première occurrence d'un caractère dans une chaîne Strtolower Met tous les caractères en minuscules opp. strtoupper Près de 90 fonctions de manipulation des chaînes de caractères. Explode Scinde une chaîne en morceaux, grâce à un délimiteur 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 Substr Retourne une partie de la chaîne
Les tableaux Se déclare mais ne s'alloue pas $var = array(); Il existe deux types de tableaux Scalaires et Associatifs $TAB = array(); $TAB[1][0] = 4; Augmenter de dimension Un tableau à dimension multiple est TOUJOURS un tableau de tableaux $TAB = array(1,2,6,array(2,3),array(3,4,7));
Construction des objets Façon opportuniste $obj->nom = ‘chocolat'; $obj->prix = 2; $obj->quantité = 10; . Instanciation Les objets peuvent être également déclarés en "classes" $variable = new NomObjet();
Les opérateurs & structures de contrôle Opérateurs arithmétiques Opérateurs logiques Opérateurs de comparaison Les structures : If/else While Do/while For Foreach Switch Break/continue Include
Fonction utilisateur function maFonction($parm1, $parm2 , $parm3=0) { … code de la fonction … } function maFonction(…) $valretour = …; return $valretour; Appel fonction $var=nomfonction(); Une fonction est définie par son nom et ses paramètres :
Passage de paramètres
Passage de paramètres http://www.laposte.net/thematique/femmes/cuisine/ Article.jsp?idArticle=cookies-aux-pepites-de-chocolat&idAgg=femmes_cuisine 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
Récupérer les valeurs des champs d’un formulaire Méthode GET = Méthode POST = Tableau Associatif Valeur1 Valeur2 Valeur3 Valeur4 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" >
Méthode GET – Méthode POST (+) 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 Lire un fichier ligne par ligne fopen() 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 feof()
Interaction avec une base de données $link = mysql_connect("mysql_hote", "mysql_utilisateur", "mysql_mot_de_passe"); Connexion BD Choix BD mysql_select_db("my_database"); Exécution requête SQL $query = "SELECT * FROM my_table"; $result = mysql_query($query); Parcours résultat while ($line = mysql_fetch_assoc($result)) { foreach ($line as $col_value) {echo "$col_value\n";} } Fermeture résultat, connexion mysql_free_result($result); mysql_close($link);
Interaction avec l’utilisateur Cookies - Sessions Permet le stockage d’informations sur le client $_COOKIE contient les valeurs des variables Problè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.
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” Acronyme = = langage de balise étendu
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>
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.
JAVA SCRIPT 1995 : invention du JavaScript Langage 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
Les éléments de base de JS Déclaration de variables Types des objets variable=5 var variable_reserve=5 locale à la fonction string date array math RegExp types de variables Undefined number boolean string object function Création des fonctions function addition(a,b) { var c=a+b return c } Structures de contrôle et boucles
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>
Avantages inconvénients JS 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)
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
Pourquoi AJAX ?? Recharger entièrement la page Solution AJAX Seules les informations nécessaires sont rechargées Utiliser un tableau JS
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
Langage client - Langage serveur langages interprétés côté client langages interprétés côté serveur Les applets Java Les animations flash Les ActiveX (uniquement sous IE) Css Js Ajax .NET : alternative de Microsoft à PHP et Java Java (J2EE, JSP) Python (Zope) Ruby (Ruby on Rails) Php
À la prochaine séance