APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen Mahrous Grenoble INP – Pagora 10 novembre 2014 Cours en Réponse à questions, n° 1
Questions reçues précédemment : Par quel moyen, la page d'accueil doit-elle reconnaitre l'utilisateur pour afficher la personnalisation (log-in ou autre) ? Comment réaliser une page html généré par un script php ? Comment créer un script php et le tester (avec MAMP) ? Comment WAMP interprête le php ? Cette année : ? Questions reçues
Exemple de page d’accueil
Page statique Page dynamique
Client / Serveur Client interprêter html/css (+js) Serveur générer html/css Outils du cours : php/mySQL Dans ce cours: pas de RIA Flex/As3, pas de PERL, ni applet Java, ni WebService, etc…
Principes: "calculer" les pages Web qu'un serveur doit renvoyer à un client pour une URL demandée. URL = adresse d’un serveur + désignation d’un fichier Logiciel client demande (click de souris sur des liens, etc…) : envoie d’une requête Serveur envoie le fichier demandé Au départ: envoie du fichier tel qu’enregistré en mémoire (donc duplication, etc…) Maintenant: possibilité de créer à la volée le fichier à renvoyer 2 types de scripts: Côté serveur(avec environnement adapté) Côté client (JavaScript, demande de permission) Langage de script
CGI = interface de passerelle commune, entre: Le serveur Autre application (SGBD par exemple) Langage: peu importe du moment qu’il peut lire le flux de données d'entrée traiter des chaînes de caractères écrire sur le flux standard de sortie Être exécuter ou interpréter par le serveur Communication CGI/navigateur 1 = requête du client (html, php, exe) 2 = réponse du serveur avec le bon en-tête content-type : text/html content-type : image/gif content-type : text/quicktime Common Gateway Inteface
Travail en local ou distant Ensuite : Envoie des fichiers sources sur le serveur Donc Logiciel FTP Ensuite : Envoie des fichiers sources sur le serveur Donc Logiciel FTP file:///chemin_dans_l_ordi/bla/bla file:///chemin_dans_l_ordi/bla/bla En local : Edition des sources Visualisation Base de test Donc Editeur de fichiers Navigateur (ff, opera, safari, ie…) + server local * (Apache, Tomcat, IIE…) Base de données En local : Edition des sources Visualisation Base de test Donc Editeur de fichiers Navigateur (ff, opera, safari, ie…) + server local * (Apache, Tomcat, IIE…) Base de données *: si les fichiers contiennent un langage script
Quelques balises utiles pour le cours … : paragraphe … : titre (important i = 1, moins important i = 6) … : centrer « … » … : « … » en italique (gras si ) … Et encore mieux: Quelques règles (les miennes) Pas de style dans les fichiers html (<td style=« … ») Rappels HTML
- Le CSS vous permettra de rendre le tableau plus présentable - Bordures - Couleurs - Centrer/justifier le texte - Etc Tableaux en HTML
Formulaires HTML -Balise … -Attributs: -method -post -get -Différences -Des valeurs passées par GET se voient dans l’URL ex: -GET limité en taille (255 caractères) -Action: -Ce qu’il se passe après la validation -Script php, perl, … -envoie d’un mail -Etc
QCM inspiré des questions des fiches de TD de tiprof
Les bases de PHP
Première balise -Plusieurs types de balise - - … -Partout !
mknk Hello World
Simple vs Double quotes ExerciceExercice: Analyse du code
Variables
Entiers $decimal = 10; $hexa = 0x0F; $octal = 020; Decimaux $normal = 0.017; $scientifique = 17.0E-3; séquences d'échappement \n: Nouvelle ligne \t: Tabulation \r: Retour chariot \\: Anti slash \$: Signe dollar
Variables dynamiques Elles autorisent en fait à créer une variable dont le nom est contenu dans une autre variable. Autre syntaxe: ${$first} Permet de désambiguïser lors de manipulation de tableaux: $$tab[1] ? ${$tab[1]}tab [1] contient une variable ${$tab}[1]$tab contient le nom d’une variable (tableau en l’occurrence)
Opérations
Variables Tableaux:
IF, ELSEIF, ELSE: Structure de contrôle: if
Structure de contrôle: switch
Structure de contrôle: while
Structure de contrôle: for Boucle For: Break Continue:
Structure de contrôle: foreach