M1202 Algorithmique et programmation

Documents pareils
NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Séance d ED n 5 : HTML et JavaScript

Démonstration de la mise en cache via HTML 5 sur iphone

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Programmation Internet Cours 4

Tour d horizon des CMS. Content Management System

Formulaire pour envoyer un mail

TP JAVASCRIPT OMI4 TP5 SRC

Dans l'article précédent, vous avez appris

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

PLUGINS Guide du Développeur STEPHANE FERRARI. P l u X m l 5.4

{less} Guide de démarrage

SYSTÈMES D INFORMATIONS

Document Object Model (DOM)

STID 2ème année : TP Web/PHP

Mise à jour : janvier 2015 POURQUOI ET COMMENT OPTIMISER LES VISUELS

L'API DOM : Document Object Model

«Cachez-moi cette page!»

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Programmation Web. Madalina Croitoru IUT Montpellier

Les architectures 3-tiers Partie I : les applications WEB

Introduction. Passage de sites statiques à des sites dynamiques

Qui sommes-nous? Buddyweb est une agence digitale spécialisée dans les projets web et mobiles.

HTML/CSS - Travaux Pratiques 2

Le point sur les services en ligne employeurs

Panel des technologies Web

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

1. La plate-forme LAMP

LICENCE PROFESSIONNELLE

GESTION DES CONNAISSANCES AU GEIPAN

ALGORITHMIQUE ET PROGRAMMATION En C

Initiation aux techniques du Web. Cours L2 sciences cognitives séance 2 Charif HAYDAR: alchiekc@loria.fr

Attaques de type. Brandon Petty

Travaux dirigés n 10

TD HTML AVEC CORRECTION

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Module BD et sites WEB

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

DOM - Document Object Model

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Attaques applicatives

HTML. Notions générales

CREATION d UN SITE WEB (INTRODUCTION)

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Module : programmation site Web dynamique Naviguer entre les pages via site map

AWS avancé. Surveiller votre utilisation d EC2

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Formation HTML / CSS. ar dionoea

Plateforme publicitaire Entreprendre. Guide de normes

Développement des Systèmes d Information

Programmation Web TP1 - HTML

Projet de Semestre. Page Web Didactique de Visualisation d Algorithme. Université de Genève - semestre de printemps 2012

Drupal Développeur. Theming et développement pour Drupal. Une formation Formateur : Fabien Crépin. Drupal Développeur.

Web statique : client-serveur. PHP/MySQL: Sites dynamiques Formulaires et bases de données. Discussion HTTP. Caractéristiques du HTTP

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

PPE Installation d un serveur FTP

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Informatique : Création de site Web Master 2 ANI TP 1

Formation : WEbMaster

Les outils de création de sites web

25 mars. Tutoriel sur Laravel. Préparé par : Lydiane Beaulne-Bélisle. Ceci est un tutorial qui montre comment débuter avec le Framework PHP Laravel.

API SMS CONSEIL HTTP V2.01. Sommaire. Documentation V1.0 au 21/05/2011

Extended communication server 4.1 : VoIP SIP service- Administration

Présentation du Framework BootstrapTwitter

= constante et cette constante est a.

TIC 12 ATELIER INTEGRATION CAHIER DES CHARGES. Page 1/5

Initiation à html et à la création d'un site web

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Trusteer Pour la prévention de la fraude bancaire en ligne

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006

Transfert de fichiers (ftp) avec dreamweaver cs5 hébergement et nom de domaine. MC Benveniste

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Nous vous proposons des formations à la carte et vous accompagnons dans leur mise en oeuvre au quotidien.

PLATEFORME GRAPHIQUE INSTITUT DU NOUVEAU MONDE

SERVEUR WEB. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Java Licence Professionnelle CISII,

Serveur d Applications Web : WebObjects

Stockage du fichier dans une table mysql:

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Présentation du langage et premières fonctions

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Architectures Web Services RESTful

Performance Front-End

Guide d interfaçage SSO Connexion des ressources aux plates-formes de type Corrélyce. Sommaire. Titre du document

Pack Fifty+ Normes Techniques 2013

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Formation Webmaster : Création de site Web Initiation + Approfondissement

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Transcription:

M1202 Algorithmique et programmation PHP par l'exemple - 5 Jérôme Landré jerome.landre@univ-reims.fr DUT Métiers du Multimédia et de l'internet I.U.T. de Troyes Université de Reims Champagne-Ardenne

Plan I Fonctions et portée des variables en PHP II Interactions PHP/Javascript III Les erreurs PHP

I Fonctions en PHP 3

Fonctions en PHP On peut créer une fonction ainsi : <?php function calculperimetrecercle($rayon) { $perimetre = 2 * pi() * $rayon; return $perimetre; }?> $r = 4; $peri = calculperimetrecercle($r); echo '<p>périmètre 4 : '.$peri.'</p>'; echo '<p>périmètre 5 : '.calculperimetrecercle(5).'</p>'; Lors de la déclaration de la fonction, les paramètres (ou arguments) N'EXISTENT PAS C'est lors de l'appel de la fonction que les valeurs des paramètres sont passées à la fonction 4

Fonctions en PHP On peut créer une fonction ainsi : <?php function calculperimetrecercle($rayon) { $perimetre = 2 * pi() * $rayon; return $perimetre; }?> $r = 4; $peri = calculperimetrecercle($r); echo '<p>périmètre 4 : '.$peri.'</p>'; echo '<p>périmètre 5 : '.calculperimetrecercle(5).'</p>'; Les paramètres sont passés par valeur (ou par recopie), c'est-à-dire que les paramètres ne sont pas modifiés lors de leur passage dans la fonction 5

Portée des variables Les variables sont locales au bloc dans lequel elles sont créées <?php function test($param1, $param2) { $a = 12; $resultat = $param1 + $param2; return $resultat; } $b = 12; echo '<p> resultat : '.test(5, 4).' - a : '.$a.'- b : '.$b.'</p>';?> Les variables déclarées dans le bloc principal sont des variables GLOBALES Les variables déclarées dans un bloc de programme (comme une fonction) sont LOCALES : en dehors du bloc, elles N'EXISTENT PLUS! 6

Portée des variables Les variables sont locales au bloc dans lequel elles sont créées <?php echo '</p>'; for ($i=0 ; $i<100 ; $i++) { echo $i.' '; } echo '</p>'; echo '<p>valeur de i : '.$i.'</p>';?> 7

Portée des variables Les variables sont locales au bloc dans lequel elles sont créées <?php echo '</p>'; for ($i=0 ; $i<100 ; $i++) { echo $i.' '; } echo '</p>'; echo '<p>valeur de i : '.$i.'</p>';?> 8

Portée des variables Les variables sont locales au bloc dans lequel elles sont créées <?php function afficher() { echo '<p>'; for ($i=0; $i<100; $i++) { echo $i.' '; } echo '</p>'; }?> echo '<p>valeur de i : '.$i.'</p>'; 9

Portée des variables Les variables sont locales au bloc dans lequel elles sont créées <?php function afficher() { echo '<p>'; for ($i=0; $i<100; $i++) { echo $i.' '; } echo '</p>'; }?> echo '<p>valeur de i : '.$i.'</p>'; 10

Portée des variables Les variables sont locales au bloc dans lequel elles sont créées <?php function afficher() { echo '<p>'; for ($i=0; $i<100; $i++) { echo $i.' '; } echo '</p>'; } afficher(); echo '<p>valeur de i : '.$i.'</p>';?> 11

Portée des variables Les variables sont locales au bloc dans lequel elles sont créées <?php function afficher() { echo '<p>'; for ($i=0; $i<100; $i++) { echo $i.' '; } echo '</p>'; } afficher(); echo '<p>valeur de i : '.$i.'</p>';?> 12

Fonctions en PHP Quand on veut modifier la valeur d'un paramètre (d'un argument) dans une fonction, il faut le passer par adresse (ou par référence) <?php function augmentevaleur($val) { $val++; } $a = 4; echo '<p>valeur avant : '.$a.'</p>'; augmentevaleur($a); echo '<p>valeur après : '.$a.'</p>';?> 13

Ce qui donne : Fonctions en PHP 14

Fonctions en PHP Quand on veut modifier la valeur d'un paramètre (d'un argument) dans une fonction, il faut le passer par adresse (ou par référence) <?php function augmentevaleur(&$val) { $val++; } $a = 4; echo '<p>valeur avant : '.$a.'</p>'; augmentevaleur($a); echo '<p>valeur après : '.$a.'</p>';?> 15

Ce qui donne : Fonctions en PHP 16

Fonctions en PHP Un paramètre peut être un tableau <?php $tabnotes = array(12, 10.5, 8, 11, 10.5); function ajouteun(&$tab) { for ($i=0;$i<count($tab);$i++) { $tab[$i]++; } } echo '<p>valeur avant : '.$tabnotes[0].'</p>'; ajouteun($tabnotes); echo '<p>valeur après : '.$tabnotes[0].'</p>';?> 17

Ce qui donne : Fonctions en PHP 18

II Interactions PHP/Javascript 19

Générer du Javascript en PHP PHP permet côté serveur de générer du code Javascript qui va être envoyé et interprété par le navigateur On peut donc FACILEMENT passer des valeurs de PHP vers Javascript (le contraire n'est pas possible de façon simple...) 20

Générer du Javascript en PHP - 1 On va changer la couleur d'un élément CSS grâce à PHP : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>formulaire Couleur</title> </head> <body> <form method="get" action="couleur.php"> Couleur du texte : #<input type="text" name="couleur" value="34e0b9" /> <input type="submit" value="valider" /> </form> </body> </html> 21

Générer du Javascript en PHP - 1 On va changer la couleur d'un élément CSS grâce à PHP : 22

Générer du Javascript en PHP - 1 On va changer la couleur d'un élément CSS grâce à PHP : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>couleurs avec PHP</title> </head> <body style="margin:0px;font-family:sans-serif;"> <p style="width:800px;height:600px; color:#<?php echo $_GET['couleur'];?>"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam pharetra congue consectetur. Nulla accumsan libero non libero blandit venenatis. Quisque libero ligula, tempus non lacinia id, pellentesque quis urna. [...] </p> </body> </html> 23

Générer du Javascript en PHP - 1 On va changer la couleur d'un élément CSS grâce à PHP : 24

Générer du Javascript en PHP - 1 On va changer la couleur d'un élément CSS grâce à PHP : 25

Générer du Javascript en PHP - 1 On va changer la couleur d'un élément CSS grâce à PHP : 26

Générer du Javascript en PHP - 1 On va changer la couleur d'un élément CSS grâce à PHP : 27

Générer du Javascript en PHP - 1 On va changer la couleur d'un élément CSS grâce à PHP : 28

Générer du Javascript en PHP - 2 On va changer le nombre d'éléments (carrés) générés en JS grâce à PHP : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>formulaire Carrés</title> </head> <body> <form method="get" action="carres.php"> Nombre de carrés : <input type="text" name="nbcarres" value="10" /> <input type="submit" value="valider" /> </form> </body> </html> 29

Générer du Javascript en PHP - 2 On va changer la couleur d'un élément CSS grâce à PHP : 30

<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>carrés en Javascript</title> </head> <body style="margin:0px;font-family:sans-serif;"> <p style="width:800px;height:600px;">lorem ipsum dolor sit amet, [ ] vehicula.</p> <canvas id="moncanvas" width="800px" height="600px" style="position:absolute;border:1px dashed #ddd;margin-left:auto;marginright:auto;top:0px;left:0px;">votre navigateur ne supporte pas canvas!</canvas> <script> var canvas = document.getelementbyid('moncanvas'); var ctx = canvas.getcontext('2d'); function alea(min,max) { return Math.round(Math.random()*(max-min)+min); } for (var i=0; i< <?php echo $_GET['nbCarres'];?>; i++) { ctx.beginpath(); ctx.fillstyle = 'rgba('+alea(0,255)+','+alea(0,255)+','+alea(0,255)+',0.33)'; x=alea(100,canvas.width-100);y=alea(100,canvas.height-100); larg=alea(20,100);haut=alea(20,100); ctx.fillrect(x,y,larg,haut); ctx.closepath(); } </script> </body></html> 31

Générer du Javascript en PHP - 2 On va changer la couleur d'un élément CSS grâce à PHP : 32

Générer du Javascript en PHP - 2 On va changer la couleur d'un élément CSS grâce à PHP : 33

Générer du Javascript en PHP - 2 On va changer la couleur d'un élément CSS grâce à PHP : 34

Générer du Javascript en PHP - 2 On va changer la couleur d'un élément CSS grâce à PHP : 35

Générer du Javascript en PHP - 2 On va changer la couleur d'un élément CSS grâce à PHP : 36

III Les erreurs PHP 37

Erreurs en PHP PHP est très sensible à la syntaxe des lignes de code Toute erreur empêche le programme PHP de fonctionner correctement Le problème est que les erreurs PHP sont souvent difficiles à corriger Les pages suivantes vont présenter quelques erreurs communes et la manière de les corriger! 38

1) Point-virgule L'erreur la plus fréquente est l'oubli d'un point-virgule à la fin d'une instruction : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p>'."\n" echo $texte;?> </body> </html> 39

1) Point-virgule On obtient une «parse error» : Attention, l'erreur est à la ligne 9 mais PHP indique l'erreur à la ligne 10!!! Règle n 4 : Quand PHP indique une erreur à la ligne N, il faut regarder la ligne N et la ligne N-1! 40

1) Point-virgule L'erreur la plus fréquente est l'oubli d'un point-virgule à la fin d'une instruction : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p>'."\n"; echo $texte;?> </body> </html> 41

1) Point-virgule Ca marche : 42

2) Ouverture PHP Si on oublie d'ouvrir PHP avec «<?php» : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> $texte = '<p>bonjour!</p>'."\n"; echo $texte;?> </body> </html> 43

2) Ouverture PHP Il n'y a pas d'erreur, mais le code PHP n'est pas interprété, il est affiché comme du texte HTML normal : 44

On remet «<?php» : 2) Ouverture PHP <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p>'."\n"; echo $texte;?> </body> </html> 45

Ca marche : 2) Ouverture PHP 46

3) Accolade non fermée Si on oublie une accolade fermante : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p>'."\n"; for ($i=0; $i<5; $i++) { echo $texte;?> </body> </html> 47

3) Accolade non fermée On obtient une erreur de syntaxe, le fichier n'est pas fermé, «unexpected end of file», c'est-à-dire «fin de fichier inattendue» : 48

On corrige : 3) Accolade non fermée <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p>'."\n"; for ($i=0; $i<5; $i++) { echo $texte; }?> </body> </html> 49

Ca marche : 3) Accolade non fermée 50

4) Accolade non ouverte Si on oublie une accolade ouvrante : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p>'."\n"; for ($i=0; $i<5; $i++) echo $texte; }?> </body> </html> 51

4) Accolade non ouverte On obtient une erreur de syntaxe, «unexpected '}'», c'est-à-dire «'}' inattendue» : En effet, l'accolade fermante ne correspond à aucune accolade ouvrante! 52

On corrige : 4) Accolade non ouverte <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p>'."\n"; for ($i=0; $i<5; $i++) { echo $texte; }?> </body> </html> 53

Ca marche : 4) Accolade non ouverte 54

5) Chaîne de caractères non fermée Si on oublie de fermer une chaîne de caractères : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p> ; echo $texte;?> </body> </html> 55

5) Chaîne de caractères non fermée On obtient une erreur de syntaxe, «unexpected ''», c'est-à-dire «'' inattendue» : 56

5) Chaîne de caractères non fermée On corrige : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p>'; echo $texte;?> </body> </html> 57

5) Chaîne de caractères non fermée Ca marche : 58

6) Chaîne de caractères mal collée Si on concatène (colle) mal une chaîne de caractères : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!'.</p>'; echo $texte;?> </body> </html> 59

6) Chaîne de caractères mal collée On obtient une erreur de syntaxe, «unexpected <», c'est-à-dire «< inattendue» : 60

6) Chaîne de caractères mal collée On corrige : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!'.'</p>'; echo $texte;?> </body> </html> 61

6) Chaîne de caractères mal collée Ca marche : 62

7) Trop d'accolades fermées Si on a trop d'accolades fermantes (plus que nécessaire), on obtient une erreur : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p>'."\n"; for ($i=0; $i<5; $i++) { echo $texte; } }?> </body> </html> 63

6) Chaîne de caractères mal collée On obtient une erreur de syntaxe, «unexpected '}'», c'est-à-dire «'}' inattendue» : PHP ne comprend pas pourquoi il y a une accolade fermante toute seule, sans accolade ouvrante... 64

6) Chaîne de caractères mal collée On corrige : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title>ma page</title> </head> <body> <?php $texte = '<p>bonjour!</p>'."\n"; for ($i=0; $i<5; $i++) { echo $texte; }?> </body> </html> 65

6) Chaîne de caractères mal collée Ca marche : 66

Avez-vous des questions? 67