Upload
ginette-joly
View
108
Download
2
Tags:
Embed Size (px)
Citation preview
CRÉATION DE PAGES WEB DYNAMIQUES
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)
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.
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".
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".
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
III- INSTALLATION DE EASYPHP
Lancer l'exécution de easyphp1-8_setup.exe.
Un dossier EasyPHP sera créé dans Program
Files.
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
• 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/
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."; ?>
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;
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’]
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) {………. ;}
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";}
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.
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;}
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 :
<?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
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);
<?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
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()
<?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
<?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
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
../..
../.. 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]." "; }} ../..
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
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