Académique Documents
Professionnel Documents
Culture Documents
Le LANGAGE
PHP
1
PARTIE 1:
Généralités
2
RAPPEL
Les SGBD (Systèmes de Gestion de Bases de Données) permettent
d’organiser le stockage d’informations.
Le langage SQL (Structured Query Language) permet d’interroger les bases de
données relationnelles :
requête
réponse
appel de la page
Base de Script
données extraction Document
de données PHP exécution
MySQL Html
4
LE LANGAGE PHP
1994 Rasmus Lerdorf
pour les besoins des pages web personnelles signifiait Personal
Home Page
Avantages de PHP:
Fichier bonjour.php
7
LES COMMENTAIRES
Un script php se commente comme en C :
Exemple 3:
<?php
/* commentaire sur
plusieurs lignes */
?>
$annee = 1980;
$nom = “Mohamed“; \n : retour à la ligne
?>
<?php
Une variable peut prendre n’importe
$valeur = 1;
quelle valeur (entier, réel, chaîne, tableau)
$valeur = “Bonjour“; 9
?>
LES VARIABLES
$Intvar
$_Salesamt
10
LES VARIABLES
Entier
Booléen
À virgule flottante
Les types de données composés sont obtenus en regroupant plusieurs types
de données scalaires sous un même nom. Ils sont utilisés pour stocker et
11
manipuler des données appartenant à différents types de données.
LES VARIABLES
La catégorie des types de données composés regroupe les types de données
suivants:
Tableau
Objet
Entier: une variable entière peut seulement contenir des nombres positifs ou
négatifs
Chaine: une variable de type chaîne est utilisée pour stocker une suite de
caractères. En PHP, aucune restriction ne vient limiter la longueur d’une chaîne.
Booléen: une variable de type booléen contient soit la valeur True ou False. On
peut faire référence à une valeur booléenne en employant une valeur numérique en
représentant True par 1 et False par 0.
Virgule flottante: les variable de type virgule flottante peuvent uniquement
contenir des nombres décimaux.
12
LES VARIABLES
Tableau: un tableau est employé pour stocker plusieurs valeurs appartenant au
même type de données. On peut définir la longueur d’un tableau lors de sa
déclaration ou encore au moment de l’exécution.
13
LES CONSTANTES
La valeur d'une constante est fixée une fois pour toute. Les constantes ne portent
pas le symbole $ (dollars) en début d’identificateur et ne sont pas modifiables.
Exemple 4 :
define("author","Mohamed");
echo author; // affiche ‘Mohamed’
Exemple 5 :
define(MY_YEAR,1980);
echo MY_YEAR; // affiche 1980
Opérateurs arithmétiques
Les opérateurs arithmétiques s’appliquent sur une ou deux opérandes de
types Number.
Opérateurs de comparaison
Les opérateurs de comparaison s’appliquent à différents types de données
et renvoient un booléen en fonction du résultat de la comparaison.
o Opérateurs logique
Ces opérateurs s’appliquent à des booléens et permettent d’évaluer des
expressions logiques.
15
LES OPÉRATEURS PHP
Modulo % Affectation =
16
LES OPÉRATEURS PHP
Tab 4. Opérateurs de comparaison
Egal à ==
Identique à ===
Différent de !=
Inférieur, supérieur <;>
Inférieur ou égal, <= ; >=
supérieur ou égal
18
LES CHAÎNES DE CARACTÈRES
(1)
Une variable chaîne de caractères n’est pas limitée en nombre de caractères.
Elle est toujours délimitée par des simples quotes ou des doubles quotes.
Exemple 6:
$nom ="Mohamed";
$prenom = ‘Salah';
$myvar1=« some »;
$myvar1.=« thing »;
echo $myvar1 , « <br>\n »; // $myvar1==« something »
?> 20
15
LES CHAÎNES DE CARACTÈRES (3)
Quelques fonctions:
Exemple 9:
$content=« Motherboard »;
$base=strstr($content,’b’);
echo $base; // renvoie ‘board’
str_replace($chaine_recherchée,$chaine_remplacement,$texte):
parcourt une chaîne et y remplace toutes les occurrences d’une chaîne
spécifique par une autre chaîne . Si la chaîne de remplacement est plus
courte que la chaîne à remplacer la fonction str_replace ajoute des espaces à
la fin de la chaîne de remplacement.
Exemple 10:
23
LES CHAÎNES DE CARACTÈRES (6)
Exemple 11 :
24
FONCTIONS DE DÉTERMINATION ET
D’AJUSTEMENT DU TYPE DE DONNÉES D’UNE
VARIABLE (1)
En général en programmation PHP, il n’est pas nécessaire de déclarer le type
des variables. Dans certains cas toutefois, il devient indispensable de le faire. Par
exemple, il peut être nécessaire d’ajuster dynamiquement le type de données
d’une variable en fonction du résultat d’une certaine opération. Pour cela, vous
devez tout d’abord déterminer quel est le type de données de la variable puis
modifier ce type en utilisant deux fonctions spéciales offertes par PHP.
La fonction settype()
La fonction settype() fixe le type de données d’une variable. Sa syntaxe est la
suivante:
boolean settype(mixed $mavariable, string typedonnées)
La fonction settype() force la variable $mavariable à rendre le type de données
typedonnées. Elle retourne la valeur booléenne True si la conversion a réussi et
False si elle a échoué. L’argument typedonnées peut prendre l’une des valeurs
suivantes: integer, string, boolean, float, null, array et object.
25
FONCTIONS DE DÉTERMINATION ET
D’AJUSTEMENT DU TYPE DE DONNÉES D’UNE
VARIABLE (2)
Exemple 12 :
26
FONCTIONS DE DÉTERMINATION ET
D’AJUSTEMENT DU TYPE DE DONNÉES D’UNE
VARIABLE (3)
Exemple 13 :
<?php
$var="3.52 kilomètres";
settype($var,"double");
echo "\$var= ",$var,"<br />"; //affiche "$var=3.52"
settype($var,"integer");
echo "\$var= ",$var,"<br />"; //affiche "$var=3"
settype($var,"boolean");
echo "\$var= ",$var,"<br />"; //affiche "$var=1" soit la valeur true
?>
27
FONCTIONS DE DÉTERMINATION ET
D’AJUSTEMENT DU TYPE DE DONNÉES D’UNE
VARIABLE (4)
Autre façon de conversion du type:
Parfois il peut être indispensable de convertir explicitement une variable d’un type
dans un autre. C’est particulièrement vrai pour les variables issues d’un
formulaire, ce dernier étant l’outil essentiel de communication du poste client au
serveur. Ces variables sont toujours de type string. Pour convertir une variable
d’un type dans un autre, utilisez la syntaxe suivante :
$result = (type_désiré) $mavar;
Si vous créez bien de la sorte une nouvelle variable du type désiré à partir de la
première variable, celle-ci conserve son type initial. Si vous n’avez pas de raison
de craindre de perdre la valeur initiale, il vous suffit de donner le même nom aux
deux variables.
Dans l’exemple suivant, on transforme une chaîne de caractères successivement
en nombre décimal puis en entier et enfin en booléen : 28
FONCTIONS DE DÉTERMINATION ET
D’AJUSTEMENT DU TYPE DE DONNÉES D’UNE
VARIABLE (5)
Exemple 14 :
<?php
$var="3.52 kilomètres";
$var2=(double) $var;
echo "\$var2= ",$var2,"<br />"; // affiche "$var2=3.52"
$var3=(integer) $var2;
echo "\$var3= ",$var3,"<br />"; // affiche "$var3=3"
$var4=(boolean) $var3;
echo "\$var4= ",$var4,"<br />"; // affiche "$var4=1" soit la valeur true
?>
29
FONCTIONS DE DÉTERMINATION ET
D’AJUSTEMENT DU TYPE DE DONNÉES D’UNE
VARIABLE (6)
30
FONCTIONS DE DÉTERMINATION ET
D’AJUSTEMENT DU TYPE DE DONNÉES D’UNE
VARIABLE (7)
Les fonctions suivantes permettent de vérifier si une variable est d’un type précis :
• is_integer($var) ou is_int($var)
• is_double($var)
• is_string($var)
• is_bool($var)
• is_array($var)
• is_object($var)
• is_resource($var)
• is_null($var)
Elles retournent la valeur booléenne TRUE si la variable est du type
recherché et FALSE dans le cas contraire. On peut savoir si une variable
contient une valeur scalaire en appelant la fonction is_scalar($var) et plus
précisément, si elle contient une valeur numérique de type integer 31
ou double en appelant la fonction is_numeric($var).
FONCTIONS DE DÉTERMINATION ET
D’AJUSTEMENT DU TYPE DE DONNÉES D’UNE
VARIABLE (8)
Exemple 15 :
Lors de l’envoi de données d’un formulaire vers le serveur, le script qui reçoit les
informations doit pouvoir détecter l’existence d’une réponse dans les champs du
formulaire. Les fonctions isset() et empty() permettent ce type de contrôle.
La fonction isset(), dont la syntaxe est la suivante :
boolean isset($var)
retourne la valeur FALSE si la variable $var existe mais n’est pas initialisée ou si
elle a la valeur NULL et la valeur TRUE si elle a une valeur quelconque. Il peut y
avoir plusieurs paramètres dans cette fonction mais ils doivent tous répondre à
cette même condition pour que la fonction retourne la valeur TRUE.
La fonction empty(), dont la syntaxe est la suivante :
boolean empty(expression)
retourne la valeur TRUE si l’expression passée en paramètre n’est pas
initialisée, a une des valeurs suivantes : 0, NULL, FALSE, la chaîne "0" ou est
33
un tableau vide, et la valeur FALSE si elle a une quelconque autre valeur.
LES TABLEAUX (1)
34
LES TABLEAUX (2)
Exemple 16 :
Exemple 17 :
$Auteur[« Nom »]=« Van Lancker»; $Auteur=array(« Nom »=>« Van
$Auteur[« Prénom »]=«Luc»; Lancker», « Prénom » =>«Luc», «
Code_Postal »=>7700 );
$Auteur[« Code_Postal»]=7700; 35
LES TABLEAUX (3)
Initialisation de tableau
L’initialisation d’un tableau peut être implémentée de deux manières
différentes:
Au moyen de l’identificateur de tableau
Avec la fonction array()
Utilisation de l’identificateur du tableau
$student[]=« James »; $student[]=« John »;
Manipulation de tableaux:
Déterminer la taille ou le nombre des éléments d’un tableau: usage
de la fonction count()
Exemple 20:
$Student=array(« James », « Susan », « John »);
$New=array_shift($Student); // Premier élément du tableau $Student est
supprimé , « James » est alors supprimé puis renvoyé et stocké dans la
variable $new
Exemple 22:
$Student=array(« John », «James», «Susan»);
$Class=array(« 4 », « 5 », « 6»);
$Combine=array_merge($Student, $Class); // tableau $Combine contient les
éléments du tableau $Student et $Class
Exemple 25:
$Student=array(« a »=> « John », « James », « Susan»);
print_r($Student); 41
LES TABLEAUX (9)
Exemple 26:
$tableau = array(1, 2, 3);
foreach($tableau as $element)
{ echo “$element \n“;}
42
LES TABLEAUX (10)
Inversion d’un tableau:
Traiter un tableau dans l’ordre inverse, la fonction array_reverse() peut être
utilisée. Sa syntaxe est la suivante:
$array2= array_reverse($array1);
Tri de tableaux
sort() est la fonction PHP de tri la plus simple.
La fonction sort():
Utilisée pour trier des tableaux dans un ordre numérique ou alphabétique.
Exemple 27:
$Student = array(« John », « James », « Susan »);
sort($Student);
0 James
1 John 43
2 Susan
LES TABLEAUX (11)
Exemple 28:
$Student = array(« JS »=> «John Smith », « JP » =>«James Patt »,
« SC »=>«Susan Carter»);
sort($Student);
0 James
1 John
2 Susan
Les indices de type chaîne du tableau associatif ont été remplacés par des
indices numériques. C’est là un inconvénient de la fonction sort(). Pour éviter
cette conversion en une indexation numérique, on utilise la fonction asort().
PHP offre plusieurs fonctions pour opérer des tris dans des tableaux associatifs
ou indexés numériquement. Ces fonctions sont les suivantes:
44
LES TABLEAUX (12)
La fonction asort():
Trie le tableau passé comme argument sans en modifier l’indexation. Le tri du
tableau précédent avec la fonction asort() donne le résultat:
JP James Patt
JS John Smith
SC Susan Carter
La fonction rsort():
rsort() est analogue à sort() si ce n’est qu’elle trie le tableau passé comme
argument dans l’ordre inverse. L’exemple suivant:
$Student = array(«John», «James»,«Susan»);
rsort($Student);
0 Susan
1 John 45
2 James
LES TABLEAUX (13)
La fonction arsort():
Trie le tableau passé comme argument dans l’ordre inverse sans en modifier
l’indexation. Le tri du tableau précédent avec la fonction arsort() donne le résultat
suivant:
SC Susan Carter
JS John Smith
JP James Patt
La fonction ksort():
Trie les indices du tableau associatif qui lui est passé comme argument. Par
exemple, dans le cas du tableau Student suivant:
$Student=array(«b»=>«Susan»,«d»=>«Andrew»,«a»=>«John», «c »=>«James»);
ksort($Student);
46
LES TABLEAUX (14)
a John
b Susan,
c James
d Andrew
La fonction krsort():
Cette fonction est analogue à ksort() si ce n’est qu’elle trie le tableau qui lui est
passé comme argument dans l’ordre inverse. Par exemple, dans le cas du
tableau Student précédent, appliquer cette fonction donnerait le résultat
suivant:
d Andrew
c James
b Susan,
a John 47
LES STRUCTURES DE CONTRÔLE (1)
Structure conditionnelle:
if (condition) { action 1 } else { action 2 }
Exemple 29:
If ($valeur > 1) { If ($valeur == 1)
echo “la valeur est supérieure à 1"; {
} echo “la valeur est égale à 1“;
}
If ($valeur < 1) { else
echo “la valeur est inférieure à 1"; {
} echo “la valeur est différente de 1“;
}
If ($valeur == 1) {
echo “la valeur est égale à 1";
}
If ($valeur != 1) {
48
echo “la valeur est différente de 1";
}
LES STRUCTURES DE CONTRÔLE (2)
Structure conditionnelle:
La syntaxe de l’instruction switch est la suivante:
swi t c h ( v a r i a b l e ) {
case valeur1 :
Instructions
br e a k ;
c a s e v a l e u r 2 ::
Instructions
br e a k ;
..
default:
Instructions
br e a k ;
} 49
LES STRUCTURES DE CONTRÔLE (3)
Structures répétitives
Boucles for et foreach :
Boucles while :
wh i l e ( c o n d i t i o n )
{
Instructions
}
Do
{Instructions
} wh i l e ( c o n d i t i o n ) ;
51
FONCTIONS (1)
52
FONCTIONS (2)
Une fonction en PHP doit être déclarée selon le modèle suivant:
Spécifier des valeurs par défaut pour les arguments d’une fonction
Dans le script qui suit, la fonction requiert un argument. Toutefois, elle peut être
invoquée à partir du script principal sans spécifier d’argument. En effet, dans ce
cas, le compilateur utilise la valeur par défaut qui est affectée à l’argument dans
la déclaration de la fonction
Exemple 30:
<?php
function counter($number=6) {
for(;$number<10;$number++) {
echo $number, « \n »;
}}
echo « La fonction n’a pas été appelée . » , « \n » ;
counter(8);
counter(); 54
echo « La fonction a été appelée . » , « \n » ;
?>
FONCTIONS (4)
Passer un argument par valeur
C’est la méthode la plus utilisée en PHP pour passer des valeurs à des
fonctions. Elle requiert de passer une valeur (un argument) à la fonction lorsque
celle-ci est invoquée à partir du programme principal.
Exemple 31:
<?php
function counter($number) {
for(;$number<10;$number++) {
echo $number, « \n »;
}}
echo « La fonction n’a pas été appelée . » , « \n » ;
counter(3);
echo « La fonction a été appelée . » , « \n » ;
?>
55
FONCTIONS (5)
Passer un argument par référence
Lorsqu’un argument est passé par valeur à une fonction, c’est en réalité une
copie de l’argument qui est passée à la fonction invoquée. Il en résulte que
les modifications éventuellement apportées à la valeur passée comme
argument au sein de la fonction appelée n’affectent pas la valeur originale à
l’extérieur de la fonction.
Exemple 32:
<?php
$num=10;
function called_function($number) {
$number =$number+1;
echo $number, « \n »;
}
called_function($num); //invocation de la fonction avec passage d’argument par
valeur résultat 11
echo $num, « \n » ; // résultat 10 56
?>
FONCTIONS (6)
<?php
$num=10;
function called_function($number) {
$number =$number+1;
echo $number, « \n »;
}
called_function(&$num); //invocation de la fonction avec passage
d’argument par référence résultat 11
57
FONCTIONS (7)
L’instruction global est employée pour obtenir qu’une variable déclarée au sein
d’une fonction reste accessible depuis l’extérieur de celle-ci. La syntaxe à
utiliser est la suivante:
global $variable1;
58
FONCTIONS (8)
Exemple 33:
<?php
function sum() {
global $result;
echo $result, « \n »;
}
$result=0;
echo $result, « \n »; // résultat 0
sum(); // résultat 0
?>
59
FONCTIONS (9)
L’instruction static:
Une variable déclarée au sein d’une fonction a une durée de vie très courte:
elle est initialisée à l’invocation de la fonction et désinitialisée une fois
l’exécution de la fonction achevée et le contrôle repasse au script principal. En
utilisant le mot clé static, on peut augmenter la durée de vie d’une variable au
sein d’une fonction . La syntaxe à utiliser est la suivante:
static $variable1;
60
FONCTIONS (10)
Exemple 34:
<?php
function sum() {
$result=1;
echo $result, « \n »;
$result++;
}
sum(); // résultat 1
sum(); // résultat 1
?>
Les appels successifs de la fonction sum() produisent le même résultat, c’est-
à-dire l’affichage de la valeur 1, parce que la variable $result est réinitialisée à
chaque nouvelle invocation de la fonction et que l’effet de l’instruction
d’incrémentation est perdu. Il suffit d’une petite modification de ce script pour
obtenir que l’effet de l’incrémentation perdure d’un appel de fonction à l’autre:61
l’ajout du mot clé static devant la variable $result.
FONCTIONS (11)
Exemple 34 modifié:
<?php
function sum() {
static $result=1;
echo $result, « \n »;
$result++;
}
sum(); // résultat 1
sum(); // résultat 2
?>
62
FONCTIONS (12)
INCLUSION DU CODE EXTERNE
2 directives :
include("fichier");
require("fichier");
Ces fonctions ont pour objet d’insérer à un endroit du script un fichier PHP ou HTML.
Le nom ou le chemin d’accès du fichier est précisé en argument de la fonction include
ou de la fonction require. Le fichier inclus est analysé notamment pour y découvrir les
scripts PHP qui auraient été placés entre <?php et ?>. Ces fonctions sont relativement
semblables aux directives include du C ou require de Perl. Il existe une subtile
différence entre les deux fonctions. Plus rapide, mais moins souple, la fonction require
donne lieu à insertion directe et littérale du fichier désigné à la place de la fonction. En
revanche, la fonction include est traitée au moment de l’exécution et correspond donc
au mieux à un appel de fonction.
Exemple 35:
63
FONCTIONS (12)
INCLUSION DE CODE EXTERNE
inclusion.php
<html >
<head >
<title >Page PHP </ title >
<meta http - equiv =" content - type " content =" text / html ; charset =utf -8" />
<meta http - equiv =" Content -Style - Type " content =" text / css " />
</ head >
<body >
<?php include (“Entete. Inc.php "); ?>
<p>contenu normal de la page </p>
<p align =" right ">
<i><?php include(“Pieddepage.inc.php "); ?></i>
</p>
</ body > 64
</ html >
QUELQUES FONCTIONS
MATHÉMATIQUES
double/integer abs(double/ integer X) : Valeur absolue de X
string base_convert(string N, integer B1,integer B2) : Convertit le nombre N
contenu dans une chaîne de la base B1 dans la base B2.
Exemple 36:
<?php
if(empty($mailto)){
die("Pas de destinataire trouvé" );}
if(empty($mailsubject)){
$mailsubject=" ";}
if(empty($mailbody)){
$mailbody =" " ;}
$result=mail($mailto, $mailsubject, $mailbody);
If($result){
echo "<h1><center>E-mail envoyé avec succès !</center></h1>";}
else
{echo "<h1><center>Echec d’envoi de l’E-mail !</center></h1>";} 67
?>
LES FICHIERS (1/3)
OUVERTURE DES FICHIERS
68
LES FICHIERS (2/3)
GESTION DES FICHIERS
69
LES FICHIERS (3/3)
exemple 37
fichier.php
<html >
<head >
<title >Lecture / Ecriture dans un fichier </ title >
<meta http - equiv =" Content - type " content =" text / html ; charset =utf -8"/>
</ head >
<?php
$fichier = fopen (" fichier . txt", "a");
fputs( $fichier , "Une phrase \n");
fclose( $fichier );
$fichier = fopen (" fichier . txt", "r");
echo "<p> Dans le fichier fichier . txt :</p>";
while (!feof ( $fichier )){
echo fgetc ( $fichier );
}
fclose ( $fichier ); 70
?>
</ html >
LES FORMULAIRES (1/3)
POST/GET
Les champs d’un formulaire sont disponibles à travers les variables superglobales $_GET
et $_POST
Remarques :
Si le submit est une image, les coordonnées du click sont transmises via $sub_x et
$sub_y
Il est possible d’utiliser des tableaux à une dimension pour des formulaires ayant par
exemple des listes à choix multiples
Les caractères spéciaux (&, ", ’, <, >) doivent être transformés en caractères
interprétables par le navigateur :
string htmlentities(string [,int $flags])
string html_entity_decode(string [,int $flags])
La balise HTML <pre>...</pre> peut être utilisée pour interpréter les espaces,
tabulations et sauts de ligne.
71
LES FORMULAIRES (2/3)
exemple 38
htmlentities.php
<?php
$phrase = "J’aime le <strong >gras </ strong > !";
$a = htmlentities ($phrase );
$b = html_entity_decode ($a);
echo $phrase . "<br/>"; // J’aime le gras ! ( avec " gras " en gras )
echo $a . "<br/>"; // J’aime le <strong >gras </ strong > !
echo $b; // J’aime le gras ! ( avec " gras " en gras )
?>
72
LES FORMULAIRES (3/3)
EXEMPLE DE TRAITEMENT DE FORMULAIRE
exemple 39
formulaire.php
74
SESSIONS
Une session est la durée pendant laquelle un utilisateur reste connecté à un site Web.
Lorsqu'un utilisateur accède à votre site, l'identificateur de session est envoyé à son
ordinateur, après quoi une session d'utilisateur est initialisée. Si l'emploi des cookies est
activé au niveau du client, l'identificateur de session est expédié à l'utilisateur dans un cookie.
Ce cookie est nommé PHPSESSID. L'identificateur de session est également stocké dans le
serveur en tant que fichier temporaire.
Variables de session
Une variable de session est une variable globale qui conserve sa valeur sur toutes les pages
utilisant des sessions PHP. En d'autres termes, une variable de session continue à exister si
elle n'est pas supprimée explicitement. Voici sous quel format peut être stockée une variable
de session côté serveur:
Welcome | s:5: "78"
Dans l'instruction précédente, le nom de la variable de session est Welcome. La valeur
correspondante de la variable est 78.
Une variable de session peut stocker les valeurs suivantes: les valeurs d'entiers, les valeurs
de chaînes, les tableaux, les objets. Avant de pouvoir accéder à une variable de session par
programmation(extraire la valeur stockée dans une variable de session), il faut l'enregistrer.
75
Enregistrer une variable de session
L'accès à une variable est conditionné à son enregistrement. Cet enregistrement
aide également à conserver la valeur de la variable de session sur toutes les pages
qui utilisent des sessions PHP. La procédure pour enregistrer une variable de
session est la suivante:
L'analyseur PHP reçoit le cookie
L'analyseur PHP récupère la valeur de PHPSESSID à partir de ce cookie.
L'analyseur PHP recherche alors le fichier de session correspondant
L'analyseur PHP recherche un identificateur de session correspondant dans
un fichier de session temporaire
L'analyseur PHP recherche alors la variable de session spécifiée dans ce
fichier
Après avoir localisé la variable avec succès, l'analyseur extrait la valeur
stockée dans celle-ci.
Pour enregistrer une variable de session, il faut d'abord affecter une valeur à la
variable et appeler la fonction session_register(). La syntaxe de cette fonction est la
suivante:
bool session_register(mixed arg1, mixed arg2,.....,argn); 76
Cette fonction reçoit une ou plusieurs variables devant être enregistrées pour la
session courante. La fonction renvoie True si a variable a été définie avec succès.
Dans le cas contraire elle renvoie False.
Exemple 40
<?php
$vb1="la variable doit être enregistrée !";
session_register('vb1');
echo $vb1;
?>
77
Exemple 41 Enregistrer une variable avec $_SESSION.
<?php
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
?>
78
Exemple 42 Retirer une variable de session avec la superglobale $_SESSION.
<?php
session_start();
unset($_SESSION['count']);
?>
Attention: N'utilisez PAS la fonction unset() avec $_SESSION sous la
forme unset($_SESSION) sinon, cela rendra impossible l'enregistrement de
données dans la session en utilisant la super-globale $_SESSION.
79
Exemple 43 Compter le nombre de passages d'un utilisateur sur une page
<?php
session_start();
if (empty($_SESSION['count'])) {
$_SESSION['count'] = 1;
} else {
$_SESSION['count']++;
}
?>
<p>
Bonjour visiteur, vous avez vu cette page <?php echo $_SESSION['count']; ?
> fois.
</p>
<p>
Pour continuer, <a href="nextpage.php?<?php echo htmlspecialchars(SID); ?
>">cliquez ici</a>.</p>
80
La fonction htmlspecialchars() est utilisée lors de l'affichage du SID dans le but
de contrer les attaques de sécurité.
81
Lancer une session
La fonction intégrée à PHP session_start() permet de créer une nouvelle session ou
pour reprendre la session courante sur la base de l'ID de session qui lui est
transmis via une variable GET ou un cookie. La syntaxe de la fonction est la
suivante:
bool session_start();
Elle renvoie toujours True. À mettre obligatoirement avant tout envoi d’en-tête et
dans toute page participant à une session
La session courante se voit attribuer un nom, puis elle est lancée. La variable
customerid est enregistrée en tant que variable de session. La fonction
session_encode() entre alors en jeu pour encoder les données.
84
Notes utiles :
La fonction header envoie un en-tête HTTP au navigateur. Elle doit être appelée avant tout tout
envoi de contenu au navigateur. Les en-têtes HTTP sont des chaînes de commandes spéciles
échangées entre le navigateur et le serveur Web avant toute réception de contenu par le
navigateur. Certains de ces en-têtes permettent au serveur de savoir quel fichier envoyer. D’autres
peuvent fournir au navigateur des informations sur le type de fichier qu’il va recevoir.
Variables prédéfinies par PHP: avant toute exécution d’un script, PHP crée un ensemble de
variables qui sont définies dans un espace de noms superglobal. Elles sont de ce fait accessibles
de l’intérieur des fonctions et des classes sans déclaration d’accès explicite.
Exemples :
_COOKIE: la variable _COOKIE est un tableau des cookies envoyés du navigateur au serveur.
Les clés du tableau sont les noms des cookies.
_GET: _GET mémorise les valeurs de tous les champs transmis via GET. Les clés du tableau
sont les noms de variables transmises dans la requête.
_POST:le tableau _POST mémorise les valeurs de tous les champs transmis via la méthode
POST. Les clés du tableau sont les noms de variables transmises dans la requête.
_SESSION: le tableau _SESSION mémorise les variables des sessions internes de PHP
_SERVER: le grand tableau _ SERVER réunit les informations de description du serveur et de
son environnement. Plusieurs élements peuvent faire ou non partie de _SERVER selon la nature
du serveur et du fait que le script a été lancé depuis un interpréteur shell par exemple :
PHP_AUTH_USER : nom de l’utilisateur transmis par le navigateur
85
PHP_AUTH_PW: mot de passe transmis par le navigateur
PARTIE 2:
86
PLAN
Requête simple
Requête multiple
2
BASE DE DONNÉES MYSQL SOUS PHP
Pour se connecter à une base depuis php, il faut spécifier un nom de serveur,
un nom d’utilisateur, un mot de passe et un nom de base.
id utilisateur: l’identifiant d’un utilisateur bénéficiant d’un droit d’accès à la base
de données. Cet ID utilisateur doit être enregistré dans le serveur MySQL avec
les autorisations appropriées pour que l’accès à la base de données soit possible.
3
BASE DE DONNÉES MYSQL SOUS PHP
mot de passe: cet argument contient le mot de passe associé à l’ID utilisateur
spécifié comme second argument. L’utilisation de mot de passe sécurise l’accès à la
base de données en l’interdisant aux personnes non autorisés. Si ce troisième
argument n’est pas fourni, le mot de passe est supposé blanc.
$connect: la variable $connect est l’identificateur de connexion. Elle contient la
valeur True si la connexion a été établie avec succès et la valeur False dans le cas
contraire. On peut l’utiliser dans le code PHP pour faire référence à la connexion ou
pour établir une connexion avec la base de données.
Choix de la base:
mysql_select_db($base[,$id]) : permet de choisir la base $base, retourne
TRUE en cas de succès, sinon FALSE
Fermeture de la connexion:
mysql_close([$id]) : permet de fermer la connexion
// Connection au serveur
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
if (!$link)
{
die('Echec de connexion : ' . mysql_error());
}
90
CRÉATION D'UNE BASE DE DONNÉES SOUS
PHP
2) Création d'une base de données MySql sous PHP
Nom de la base: BIBLIOTHEQUE
// Création de la base
if (mysql_query("CREATE DATABASE BIBLIOTHEQUE",$link))
{
echo "Base de données créée ";
}
else
{
ech
o
"Err
$createtable=mysql_create_db($nomdb);
eur
La devariable $nomdb contient le nom à affecter à la base de données qui doit
êtrecrécrée tandis que la variable $createtable contient le résultat de la
tentative
atio de connexion avec MySQL c’est-à-dire la valeur True ou la valeur 91
False
n selon que la tentative est respectivemet fructueuse ou pas.
de
CRÉATION D'UNE BASE DE DONNÉES SOUS
PHP
3) Création de la table ouvrages
// Fermeture de la connexion
mysql_close($link); 92
AJOUT D'ENREGISTREMENTS À UNE BASE
DE DONNÉES SOUS PHP
93
INTERROGATION D'UNE BASE DE
DONNÉES SOUS PHP
5) Interrogation de la table ouvrages:
Les requêtes les plus couramment utilisées sont : CREATE (création d’une
table), SELECT (sélection), INSERT (insertion), UPDATE (mise à jour des
données), DELETE (suppression), ALTER (modification d’une table), etc.
Exemple :
96
INTERROGATION D'UNE BASE DE
DONNÉES SOUS PHP
97
INTERROGATION D'UNE BASE DE
DONNÉES SOUS PHP
8) Requête Auteur / Ouvrage : Requête multiple
<?php
$select = 'SELECT * FROM ouvrage AS n, auteur AS a WHERE n.id_auteur = a.id_auteur';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) {
// première ligne on affiche les
titres
// lecture et affichage des
résultats sur 2 colonnes, 1
résultat par ligne.
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['id_auteur'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['prenom'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['email'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['id'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['date_edition'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['titre'].'</td>'; 98
echo '<td bgcolor="#CCCCCC">'.$row['message'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['id_auteur'].'</td>';
echo '</tr>'."\n"; }
MAJ D'UNE BASE DE DONNÉES SOUS
PHP
9) Modification (MAJ) d'un enregistrement de la table ouvrages
99
MAJ D'UNE BASE DE DONNÉES SOUS
9)
PHP
Modification (MAJ) d'un enregistrement de la table ouvrages (suite)
Méthode 2 (Avec interface ): Affichage et sélection d'un enregistrement
<?php
while($rows=mysql_fetch_array($result)){ Liste.php
?>
<tr>
<td><?php echo $rows['id']; ?></td>
<td><?php echo $rows['auteur']; ?></td>
<td><?php echo $rows['titre']; ?></td>
<td><?php echo $rows['edition']; ?></td>
<td><?php echo $rows['annee']; ?></td>
<td><?php echo $rows['isbn']; ?></td>
<td align="center"><a href="update.php?id=<?php echo $rows['id']; ?>">Mise à jour</a></td>
</tr>
<?php $id=$rows['id'];?>
<?php
100
}
?>
MAJ D'UNE BASE DE DONNÉES SOUS
9) PHP de la table ouvrages (suite)
Modification (MAJ) d'un enregistrement
Méthode 2 (Avec interface ): Formulaire
<form name="form1" method="post" action="update_ac.php"> update.PHP
…………………………………………………..
<tr>
<td align="center"> <input name="auteur" type="text" value="<?php echo $rows['auteur']; ?
>"> /td>
<td align="center"> <input name="titre" type="text" value="<?php echo $rows['titre']; ?>">
</td>
<td align="center"> <input name="edition" type="text" value="<?php echo $rows['edition']; ?
>">
</td>
<td align="center"> <input name="annee" type="text" value="<?php echo $rows['annee']; ?
>"> /td>
<td> <input name="isbn" type="text" value="<?php echo $rows['isbn']; ?>"> </td>
<td> <input name="id" type="hidden" value="<?php echo $rows['id']; ?>"> </td>
</tr>
<tr>
<td> </td>
<td align="center"> <input type="submit" name="Submit" value="Submit"> </td>
101
<td> </td>
</tr>……………………………………………………
</form>
MAJ D'UNE BASE DE DONNÉES SOUS
9) PHP de la table ouvrages (suite)
Modification (MAJ) d'un enregistrement
Méthode 2 (Avec interface ): Script de MAJ
$id=$_POST['id'];
$auteur=$_POST['auteur']; update_ac.PHP
$titre=$_POST['titre'];
$edition=$_POST['edition'];
$annee=$_POST['annee'];
$isbn=$_POST['isbn'];
// MAJ de la base ouvrage
$sql=("UPDATE $tbl_name SET auteur='$auteur', titre='$titre',
edition='$edition',annee='$annee',
isbn='$isbn' WHERE id='$id'");
$result=mysql_query($sql);
// MAJ avec succès
if($result){
echo " MAJ avec succès ";
echo "$id";
echo "<BR>";
echo "<a href='liste.php'>Voir le résultat</a>";
}
102
else {
echo "ERROR";}
SUPPRESSION D'ENREGISTREMENTS D'UNE
BASE DE DONNÉES SOUS PHP
10) Suppression d'un enregistrement de la table ouvrages
<html>
<body>
<form action="supp_base_localhost.php" method="post">
<h1> Formulaire de suppression d'enregistrements </H1>
Donnez le numéro Isbn: <input type="text" name="isbn" maxlength="13" size="13"
/><br /><br />
<input type="submit" />
</form>
</body>
</html>
105
PARTIE 3:
106
FONCTIONS ADDITIONNELLES
12) Envoi de mail à partir d'une page HTML contact_form.html
<html>
<body>
<h1>Formulaire de contact</h1>
<form action="contact_send.php"
method="POST" border: solid 1px #000000>
<p>Nom</p> <input type="text"
name="nom">
<p>Email</p> <input type="text"
name="email">
<p>Message</p><textarea name="message"
rows="10" cols="30"></textarea><br />
<input type="submit" value="Send"><input
type="reset" value="Clear">
</form>
</body>
</Html> 107
FONCTIONS ADDITIONNELLES
13) Envoi de mail à partir d'une page HTML (suite) contact_send.php
<html>
<body>
<?php
$name = $_POST['nom'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name \n Message: $message";
$recipient = "benhafsia@yahoo.fr";
$subject = "Formulaire de Contact";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Merci!";
?>
</body> 108
</html>
FONCTIONS ADDITIONNELLES
14) Intégration de la vidéo dans une page HTML
<! Avec lecteur flash: en Local!>
- un fichier .flv (vidéo)
- un fichier .swf (player)
- un fichier config_flvplayer.txt(configuration)
<html>
<TITLE>Intégration Video</TITLE>
<body>
<h1 align="center">Intégration Video</h1>
<! Avec lecteur flash: en Local!>
<object type="application/x-shockwave-flash" data="flvplayer.swf" width="480"
height="360">
<param name="movie" value="flvplayer.swf" />
<param name="flashvars" value="config=config_flvplayer.txt" />
<param name="allowfullscreen" value="true" />
</object>
<! A partir de Youtube !>
<iframe width="560" height="315" src="http:/
/www.youtube.com/embed/ckrtMSZIE0c" frameborder="0"
allowfullscreen></iframe>
</body>
110
</html>
FONCTIONS ADDITIONNELLES
111