WebÉducation – 10 Juin 2004 Jonathan Dumas

Slides:



Advertisements
Présentations similaires
HTML Abda Anne Plan Présentation Structure Texte Listes Images Liens Tableaux Formulaires.
Advertisements

Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Conception de Site Webs dynamiques Cours 6
Xavier Blanc Web Services Xavier Blanc
Le developpement web  Préparé par : ASSAL Lamiae JAMALI Zakarya
TER Gestionnaires de contenu en ligne
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
HTML Les types de balises
Cours Visual Basic pour Application
WEB MOBILE Web Éducation Québec, le 24 mars 2011.
Common Gateway Interface
Créer un site Web sur internet
CPI/BTS 2 Programmation Web Introduction au PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
IGL301 Spécification et vérification des exigences [3- 0-6] (3 cr) Introduction.
En avant 8 texte 2 page 14 Texte 2 Questions sur le texte 2.
28 novembre 2012 Grégory Petit
Introduction au langage PHP Réfs : Chap 3 p 49. Présentation PHP (Hypertext PreProcessor) est un langage de développement Web créé en 1994 par Rasmus.
Atelier « Créations de sites » : Les techniques de réalisation de sites EPN :...
XML: Syntaxe XML, DTD et Schémas
PHP Géant Aurélien. PHP (Hypertext Preprocessor) Langage de scripts libre Permet produire des pages Web dynamiques dispose d'un très grand nombre d'API(Application.
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Cycle de conférences WebÉducation no. 5 Les formulaires électroniques Benoît Girard Ministère des relations avec les citoyens et de lImmigration
Jeudi le 18 Novembre 1999XML : État de la situation, par Sylvain Carle Jeudi 18 Novembre 1999 État de la situation du XML Un an après, quest-ce qui se.
WebÉducation, mars Présentation dans le cadre des journées WebÉducation Ministère des Relations avec les citoyens et de lImmigration Joël Bélanger,
Développer et faire évoluer un système de gestion de contenu maison Le cas du MAMR.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Adaptée du cours de Richard Grin
Projet CONSULTING SA : GSA ( Gestion du suivi d’activités)
La Programmation CGI Principe Général Traitement des informations
Huissier, huissière audiencier.
Introduction à la programmation (420-PK2-SL) cours 3 Gestion des applications Technologie de l’information (LEA.BW)
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
Cours de programmation web
1 Registration Physique Séminaire du Master Davide Bazzi Université de Fribourg
PHP & MySQL Master1 ICD Claire Jacquot Emilie Hot le 24/10/2006.
Dyalog.Net Peter Donnelly Managing Director Dyadic Systems Toronto 30/10/2002.
Architecture d’une application WEB Statique:
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Serveur HTTP. Responsable : Yohan VALETTE Objectifs : Créer un intranet sécurisé pour nos utilisateurs (pour la mise en commun de connaissances, par exemple).
PLAN 1. Introduction 1.1. Sites de presse actuels 1.2. Objectif de notre site 2. Description du modèle 3. Outils utilisés 3.1. SVG 3.2. PHP et MySQL 4.
Easy Solutions Création d'un CRM
Module : Pages Web Dynamiques (Production Électronique Avancée)
INTERNET Le langage HTML
Soutenance du mémoire de synthèse
Programmation Web : PHP
Les langages de programmation
Introduction à PHP TOURNADRE Guillaume - Informatique Réseaux URL :
Séance /10/2005 CSS et Dreamweaver. CSS : principes Cascading Style Sheet = feuille de style en cascade Norme du W3C :
Karine Vallin - Dorian Baysset
Les Systèmes de Gestion de Contenu (CMS) Allirand Maud Chabord Grégoire Massart Anne-Sophie 24 novembre 2006.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Développement d’applications Société : Caisse Primaire d’Assurance Maladie de Strasbourg Maître de stage : Yves Mathis Responsables de la formation : Guillaume.
Conception des pages Web avec
ORGANISATION DE L’ENSEIGNEMENT
Soutenance de stage Projet principal :
EFREI – – Mathieu Nebra Le développement Web.
Architectures articulant des représentations hétérogènes L’exemple de Gate (Mini tutoriel, journée Atala du 12 février 2005) Thierry Poibeau LIPN (CNRS.
Principes et variables
{ Java Server Pages Par Billy et Mike.  Introduction  Qu’est-ce que JSP?  Pourquoi utiliser JSP?  Développement  Balises  Servlets  Conclusion.
Introduction au HTML Qu’est ce que le HTML ?
Le codage des nombres en informatique
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Introduction Depuis le début des sites web les urls sont utilisé pour la navigation. Avec l’arrivée des bases de données, les urls ont prit de l’importance.
LES SYSTÈMES DYNAMIQUES.
L’internet pour les nuls
Programmation. Définition programmation
Transcription de la présentation:

WebÉducation – 10 Juin 2004 Jonathan Dumas Technicien en informatique Conseil du statut de la femme   Téléphone : (418) 644-9200 jonathan.dumas@csf.gouv.qc.ca

1ere Partie Introduction au PHP Le PHP 1ere Partie Introduction au PHP

Historique « Le besoin est la mère de toutes les inventions... » Besoin primaire: Pages Web dynamiques Applications Web Outils existant C/C++ Grande complexité Pas du tout taillé pour le besoin initial Perl (cgi) Processeur de texte Commun et largement utilisé Un peu plus d'affinité avec le besoin initial, on approche de la solution.

Formulaire simple en langage C #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #define ishex(x) (((x) >= '0' && (x) <= '9') || ((x) >= 'a' && (x) <= 'f') || ((x) >= 'A' && (x) <= 'F')) int htoi(char *s) { int value; char c; c = s[0]; if(isupper(c)) c = tolower(c); value=(c >= '0' && c <= '9' ? c - '0' : c - 'a' + 10) * 16; c = s[1]; value += c >= '0' && c <= '9' ? c - '0' : c - 'a' + 10; return(value); } void main(int argc, char *argv[]) { char *params, *data, *dest, *s, *tmp; char *name, *age; puts("Content-type: text/html\r\n"); puts("<html><head><title>Form Example</title></head>"); puts("<body><h1>My Example Form</h1>"); puts("<form action=\"form.cgi\" method=\"GET\">"); puts("Name: <input type=\"text\" name=\"name\">"); puts("Age: <input type=\"text\" name=\"age\">"); puts("<br><input type=\"submit\">"); puts("</form>"); data = getenv("QUERY_STRING"); if(data && *data) { params = data; dest = data; while(*data) { if(*data=='+') *dest=' '; else if(*data == '%' && ishex(*(data+1))&&ishex(*(data+2))) { *dest = (char) htoi(data + 1); data+=2; } else *dest = *data; data++; dest++; } *dest = '\0'; s = strtok(params,"&"); do { tmp = strchr(s,'='); if(tmp) { *tmp = '\0'; if(!strcmp(s,"name")) name = tmp+1; else if(!strcmp(s,"age")) age = tmp+1; } while(s=strtok(NULL,"&")); printf("Hi %s, you are %s years old\n",name,age); puts("</body></html>"); Et avec le Perl, c'est comment?

Formulaire simple en Perl use CGI qw(:standard); print header; print start_html('Form Example'), h1('My Example Form'), start_form, "Name: ", textfield('name'), p, "Age: ", textfield('age'), submit, end_form; if(param()) { print "Hi ",em(param('name')), "You are ",em(param('age')), " years old"; } print end_html; Et en PHP ...

Formulaire simple en PHP <html><header><title>Form Example</title></header> <body><h1>My Example Form</h1> <form action="form.php" method="POST"> Name: <input type="text" name="name"> Age: <input type="text" name="age"> </form> <?PHP if($name): ?> Hi <?echo $name?>, you are <?echo $age?> years old <?endif?> </body></html>

Historique des versions 1994 « Personnal HomePage Tool » de Rasmus Leidorf Conception automne 1994 Version 1.0: Personal Home Page Tools au début 1995 Version 2.0: PHP/FI 1995-1997 Été 1997 Zeev Suraski & Andi Gutmans (ZEND engine) Version 3.0: PHP 1997-2000 (Syntaxe et sémantique actuelle) Version 4.0: PHP mid-2000 (PHP: Hypertext Preprocessor) Version 4.1: 10 Dec 2001 Version 4.2: 22 Apr 2002 Version 5 Release Candidate 3: 8 juin 2004

PHP en bref Le PHP est : À la fois un langage de programmation (Java, C#) et une plate-forme globale d'entreprise (.Net et J2EE) Langage mature et évolué. (OO) Extrêmement versatile et comporte plusieurs atouts: Simplicité Modèle de développement simple Proche du style de programmation Java/C/C++ Souplesse Deux syntaxe ou mode: orienté scripting et orientée objet Peut s'adapter autant à la couche présentation (WWW dynamiques) qu'aux tâches plus complexes (applications client-serveur) Interropérabilité Champion de l'intégration bas niveau: COM, JAVA, .NET pear::SOAP Adapté à la quasi-ensemble des moteurs de base de données...

PHP en bref Oracle, SQL Serveur, MySQL, dbase,PostgreSQL, ODBC, XML, LDAP, etc.), Supporte de nombreux protocoles (SMTP, IMAP, FTP, HTTP, TCP, etc.) Support des Socket (TCP/IP) Repose sur des standards ouvert Tonnes de ressources (IDE, Modules, Classes) dont la plupart sont gratuites Communauté solide (SourceForge, PHP Québec, PHPBuilder) Portabilité PHP est disponible sur l’ensemble des systèmes d’exploitation du marché :Windows toutes versions, Linux et Unix toutes versions,IBM iSeries (AS/400), SGI IRIX 6.5.x, RISC OS, Novell Netware, Mac OS X, AmigaOS, etc. Performance et stabilité Performances et stabilité inégalées en comparaison aux langages et plateformes utilisés dans le même but : ASP, JSP .NET

PHP en bref Performance (suite) Commande SELECT effectuée 40 fois de suites sur un serveur Microsoft SQL Server 7 en utilisant l'extension PHP's MSSQL7 extension, l'extension PHP ODBC et COM.

PHP en bref Utilisation sur l'Internet: PHP: 15,528,732 Domains, 1,343,899 IP Addresses Source: Netcraft

PHP en bref Se prête à de multiples utilisations : Utilisations nombreuses et variées WebApplications(HTML, WML, XML, XHTML.) Modèle :server-side scripting CMS :OpenSourceCMS, phpWebSite, Mambo, XOOPS Systèmes de gestion (Au CSF: GESCOUR, GCP+) Intégration à des services web reposant sur SOAP Client-serveur (PHP-GTK et PHP4Delphi) Ligne de commande (CLI) Un fier compétiteur aux plateformes de développement .NET, J2EE, Oracle et plus

« It's about getting things done. » PHP en bref Le PHP n'est PAS : Un simple langage de script Une nouveauté ou une mode passagère Un langage réservé aux débutants et aux hobbyistes Un langage destiné à remplacer le C/C++ (bien qu'il en soit capable dans bien des cas) En un mot: « It's about getting things done. »

PHP: Un écosystème L'écosystème PHP Architecture technique Diversification de la faune PHP Outils, Classes, API, Framework, Librairies Relations entres les différentes composantes d'un envirronnement PHP Fonctionnement global et modèle d'exécution Hypertext Preprocessor? Zend Engine Relations Serveur HTTP et PHP et Base de donnée Exemples de déploiement typique LAMP Envirronement de développement mono-utilisateur Envirronement de développement multi-utilisateurs Envirronement de production

PHP: Un écosystème Diversification de la faune PHP Extensions de l'engin Zend Optimizer Zend Encoder Framework PEAR (PHP Extension and Application Repository) Une librairie structurée de code source libre pour les utilisateurs de PHP Un système de distribution du code source et de maintenance des packages (modules) Des Classes PHP Fondamentales (PFC - PHP Foundation Classes) Un style de codage pour les programmes écrit en PHP(Coding Standard) Extensions PHP-GTK, PHP4DELPHI http://www.priadoblender.com/ Classes PDF, EXCEL (Biffwriter), très nombreuses et variées

PHP: Fonctionnement Architecture Technique

PHP: Fonctionnement Fonctionnement global et modèle d'exécution Hypertext Preprocessor? HYPERTEXT: Généralement, tout texte qui contient des liens à d'autres documents - des mots ou des expressions dans le document qui peut être choisi par un lecteur et qui causent un autre document d'être recherché et affiché. Contexte PHP :On travaille avec le Hyper Text Markup Language PREPROCESSOR : Une phase du compilateur qui examine le programme source pour des marqueurs (balise, « tags ») qui sont alors exécutés, ayant pour résultat le changement du programme source. Contexte PHP : L'interpréteur (le Zend engine) trouve et exécute le code PHP entre les balises PHP et génère un fichier HTML

PHP: Fonctionnement Modèle d'exécution simplifié L'interpréteur exécute le code PHP entre les balises <?PHP ?> et renvoi un fichier html consommable par un navigateur standard

PHP: Fonctionnement Fonctionnement global et modèle d'exécution avancé

PHP: Déploiement Déploiement typique Environnement de développement mono-utilisateur

PHP: Déploiement Déploiement typique Environnement de développement multi-utilisateurs

PHP: Déploiement Déploiement typique Environnement de production

PHP: Déploiement Particularité selon les installations Environnement de production Qualités recherchées Haute disponibilité Stabilité Performance Sécurité

PHP: Déploiement Environnement de production Solutions Matérielle et logicielles : Ex. « Clustering fail-over » BeoWulf Installer l'ensemble sur un OS stable: Ex: BSD,Linux Utiliser les versions dites « stable » des logiciels serveurs (Apache, mySQL) À la limite aller chez un produit comme Oracle pour la BD si disponible Compiler ses propres sources en incluant le support pour les extensions les plus utilisées: EX: ./configure' '--prefix=/usr/local/php' '--with- apxs2=/usr/local/apache2/bin/apxs' '--with-mysql=/usr/local/mysql' '-- with-ldap=/usr/local/ldap-3.3' '--with-gettext' Configuration réseau appropriée (firewall, ssl, DMZ) Analyse et programmation orientée vers la sécurité Respecter les standards de programmation Utiliser un modèle relations données-processus-interractions (workflow) sécuritaire

PHP: Déploiement Particularité selon les installations Environnement de développement multi-utilisateurs Qualités recherchées Stabilité Sécurité Coopérativité

PHP: Déploiement Environnement de développement multi-utilisateurs Solutions Linux ou Windows au choix Apache ou IIS au choix Concurrent Versions System (CVS) Part of the open-source toolcraft, CVS is used for collaborative software configuration management on the Internet. Developers favor CVS for making current work available and also for bringing together and managing configurations using configurations developed at different locations around the world. Des outils afin de centraliser les ressources et encourager le coopération et le partage Groupware Bibliothèques et librairies de code réeutilisable Répertoire d'outils Forums Analyse et programmation orientée vers la sécurité Respecter les standards de programmation Utiliser un modèle relations données-processus-interractions (workflow) sécuritaire

PHP: Mini Projet BUT: Monter une application web de style « Carnet d'adresse » en utilisant la technologie PHP. Outils et technologies utilisées Modélisation des données avec DB Designer Utilisation d'outils (win32) MySQLFront, MySQL Administrator && MySQL Contro Center NVU, PHPEdit PHP (!), CSS, HTML, Javascript, Et bien plus...

2e Partie Développement d'une mini application Le PHP 2e Partie Développement d'une mini application

PHP: Mini Projet BUT: Monter une application web de style « Carnet d'adresse » en utilisant la technologie PHP. Outils et technologies utilisées Modélisation des données avec DB Designer Utilisation d'outils (win32) MySQLFront, MySQL Administrator && MySQL Contro Center NVU, PHPEdit PHP (!), CSS, HTML, Javascript, Et bien plus...

PHP: Étapes de conception Planification Description du besoin et mini-analyse Montage d'un modèle de travail (Workflow) Modélisation des données Description des processus Modularisation du projet Exécution Préparation de la DB Configuration des accès Insertion des données tests

PHP: Étapes de conception (suite) (Exécution) Programmation Classes et librairies (OO) utilisées Identification (Minos) Sanitarisation des données Module principal Listing Ajout Modification Suppression Recherche Gestion des accès appliquée (Minos) Interaction avec la base de données

PHP: Un mot sur le SQL SQL Structured Query Language Langage développé par IBM dans les années 1970 comme étant un moyen de placer, modifier, supprimer ou extraire de l'information logées dans un système de base de données relationnelles. Exemple: « INSERT INTO tblClients SET NomClient = 'Pierre'; » Pour insérer une nouvelle entrée (Pierre) dans le champ NomCLient de la table tblCLients. « En PHP on utilise le SQL et les bases de données relationnelles pour ranger de l'informations que l'on voudra utiliser plus tard » Principes: Un bon modèle de données (tables, relations, etc) qui respecte les formes normales (FN) telles que définis par le modèle relationnel réduit à néant le risque de perte de données (intégrité) tout en augmentant la productivité et évite de se retrouver dans des impasses et pièges logiques. Plus on optimise ses requêtes SQL plus le PHP et donc le système au complet s'en trouve amélioré. Des gains considérable en vitesse d'exécution sont à faire en optimisant son code au niveau des requêtes SQL.

PHP: Planification Description des besoins Application accessible via un intranet Multi-utilisateurs Possibilité d'administration à distance Sécuritaire Recherche

PHP: Planification Modèle de travail Décortiquer le problème Module : Gestion des accès Sécurité Multi-utilisateurs Administration à distance Fichier journal Paramétrages Module : Corps de l'application Saisie de données Validation Gestion des erreures Modification / Suppression de données Recherche

PHP: Planification Modèle de travail pour notre application:

PHP: Exécution Préparation de la DB

Programmation des modules principaux: PHP: Exécution Programmation des modules principaux: carnet.php modifications.php utils.inc.php

Ajout de l'authentification PHP: Exécution Ajout de l'authentification index.php login.php minos.class.php erreurs.php

Ajout de la journalisation log.class.php PHP: Exécution Ajout de la journalisation log.class.php

Varia Ajustements finaux PHP: Exécution Varia Ajustements finaux

PHP: Conclusion Question et réponses

FIN