40
Conception de Site Webs dynamiques Cours 5 Patrick Reuter [email protected]

Conception de Site Webs dynamiques Cours 5 Patrick Reuter [email protected]

Embed Size (px)

Citation preview

Page 1: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Conception de Site Webs dynamiques

Cours 5

Patrick Reuter

[email protected]

Page 2: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Conception de Site Webs Interactifs

Déroulement• Pages web statiques (HTML/XHTML)• Mise en forme avec feuilles de styles (CSS)• Programmation côté serveur

– Pages web dynamiques (PHP)– avec connexion à une base de données (MySQL)

• Programmation côté client– JavaScript

• Référencement Internet (moteur de recherche)

Page 3: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

HTML/XHTML : Hello World<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

<head>

<title>Votre titre</title> <meta http-equiv="Content-Type" content="text/HTML; charset=iso-8859-1" />

</head>

<body>

<p>Bonjour tout le monde!</p>

</body>

</html>

Page 4: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Format d’un document HTML

• Tout document HTML commence par la balise <html> et finit par la balise </html>

• Tout document HTML contient1. Un en-tête, délimité par les balises <head> et

</head>

2. Un corps, délimité par les balises <body> et </body>

<html><head><title>ma premiere page</title></head><body><h1>Ma Page</h1><p>ma premi&egrave;re page web</p> </body></html>

Page 5: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Conception de Site Webs Interactifs

Déroulement• Pages web statiques (HTML/XHTML)• Mise en forme avec feuilles de styles (CSS)• Programmation côté serveur

– Pages web dynamiques (PHP)– avec connexion à une base de données (MySQL)

• Programmation côté client– JavaScript

• Référencement Internet (moteur de recherche)

Page 6: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Priorités de CSSp {

color: #FF0000; /* rouge */

text-align: center;}

p.vert { color: #00FF00; /* vert */text-align: left;

}

p#mix { color: #0000FF; /* bleu */

}

<body>

<p>Enigme 1</p>

<p class="vert">Enigme 2</p>

<p class="vert" id="mix">Enigme 3</p>

<p id="mix">Enigme 4</p>

</body>

index.phpstyle.css

Page 7: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Conception de Site Webs Interactifs

Déroulement• Pages web statiques (HTML/XHTML)• Mise en forme avec feuilles de styles (CSS)• Programmation côté serveur

– Pages web dynamiques (PHP)– avec connexion à une base de données (MySQL)

• Programmation côté client– JavaScript

• Référencement Internet (moteur de recherche)

Page 8: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Qu'est-ce que le PHP ?

• PHP : Personal Home Pages / People Hate Perl / Hypertext PreProcessor

• PHP est un langage de programmation interprété côté serveur• Inventé par Rasmus LEDOORF (v1 : 1994, v2 : 1996, … v5 : 2004)• Il est dédié au Web : traitement des formulaires, communication

avec des bases de données (souvent couplé à MySql)

Avantages•Il est simple (pas typé, interprété, …)•Il est gratuit (?)•Il est fait pour le Web•Il est TRES répandu

Inconvénient•Code difficilement maintenable

Page 10: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

PHP et MySQL

Page 11: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

PHP

Page 12: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

http://fr2.php.net/manual/fr/

Page 13: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

<?php

echo "Hello World";

?>

Page 14: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Remarques

• Extension du fichier doit être .php

• Le navigateur ne comprend que l'HTML

• Le code "php" inclus dans la page HTML est transformé par le serveur php

• Le code "php" est invisible dans la page HTML affichée car il est interpreté

Page 15: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Un exemple pratique : Hello World<html> <head> <title>Ma premiere page</title> </head> <body> <h1>Hello World</h1> </body></html>

<html> <head> <title>Ma premiere page</title> </head> <body>

<?php echo "<h1>Hello World</h1>";?>

</body></html>

helloworld.htm

helloworld.php

Page 16: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Un exemple pratique : remarques

• Si on "éteint" le serveur web (EasyPHP)

• Si on met une extension .html au fichier php

Page 17: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Balise

Les scripts php étant destinés à être utilisés à l'intérieur de pages HTML, il faut une balise spéciale permettant au "parser / interpréteur" php de savoir à quel endroit se trouve le code.

Un code php est toujours compris entre les balise "<?" d'une part et "?>" d'autre part.

[...]<body> <?php echo "<h1>Hello World</h1>"; ?></body>[...]

Page 18: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Commentaires

•Comme en C ou en Java

•Tout ce qui se trouve dans un commentaire est ignoré par le serveur php

<?php

// commentaire de fin de ligne

/* commentaire sur plusieurs lignes */

?>

Page 19: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Ecrire dans le fichier HTML

echo "hello world";

Page 20: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

echo 'j\'utilise php'; // FAUX

echo "j'utilise php" ; // CORRECT

echo "j\'utilise php" ; // CORRECT

Page 21: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Concatenation 1

<?   

echo   "Salut"." Martin"; 

?> 

Page 22: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Variables

•php est interprété et faiblement typé.•Il n’est pas nécessaire de déclarer le type d'une variable.•Les identificateurs de variable sont précédés du symbole « $ » (dollar).

•Types : - entier (integer) - réel (double) - tableau (array) - objet (object) - booléen (boolean) - chaîne de caractères (string)

<body> <?php $toto = 5; echo $toto; ?></body>

Page 23: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Variables<?php

$a = 0;$nom = 'Horst';echo $a;

?>

<?php $a = 0; ?><?php $nom = 'Horst'; ?><?php echo $a; ?>

Page 24: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

echo '<input name="foo" value="hello">';

Page 25: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Concatenation 2

<? 

$nom = "Martin"; 

echo   "Salut ".$nom; 

?> 

Page 26: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Variables

•Portée

Limitée au bloc dans lequel elle a été crée.

Une variable créée dans un bloc n’est pas connue dans les autres.

Les variables de fonctions ne sont connues que dans la fonction.

•Opérateurs

Par ordre de priorité

– ++, --, !

– +, -, *, /, %

– ==, <, >, <=, >=, !=

– &&, ||, and, or

– =Priorité plus faible

Priorité plus forte

Page 27: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

ConditionPermet d’exécuter ou non un bloc d’instructions.

Rmq : la condition est une expression booléenne (l’évaluation de son résultat rend vrai ou faux)

if (condition1){

/* bloc d’instructions lorsque condition1 est vraie */

} else if (condition2) {

/* autre bloc d’instructions, lorsquecondition2 est vraie */

} else {

/* bloc d’instructions lorsque les conditions antécédentes sont fausses */

}

Page 28: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Condition SI..SINON<?php

$nombre = 512;

if ($nombre<500)        {    echo $nombre." est compris entre 0 et 499"; } else if($nombre>=500 && $nombre<1000)  {    echo $nombre." est compris entre 500 et 999"; } else                                  {    echo $nombre." est plus grand que 999"; }

?>

Page 29: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Boucle for

Permet d’exécuter plusieurs fois un bloc d’instructions donné (nombre d’itérations connu)

for (initialisation ; condition_pour_continuer ; modification){/* bloc d’instructions lorsque la condition d’arrêt n’est pas vérifiée */

}

/* typiquement : */for ($i=0; $i<10; $i++){

/* traitement */}

Page 30: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Boucle POUR

• <?php$nombre = 5;

for($i=0; $i < $nombre ; $i++) {     echo "i est égal à ".$i. "<br>"; }

echo "i est égal à ".$i; ?>

Page 31: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Boucle while

Permet d’exécuter plusieurs fois un bloc d’instructions donné (nombre d’itérations inconnu)

Rmq : la condition est une expression booléenne (l’évaluation de son résultat rend vrai ou faux)

- si vrai : le bloc d’instructions est exécuté

- si faux : la boucle n’est plus itérée, et l’exécution continue à la suite de la boucle

while (condition_pour_continuer) {

/* bloc d’instructions lorsque la condition est vérifiée */

}

Page 32: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Boucle TANT QUE

<?php$i = 1;while ($i<=5){echo "Ligne No. ";echo $i;echo "<br />";$i++; // $i = $i + 1;

}

?>

Page 33: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Boucle TANT QUE

<?php$i = 1;while ($i<=5){?> Salut<br><?$i++;

}?>

<?php

$i = 1;

while ($i<=5)

{

echo "Salut<br/>";

$i++;

}

?>

Page 34: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Passer des paramètres dynamiques

• Par l’URL : méthode $_GET

• Par des formulaires HTML aussi méthode $_POST

Page 35: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Méthode _GET

<?php

$a = $_GET['param'];

echo $a;

?>

URL : http://.../index.php?param=5

Page 36: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Méthode _GETURL : http://.../index.php?param1=5&param2=3

<?php

$a = $_GET['param1']; echo $a;

$b = $_GET['param2']; echo $b;

?>

URL : http://.../index.php?param1=5&param2=3

Page 37: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Fonction isset()

<?php

if isset($_GET['param1']) $param1 = $_GET['param1']; else { echo "Paramètre non donné"; $param1 = 1;

// valeur par défaut }?>

Page 38: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Boucle TANT QUE

<?php...$i = 1;while ($i<=$param1){echo "Ligne No. ";echo $i;echo "<br />";$i++; // $i = $i + 1;

}

?>

Page 39: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Formulaires HTML

<form action="resultat.php" method="post">

<input type="checkbox" name="box" value="1">

<input type="checkbox" name="box" value="2" checked>

<input type="submit" name="submitButtonName"value="-- Envoyer --">

</form>

Page 40: Conception de Site Webs dynamiques Cours 5 Patrick Reuter preuter@labri.fr

Remarques

• Extension du fichier doit être .php

• Le navigateur ne comprend que l'HTML

• Le code "php" inclus dans la page HTML est transformé par le serveur php

• Le code "php" est invisible dans la page HTML affichée car il est interpreté