c rÉation de p ages w eb d ynamiques pro : mehdi rjiba a.s: 2007/2008

27
CRÉATION DE PAGES WEB DYNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

Upload: ginette-joly

Post on 03-Apr-2015

108 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

CRÉATION DE PAGES WEB DYNAMIQUES

Pro : Mehdi Rjiba A.S: 2007/2008

Page 2: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

SOMMAIRE

Introduction

Comparatif PHP / JavaScript

Installation d’ EasyPHP

Syntaxe de base du langage PHP

Les structures de données

Les structures de contrôle

Les fichiers et les répertoires

Communication entre page Web et un script PHP

PHP et MySQL

Quelques fonctions PHP (voir Annexes)

Page 3: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

I- INTRODUCTION

1- Qu'est-ce qu’une page web dynamique ? :

Une page web dynamique est une page web qui est

générer et modifier en fonction de la demande d’un

utilisateur.

Exemple : les sites des news, de commerce électronique,…

2- Qu'est-ce que PHP ? :

PHP est un langage de scripts et non un langage de

programmation, car il est conçu pour faire un traitement

à la suite d’un événement ou lorsqu'un utilisateur soumet

un formulaire à un serveur Web. Les scripts PHP sont

insérer dans le code HTML.

Page 4: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

II- DIFFÉRENCE ENTRE HTML ET PHP : La différence entre le HTML et le PHP réside dans la relation client- serveur .

Client : Tous les visiteurs d'un site web sont des clients.

Serveur : Le serveur, est un gros ordinateur tout le temps connecté à Internet. Il

contient votre site web sur son disque dur, et dès qu'un client demande à voir une

page web, il la lui envoie.

Avec HTML :

Il y a 2 étapes :

Le client (c'est vous, le visiteur) demande à voir une page web. Il va donc faire une

demande au serveur : "S'il te plaît, envoie-moi la page vacances.html".

Le serveur lui répond en lui envoyant la page vacances.html : "Tiens, voici la page

que tu m'as demandée".

Page 5: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

Avec HTML :

Le client demande à voir une page PHP. Pour lui il n'y a aucune

différence. Il demande la page au serveur, toujours aussi poliment : "S'il te

plaît, envoie-moi la page vacances.php".

Mais là, il y a une étape très importante, qui fait toute la différence

en PHP. Le serveur n'envoie pas de suite la page au client. Il la génère. En

effet, le client n'est pas capable de lire une page PHP (seul le serveur sait faire

ça). Le client ne peut lire que des pages HTML.

Ce que fait le serveur est simple : il va transformer la page PHP en

page HTML, pour que le client puisse la lire.

Enfin, une fois que la page est générée, elle ne contient plus que du

code HTML. Le serveur peut l'envoyer au client : "Tiens, voici la page que tu as

demandée".

Page 6: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

Seul le serveur peut lire le PHP. Le client (c'est-à-dire vous), ne peut pas lire le

PHP.

Comment on pourra vérifier si notre travail en PHP fonctionne ?

Il va donc falloir trouver un moyen pour "apprendre" le PHP à votre ordinateur.

Vous pourrez alors travailler dessus pour réaliser votre site en PHP.

D’où on a besoin d’un utilitaire (easyphp) contenant une gamme de programmes

permettant de créer des pages web dynamiques et de les tester que ce soit du

côté client ou serveur.Ces programmes sont :

Apache : c'est le programme qu'utilisent les serveurs. Il permet au serveur de

distribuer des pages web... mais il ne connaît que le HTML !

PHP : PHP est comme un "plugin" de Apache. Il a besoin d'Apache pour

fonctionner, et grâce à lui Apache saura travailler sur des pages PHP. En clair,

Apache + PHP = un serveur PHP

MySQL : permet d'utiliser des bases de données.

phpMyAdmin : cela vous permettra de gérer vos bases de données

Page 7: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

III- INSTALLATION DE EASYPHP

Lancer l'exécution de easyphp1-8_setup.exe.

Un dossier EasyPHP sera créé dans Program

Files.

Page 8: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

Au démarrage d'EasyPHP, une icône apparaît à côté de l'heure.

Pour automatiser le lancement au démarrage de Windows, double-cliquez sur

l'icône de la barre des taches (ou lancez d'abord EasyPHP) et activez l'option

"Démarrer EasyPHP en même temps que Windows" puis appliquez avant de

fermer la boîte :

Configurer le navigateur afin de

« ne pas utiliser le Proxy pour les

adresses locales »

test.php

Page 9: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

• Pour vérifier le fonctionnement, relancez Windows.

• A l'aide d'un éditeur de texte (ConTEXT) tapez la ligne :

<? php phpinfo(); ?>

• Enregistrez dans le dossier EasyPHP\www sous le nom test.php ;

• Lancez un navigateur ;

• Tapez l'adresse : http://localhost/test.php

Ainsi, vous pourrez naviguer dans ce répertoire à partir d’un navigateur en

tapant http://localhost/ ou http://127.0.0.1/ ou même http://nomposte/

Page 10: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

IV-SYNTAXE DE BASE DU LANGAGE PHP

Activité 2 page 122.

Pour que le script PHP soit interpréter par le serveur on a :

L’extension du fichier contenant le code PHP est « .php »

Un script php doit être délimiter par <? ?>

Le fichier php pour être exécuter doit être sauvegarder dans le dossier

«c:/program files/easyphp/www »

L’affichage d’un message en php se fait par la fonction echo (‘message’) ou

print (‘message’)

On peut afficher un message en utilisant des balises html

Pour insérer un commentaire :

Sur une seule ligne // commentaire

Sur plusieurs lignes /* */

Pour afficher un guillemet on le précède par un back slash \

<?php echo "Celle-ci a été écrite \"uniquement\"

en PHP."; ?>

Page 11: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

V- LES STRUCTURES DE DONNÉES EN PHP1- les constantes : Une constante est définit par la fonction define avec la syntaxe:

define (‘nom cste’ , ‘valeur cste’); L’opérateur de concaténation des contenus des objets est le « . »

activité 3 page 123.

2 – les variables : La déclaration d’une variable se fait avec la syntaxe :

$nom_variable = valeur_variable; Une variable peut être de type texte, nombre, booléen. Pour afficher la valeur d’une variable echo ($nom_variable)

Fonction de conversion de type Settype($nom_variable, type); : affecte un type à une variable; elle renvoie

TRUE si la conversion est réussite sinon FALSE. En précédent une variable à convertir par les clauses (type)

Exemple :

$var = 15.6;

$var =(int) $var;

Page 12: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

Fonctions de manipulation de variables Gettype($nom_variable); : renvoie le type d’une variable Isset ($nomvariable); : retourne TRUE si la variable posséde une valeur sinon

FALSE. On peut connaitre le type d’une variable avec l’utilisation des fonctions

booléennes

Is_long(),is_double(),is_string(),is_array(),is_object();

3 – les opérateurs: voir tableau page 125, 126

4 – les entrées/sorties:

Pour récupérer les informations saisies à travers des objets de formulaires $_get[‘nomobjet’] ou $_post[‘nomobjet’]

Page 13: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

VI- LES STRUCTURES DE CONTRÔLE EN PHP

1- les structures de contrôle conditionnelles : If(condition) {expression vrai} else {expression faux} Switch(expression)

{ case res1 : traitement1; break;

…………………………….

Case res n : traitement n ; break;

Default :

}

1- les structures de contrôle itératives : While(cdt) { …………..;} Do {……………..;} while(cdt); For(expr1;expr2;expr3) {………. ;}

Page 14: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

LES CONDITIONS

La structure if =>if ($temps=="ensoléillé")

{echo 'il fait beau'; }

else{echo 'il ne fait pas beau';}

Il est possible d'enchaîner plusieurs structures If sans avoir à les imbriquer, à l'aide de elseif

if ($nombre > 1){

  echo "\$nombre est supérieur à 1";} elseif ($nombre < 1) { echo "\$nombre est inférieur à 1";} else { echo "\$nombre est égal à 1";}

Page 15: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

L'opérateur ternaire =>

echo ($nombre == 1) ? "\$nombre est égal à 1" : "\$nombre n'est pas égal à 1";

La condition doit obligatoirement se trouver entre parenthèses. Si la condition est vérifiée, la valeur de gauche est retournée, sinon, c'est celle de droite.

Page 16: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

L'instruction switch =>

switch ($nombre)

{ case 1: echo "\$nombre est égal à 1";

break;

case 2: echo "\$nombre est égal à 2";

break;

case 3: echo "\$nombre est égal à 3";

break;

default: echo "\$nombre est inférieur à 1 ou supérieur à 3";

break;}

Page 17: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

LES BOUCLES

La structure for =>

for (compteur; condition; compteur)

{

liste d'instructions

}

for ( $i = 1; $i <= 10 ; $i++ )

{

echo "$i ";

}

Syntaxe :

Exemple :

La structure while=>while (condition){

liste d'instructions

}

$i = 1;

while ( $i <= 10 )

{ echo "$i "; $i++;}

Syntaxe :

Exemple :

Page 18: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

<?php

function pgcd($a, $b)

{ if ($a < $b)

list ($a, $b) = array ($b, $a); //Permutation

do

{ $r = $a % $b;

if ($r == 0) return $b ; $a = $b; $b = $r; } while ($r > 0);

}

$n1 = 98; $n2 = 70; $pgcd = pgcd($n1, $n2); echo "Le PGCD de $n1 et $n2 est $pgcd<hr>";?>

do{ liste d'instructions

} while ( condition);

Syntaxe :

Exemple : PGCD

La structure do…while =>

pgcd.php

Page 19: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

V- LES TYPES DE DONNÉES STRUCTURÉS :

1- les Tableaux :Il existe deux types de tableaux :

Tableaux a indices de type entier (indice du premier élément est 0) Tableaux associatifs à indices de type chaîneRemarque : En PHP il ya une possibilité de stocker dans un tableau des éléments de

types différentsInitialisation d’un tableau :

En affectant une valeur à une variable (case du tableau) [ exemple : $tab[0] = ‘b’;]

En utilisant la fonction array array(clé => valeur, clé => valeur,…) clé est soit un entier ou une chaîne. : [ exemple : $tab = array (‘p’,2) ; ]

Parcours d’un tableau : Tableau possède un pointeur interne qui conserve l’indice et la valeur de

l’élément actif. On peut déterminer la valeur de l’élément actif à l’aide de la fonction

current($nom_tableau); On peut déterminer l’indice de l’élément actif à l’aide de la fonction

key($nom_tableau);

Page 20: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

<?php

$ar=array(5=>12,14=>3);

$ar[]=-6; //revient à assigner –6 à l'élément 15

$ar["e"]=23; //revient à assigner 23 à l'élément "e"

unset($ar[5]); //efface l'élément 5

unset($ar); //efface tout le tableau

?>

On peut connaître la taille d'un tableau à l'aide de la fonction count() ou sizeof()

$x=array(3=>"r",6=>5);Count($x); //vaudra 2

Page 21: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

Action Déplacement du pointeurreset() Recale le pointeur au début du tableau et renvoie le 1er élément du tableau

end() Recale le pointeur à la fin du tableau et renvoie le dernier élément du tableau

current() ou pos() Renvoie l'élément courant du tableau

next() Fait avancer le pointeur courant de façon qu'il pointe l'élément suivant dont elle renvoie la valeur

prev() Fait reculer le pointeur courant de façon qu'il pointe l'élément précédent dont elle renvoie la valeur

key() Renvoie l'indic de l'élément courant du tableau

each() Extrait l'élément courant et fait avancer le pointeur d'une unité

list($indice,$valeur) Associée à each(), elle affecte indice et valeur de l'élément courant à 2 variables qcq

foreach() Permet de traiter tout un tableau sans avoir recours au structures itératives. Elle renvoie l'indice et la valeur de l'éléments courant et avance d'un cran

Tri d’un tableau : On peut trier un tableau en utilisant les fonctions sort() et rsort() pour tri croissant et décroissant.Comme on peut le trier par indice en utilisant de la même manière les fonctions ksort() et krsort()

Page 22: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

<?php $vente_hebdo = array("lundi"=>1742,"mardi"=>1562,"mercredi"=>1920,"jeudi"=>1239,"vendredi"=>2012,"samedi"=>720) ; $vente_totale = 0; reset($vente_hebdo); while (list($key, $value) =each($vente_hebdo)) { echo "<BR> Vente de $key : $value unités\n"; $vente_totale += $value; } echo "<BR>Vente sur la semaine : $vente_totale unités\n";

?>

Exemple : parcourir un tableau

balayer_tab02.php

Page 23: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

<?php// recuperation de l'adresse ip$ip =getenv("REMOTE_ADDR");echo $ip;// inversion$array = explode(".",$ip);//explose une chaîne selon le séparateur indiquéend($array); // on se place à la finwhile (key($array)!=0) // tant qu'on est pas arrivé au début{$iip = $iip.pos($array)."."; // mise à jour de la variableprev($array); // on revient en arrière d'un élément}$iip = $iip.pos($array); echo"<hr>$iip"; // premier élément?>

Exemple : Afficher une adresse IP dans un ordre inverse

ip_inverse.php

Page 24: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

Tableau à 2 dimensions :

<?php

$livres =

array ("informatique" =>

array("PHP", "Java", "Internet", "Architecture"),

"dictionnaires" =>

array("Médical", "Automobiles"),

"cuisine" =>

array("tunisienne", "française", "asiatique")

);

Exemple :deuxdim.phpdéclaration

../..

Page 25: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

../.. Manipulation

echo "<b>Contenu du tableau \$livres :</b><br>";

while (list($k, $v) = each($livres)){ echo "<br>$k => "; while (list($kk, $vv) = each($v)) { echo "$vv "; }} echo "<br>";reset($livres);

for ($i=0; $i<count($livres); $i++){ list($k,$v) = each($livres); echo "<br>$k => "; for ($j=0; $j<count($v); $j++) { echo $livres[$k][$j]." "; }} ../..

Page 26: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

echo "<p>";

reset($livres);

for ($i=0; $i<count($livres); $i++)

{ list($k,$v) = each($livres);

echo "Le tableau \"$k\" a ".count($v)." éléments<br>";

}?>

../..

Contenu du tableau $livres :

informatique => PHP Java Internet Architecture dictionnaires => Médical Automobiles cuisine => tunisienne française asiatique

informatique => PHP Java Internet Architecture dictionnaires => Médical Automobiles cuisine => tunisienne française asiatique

Le tableau "informatique" a 4 élémentsLe tableau "dictionnaires" a 2 élémentsLe tableau "cuisine" a 3 éléments

Page 27: C RÉATION DE P AGES W EB D YNAMIQUES Pro : Mehdi Rjiba A.S: 2007/2008

2- les chaines de caractères :Les fonctions sur les chaines de caractères :

string substr (string source, int debut, int[taille]) : renvoie une portion d’une chaine, a partir du début et d’une largeur(taille) ; si taille < 0 : en renvoie une chaine qui se termine à cette distance de la fin de la chaine source.

String trim (string chaine) : fonction qui supprime les espace blancs de début et de fin de chaine

Int strlen ( string chaine) : retourne la longueur d’une chaine String implode (string seperateur, array tableau): retourne une chaine

constitué par tous les éléments d’un tableau , dans l’ordre, concaténer et séparés par un séparateur spécifier.

Array explode(string seperateur, string chaine) : retourne un tableau contenant les éléments de la chaine séparés par un séparateur indiqué.

String str_replace ( modèle , remplacement, chaine) : remplace toutes les occurrence de modèle par remplacement dans une chaine donnée