SOMMAIRE
• Introduction
• Notions de base
• Tableaux
• Gestion des formulaires
• Les sessions
• Utilisations des bases de données
H. Mouncif@FPBM, Technologie Web Dynamique 1
Comment ça fonctionne sans PHP
public/www
2
Serveur http
client 3
index.html
support
Le répertoire
H. Mouncif@FPBM, Technologie 2
Web Dynamique
Comment ça fonctionne avec PHP/MySQL
1 SGBD
MySQL
public/www
client
4
fichier.php
2
Serveur http
3
Module PHP
Génération Fichier_bis.php
du code html
H. Mouncif@FPBM, Technologie 3
Web Dynamique
Serveur http
• Il existe différents serveurs http
– Apache
• <http://httpd.apache.org>
– IIS
• <www.microsoft.com>
– Information sur le protocole http
• <www.w3.org/Protocols/>
• Echange d’information entre serveur et clients
– Pour echanger des informations entre le serveur et, les clients on
utilise le protocole HTTP (ensemble de règles de codes).
– Nestcape Navigator, Microsoft Internet Explorer, lynx, iCab, …
H. Mouncif@FPBM, Technologie 4
Web Dynamique
Introduction
PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme
les scripts CGI, ASP, ...) et non du côté client (un script écrit en Javascript ou une applet
Java s'exécute sur votre ordinateur...). La syntaxe du langage provient de celles du
langage C, du Perl et de Java. Ses principaux atouts sont:
Une grande communauté de développeurs partageant des centaines de milliers
d'exemples de script PHP
La gratuité et la disponibilité du code source (PHP est distribué sous licence GNU GPL)
La simplicité d'écriture de scripts
La possibilité d'inclure le script PHP au sein d'une page HTML (contrairement aux
scripts CGi, pour lesquels il faut écrire des lignes de code pour afficher chaque ligne en
langage HTML)
La simplicité d'interfaçage avec des bases de données (de nombreux SGBD sont
supportés, mais le plus utilisé avec ce langage est MySQL, un SGBD gratuit disponible sur
de nombreuses plateformes : Unix, Linux, Windows, MacOs X, Solaris, etc...)
L'intégration au sein de nombreux serveurs web (Apache, Microsoft IIS, etc.).
H. Mouncif@FPBM, Technologie 5
Web Dynamique
H. Mouncif, Dep. Info. FSAC 2005 Notes de cours : Technologies du web
Serveur Web locale
Pourquoi WampServer?
Seul un serveur web peut générer le PHP. Le client ne
peut pas interpréter les scripts PHP.
Il va donc falloir trouver un moyen pour compiler les
scripts PHP localement. Vous pourrez alors travailler
dessus pour réaliser votre site en PHP.
WampServer est en fait un "package" qui contient tous les
programmes nécessaires pour pouvoir traiter du PHP !
Le site web de EasyPHP est : www.wampserver.com
H. Mouncif@FPBM, Technologie 6
Web Dynamique
Serveur Web locale: EasyPHP
voici les programmes qu'installe wampserver :
• 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 : c'est un SGBD(OPEN) pour la gestions des bases de données.
• PHPmyAdmin : Interface utilisateur qui permette de faciliter la
gestion des bases de données.
H. Mouncif@FPBM, Technologie 7
Web Dynamique
Wampserver
H. Mouncif@FPBM, Technologie 8
Web Dynamique
Syntaxe de base
Les instructions PHP peuvent être insérées dans les commandes HTML, ce
qui facilite le développement des sites web dynamiques. Lorsque PHP
commence à traiter un fichier, il ne fait qu'afficher le texte HTML qu'il
rencontre. Un fichier, qu’il soit « .html » ou « .php », fonctionnera
exactement de la même façon. Si on veut insérer des commandes PHP dans
un fichier, il faut indiquer à PHP le début d'une telle séquence, en passant
en mode PHP comme tel :
<?php /* Instructions PHP */ ?>
Ou
<? /* Instructions PHP */ ?> (short_open_tag = on)
Autres syntaxes d’intégration :
<script language= "php" >……< /script>
Ou
<%..... %> (asp_tags = on)
Tout ce qui se trouve entre ces balaises sera considéré par le serveur Web
comme étant des commandes PHP.
H. Mouncif@FPBM, Technologie 9
Web Dynamique
Syntaxe de base
Le code de base Affichage du texte
PHP Code Source 1: Affichage du texte
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Notre première instruction : echo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-
8859-1" />
</head>
<body>
<h2>Affichage de texte avec PHP</h2>
<p>
Cette ligne a été écrite entièrement en (x)HTML.<br />
<?php
echo ‘Hello world';
print"Hello world";
echo("Hello PHP");
print("Bienvenue sur ma page PHP");
?>
</p>
</body> H. Mouncif@FPBM, Technologie 10
</html> Web Dynamique
Syntaxe de base
La fonction echo
La fonction echo est la fonction de base de toute page PHP. Elle permet
d’afficher une ou plusieurs chaînes et donc d’inclure du texte dans la page
HTML envoyée au navigateur.
<?php
echo "Bonjour tout le monde";
echo "<br/>";
echo "Bienvenue au cous de PHP";
?>
H. Mouncif@FPBM, Technologie 11
Web Dynamique
Les commentaires
Plusieurs manières de définir des zones de commentaires :
/*forme de commentaires 1 */
Attention pas d’imbrication
Comme en langage C
# formme de commentaires 2
Ce type de commentaire à la Unix est très peux utilisé
// forme de commentaires 3
Comme en langage C++
H. Mouncif@FPBM, Technologie 12
Web Dynamique
Constantes
Définition
• La fonction define permet de définir une constante. Une constante
est une zone mémoire identifié par un nom qui contient une valeur
lisible mais non modifiable.
<?php
define("TAXE",17.25);
echo TAXE; // affiche ‘Foobar’
define("MY_YEAR",1980);
echo MY_YEAR; // affiche 1980
?>
H. Mouncif@FPBM, Technologie 13
Web Dynamique
Variables
Le typage des variables est implicite en PHP. Il n’y a donc pas besoin de
les déclarer ni même de les initialiser avant leur utilisation, toutefois, les
noms de variables doivent répondre à certaines règles syntaxiques:
Tout nom de variable doit obligatoirement être précédé du caractère
dollar ($).
Tout nom de variable doit commencer par une lettre (majuscule ou
minuscule) ou un "_", mais jamais un chiffre.
Un nom de variable peut comporter des lettres, des chiffres et le
caractère _ (les espaces ne sont pas autorisés).
Les noms de variables sont sensibles à la casse.
On affecte des valeurs aux variables à l’aide du signe égale (=)
En PHP3 les variables sont assignées uniquement par valeurs
En PHP4 les variables peuvent être assignées par références
Elles deviennent un alias
H. Mouncif@FPBM, Technologie 14
Web Dynamique
Variables
Exemples de variables :
<?php
$a = 100;
echo $a, "<br/>";
$b = 17.25;
echo $b, "<br/>";
$c = true;
echo $c, "<br/>";
$str 1 = "nouvelles technologies";
echo $str1, "<br/>";
$str2 = 'commerce électronique';
echo $str2, "<br/>"; H. Mouncif@FPBM, Technologie 15
?> Web Dynamique
Les chaînes de caractères
<?php
$nom = 'kamili';
$prenom = 'Ahmed';
echo $nom.$prenom.'<br/>';
$A = 'Informatique';
$Filiere = $A . ' de Gestion';
echo $Filiere.’<br/>’;
$out = 'Nouvelle Technologie';
$out .= 'de l\’Information‘;
echo $out;
?>
H. Mouncif@FPBM, Technologie 16
Web Dynamique
Les opérateurs arithmétiques
Avec PHP on peut utiliser les différents opérateurs arithmétiques comme dans
les exemples suivants :
Exemple Nom Résultat
$a + $b Addition Somme de $a et $b.
$a − $b Soustraction Différence de $a et $b.
$a * $b Multiplication Produit de $a et $b.
$a / $b Division Quotient de $a et $b.
$a % $b Modulo Reste de $a divisé par $b.
L'opérateur de division ("/") retourne une valeur entière (le résultat d'une
division entière) si les deux opérandes sont entiers (ou bien des chaînes
converties en entier. Si l'un des opérandes est un nombre à virgule flottante, ou
bien le résultat d'une opération qui retourne une valeur non entière, un nombre
à virgule flottante sera retourné.
H. Mouncif@FPBM, Technologie 17
Web Dynamique
Les opérateurs d’assignation
L'opérateur d'assignation est le signe "=". Il signifie que l'opérande de gauche se voit
affecter la valeur de l'expression qui est à droite du signe égal. En plus, il existe des
"opérateurs combinés" pour tous les opérateurs arithmétiques et pour les opérateurs
sur les chaînes de caractères. Cela permet d'utiliser la valeur d'une variable dans
une expression et d'affecter le résultat de cette expression à cette variable. Par
exemple:
<?php
$a = 3;
$a += 5; // affecte la valeur 8 à la variable $a.
// correspond à l'instruction '$a = $a + 5');
$b = "Bonjour";
$b .= "tout le monde!"; // affecte la valeur "Bonjour tout le
//monde!" à la variable $b
// identique à $b = $b." tout le monde!";
?>
H. Mouncif@FPBM, Technologie 18
Web Dynamique
Les opérateurs de comparaison
Les opérateurs de comparaison, comme leur nom l'indique, vous permettent de
comparer deux valeurs.
Exemple Nom Résultat
$a == $b Égal Vrai si $a est égal à $b.
$a != $b Différent Vrai si $a est différent de $b.
$a < $b inférieur Vrai si $a est inférieur strict à $b.
$a > $b grand Vrai si $a grand strict à $b.
$a <= $b Inf ou égal Vrai si $a est inf ou égal à $b.
$a >= $b Sup ou égal Vrai si $a est sup ou égal à $b.
H. Mouncif@FPBM, Technologie 19
Web Dynamique
Les structures de contrôles
if, else, elseif
switch, case, default
For
While
do…while
foreach(PHP4)
break, continue
H. Mouncif@FPBM, Technologie 20
Web Dynamique
Les structures de contrôles
If else elseif
Syntaxe:
If(expression)
{
bloc;
}
Elseif(expression 2)
{
bloc2;
}
………..
else
{
dernier block
}
H. Mouncif@FPBM, Technologie 21
Web Dynamique
Les tableaux
Les tableaux
Les tableau (array) représentent la structure de données la plus importante du
langage PHP
Les tableaux sont en PHP d’une seule dimension
La seule manière de construire des tableaux multidimensionnel est d’utiliser
des tableaux de pointeurs.
L’indexation d’un tableau commence toujours à l’indice 0 (zéro)
Deux types d’indexation:
indexage numérique
indexage associatif
H. Mouncif@FPBM, Technologie 22
Web Dynamique
Les tableaux
Indexation numérique
Indexation explicite
• $couleur[0] = "blanc", $couleur[1] = "bleu", $couleur[2] = "rouge";
Indexation automatique
• $couleur[] = "blanc", $couleur[] = "bleu", $couleur[] = "rouge";
Avec array sans indice
• $couleur = array("blanc", "bleu", "rouge");
Avec array + indice
• $couleur = array(5=>"blanc", "bleu", "rouge");
Indexation associative
$personne = array("nom" =>"LeMouel", "prenom"=>"Yann",
"age"=>30);
$couleur = array(1=>"blanc", 3=>"bleu", 5=>"rouge");
H. Mouncif@FPBM, Technologie 23
Web Dynamique
Les tableaux
<?php
$couleur[] = "blanc"; $couleur[] = "bleu"; $couleur[] = "rouge";
echo "$couleur[2]";
$couleur2 = array("blanc", "bleu", "rouge");
echo "<br /> $couleur2[2]";
$couleur3 = array(5=> "blanc", "bleu", "rouge");
echo "<br /> $couleur3[6]";
$personne = array("nom"=> "LeMouel", "prenom"=> "Yann", "age"=> 30);
echo "<br />$personne[prenom]";
$couleur4 = array(1=> "blanc", 3=> "bleu", 5=> "rouge");
echo "<br />$couleur4[5]";
?>
H. Mouncif@FPBM, Technologie 24
Web Dynamique
Les tableaux
Parcours d’un tableau : for
<?php
$couleur[] = "blanc"; $couleur[] = "bleu"; $couleur[] = "rouge";
for($index=0; $index < count($couleur); $index++)
{
echo $couleur[$index]."<br/>";
}
//count fonction qui renvoi la taille d’un tableau
?>
H. Mouncif@FPBM, Technologie 25
Web Dynamique
Les tableaux
La structure de parcours de tableau foreach
La forme foreach reste la plus adaptée pour passer en revue les éléments d’un
tableau. Il y a deux syntaxes possibles :
Première syntaxe :
<?php
foreach($tableau as $value)
instructions;
?>
A chaque itération de la boucle, $valeur contient la valeur de l’élément du
tableau $tableau. Cette syntaxe permet de parcourir le tableau de début à la fin.
Deuxième syntaxe :
<?php
foreach($tableau as $clé=>$value)
instructions;
?>
la clé courante est stockée dans la variable $clé et la valeur dans la variable dans
$valeur.
H. Mouncif@FPBM, Technologie 26
Web Dynamique
Les tableaux
Exemple d’utilisation de la structure foreach
<?php
$tab=array("zéro", "un", "deux", "zéro"=>0, "un"=>1, "deux"=>2);
echo "Première syntaxe :<br />";
foreach($tab as $nombre)
{
echo " $nombre <br /> ";
}
echo "deuxième syntaxe :<br />";
foreach($tab as $cle=>$nombre)
{
echo " $clé=>$nombre <br /> ";
}
?>
H. Mouncif@FPBM, Technologie 27
Web Dynamique
Fonctions
1 Introduction
PHP offre la possibilité de définir des fonctions avec tous les avantages
associés.
Les fonctions en PHP peuvent prendre des arguments sans spécifier leurs
types.
Elles peuvent de façon optionnelle retourner une valeur.
2 Déclaration et appel
Le mot clé function permet d’introduire la définition d’une fonction
qui peut être définie selon la syntaxe suivante :
<?php
function nom_function($paramètre0, $paramètre1, $paramètre2, …)
{
instructions ;
}
?>
nom_function doit respecter les règles des noms de variable
H. Mouncif@FPBM, Technologie 28
Web Dynamique
Fonctions
Exemple:
<?php
// fonction avec 2 paramètres retourne la somme des deux paramètres
function Somme($a, $b) {
return $a+$b;
}
$res = Somme(10, 11); echo "$res= " , $res;
// fonction avec un tableau comme paramètre
function takes_array($input) {
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
//fonction sans paramètre qui affiche “Ceci est un exemple“
function Afficher_message(){
echo "ceci est un message <br />";
}
Afficher_message();
?> H. Mouncif@FPBM, Technologie 29
Web Dynamique
Formulaires
1 Introduction
Les formulaires servent essentiellement pour la gestion interactive d’un
site.
Les formulaires sont à la base des pages web dynamiques.
2 Mise en œuvre d’un formulaire
Un formulaire XHTML est défini entre les balises <form> et </from>
Exemple:
<form method="post" action="traitement.php">
<p>Texte à l'intérieur du formulaire</p>
</form>
action : le script qui va traiter le formulaire.
method : Mode de transmission vers le serveur des informations
saisies dans le formulaire.
Get : les données du formulaire sont transmises dans l’URL.
Post : les données du formulaire sont transmises dans le corps de la
requête.
H. Mouncif@FPBM, Technologie 30
Web Dynamique
Formulaires
Exemple : Transmettre en utilisant un formulaire
form.html
<form action="cible.php" method="post">
<label>Entrer votre nom:
<input type="text" name="prenom" /> <input type="submit" value="Valider"
/>
</label></form>
cible.php
<p>Bonjour !</p>
<p>Je sais comment tu t'appelles. Tu t'appelles <?php echo
$_POST['prenom']; ?> !</p>
<p>Si tu veux changer de prénom, <a href="form.php">clique ici</a> pour
revenir à form.php</p>
H. Mouncif@FPBM, Technologie 31
Web Dynamique
Formulaires
traitement.php
<?php
function factoriel($n){
if($n==0) return 1 ;
else return $n*(factoriel($n-1));
}
$var=$_POST['nombre'];
print("factoriel($var)=");
print(factoriel($var));
?>
H. Mouncif@FPBM, Technologie 32
Web Dynamique