Vous êtes sur la page 1sur 36

Développement Web

coté serveur
Gestion des sessions ,des cookies et
des fichiers en PHP

2022
1
LES COOKIES

2
Présentation

Un cookie est un petit fichier texte qui ne peut


contenir qu’une quantité limitée de données.
données.
Les cookies sont stockés sur les ordinateurs des
visiteurs.. Ainsi, à tout moment, un utilisateur
visiteurs
peut lui même les supprimer
les cookies ont durée de vie limitée
limitée..
les cookies sont utilisées pour préenregistrer
des données concernant les utilisateurs comme
un nom d’utilisateur par exemple.
exemple.

3
Création

Pour créer un cookie en PHP, nous allons


utiliser la fonction setcookie
setcookie()
()..
Cette fonction doit être appelé à l’ entête du
document HTML.
HTML.
Cette fonction peut accepter jusqu’à sept valeurs
en arguments.
arguments. Cependant, seul la première (le
nom du cookie créé) est obligatoire
obligatoire..
Syntaxe : < code>setcookie
code>setcookie(name,
(name, value, expire,
path, domain, secure, httponly
httponly)) </code>
avec :

4
Création

5
Exemple

fonction appelée avant


Le code HTML dans
une balise PHP

6
Exemple

un premier cookie nommé user_id qui stockera


l’ID d’un visiteur pour la session actuelle par
exemple ce qui nous permettra de l’identifier
pendant sa navigation sur notre site
un deuxième cookie qu’on appelle user_pref qui
stockera les préférences mentionnés par
l’utilisateur pour notre site (utilisation d’un thème
sombre par exemple)
exemple)..

7
Récupération

Pour récupérer la valeur d’un cookie, on utilise


la variable superglobale $_COOKIE
_COOKIE..
Cette superglobale est un tableau associatif qui
utilise les noms des cookies en clefs et associe
leurs valeurs en valeurs du tableau.

8
Exemple

9
Exemple

Req : il faut bien noter que la variable $_COOKIE stocke


la liste des cookies renvoyés par le navigateur.
Lorsqu’un utilisateur demande à accéder à notre page
pour la première fois, le cookie user_id est créé côté
serveur et est renvoyé au navigateur afin qu’il soit stocké
sur la machine du visiteur.

10
Modification/suppression d’un cookie

Pour modifier la valeur d’un cookie, on utilise la


fonction setcookie
setcookie()
() en lui passant le nom du
cookie dont on souhaite changer la valeur et
changer l’argument de type valeur passé à la
fonction avec la nouvelle valeur souhaitée
souhaitée..
Pour supprimer un cookie, on
utilise setcookie
setcookie()
() en lui passant le nom du
cookie qu’on souhaite supprimer et on doit cette
fois--ci définir une date d’expiration se situant
fois
dans le passé pour le cookie en question.question.

11
Exemple :

12
LES SESSIONS

13
Présentation

Les sessions permettent de conserver des


informations relatives à un utilisateur lors de son
parcours sur un site web
Des données spécifiques à un visiteur pourront être
transmises de page en page afin d'adapter
personnellement les réponses d'une application PHP
Les informations de session ne sont pas stockées
sur les ordinateurs des visiteurs à la différence des
cookies mais plutôt côté serveur.
Chaque visiteur en se connectant à un site reçoit un
numéro d'identification dénommé identifiant de
session (SID)

14
Présentation

La fonction session_start() se charge de générer


automatiquement cet identifiant unique de session et
de créer un répertoire. Elle doit être placée au début
de chaque page afin de démarrer ou de continuer
une session.
<?php
session_start();
session_start()
$Session_ID = session_id();
// $Session_ID = 7edf48ca359ee24dbc5b3f6ed2557e90
?>
Les identifiants de session vont généralement être
envoyés au navigateur via des cookies de session et
vont être utilisés pour récupérer les données
existantes de la session.
15
Présentation

le but des sessions n’est pas de conserver des


informations indéfiniment mais simplement durant
une « session ».
Une session démarre dès que la
fonction session_start() est appelée et se termine en
général dès que la fenêtre courante du navigateur
est fermée
La superglobale $_SESSION est un tableau
associatif qui va contenir toutes les données de
session une fois la session démarrée.

16
Démarrer une session

Pour démarrer une session en PHP, on va utiliser la


fonction session_start(). Cette fonction doit être
appelée au début de la page.
Session_start() doit être appelée au début de chaque
page où on cherche à accéder aux variable de la
session
En pratique, on créera une page header.php qui va
contenir notre fonction session_start() et qu’on va
inclure à l’aide de include ou require dans les pages
voulues d’un site.
lorsqu’un utilisateur qui ne possède pas encore
d’identifiant de session demande à accéder à une
page contenant session_start(), cette fonction va
générer un identifiant de session unique qui va
généralement être envoyé au navigateur sous forme
de cookie sous le nom PHPSESSID. 17
Exemple

Début du fichier

Corps du document HTML

18
Exemple

19
Définir et récupérer les variables de session

Pour définir et récupérer les valeurs des variables de


session, on peut utiliser la variable $_SESSION.

Page1.php

20
Définir et récupérer les variables de session

Page2.php

21
Terminer et détruire les variables d’une
session
Une session PHP se termine généralement lorsqu’un
utilisateur ferme la fenêtre de son navigateur
Il est possible de détruire une session avec les
fonctions session_destroy() qui détruit toutes les
données associées à la session courante
et session_unset() qui détruit toutes les variables
d’une session.
session
La fonction session_destroy() va supprimer le fichier
de session dans lequel sont stockées toutes les
informations de session. Cependant, cette fonction
ne détruit pas les variables globales associées à la
session (c’est-à-dire le contenu du
tableau $_SESSION) ni le cookie de session.

22
Terminer et détruire les variables d’une
session
Pour détruire totalement une session, il va
également falloir supprimer l’identifiant de session.
Généralement, cet identifiant est contenu dans le
cookie PHPSESSID qu’on pourra effacer en
utilisant setcookie() en définissant une date
d’expiration passée pour le cookie.
Il est également possible d’utiliser la
fonction session_unset() (sans lui passer
d’argument) pour détruire toutes les variables de la
session courante. Cette fonction va également nous
permettre de détruire une variable de session en
particulier en lui passant sa valeur de la manière
suivante : unset($_SESSION['nom-de-la-variable-de-
session-a-detruire']).

23
Exemple

24
LES FICHIERS

25
Principe

PHP prend en charge l’accès au système de fichiers


du système d’exploitation du serveur
Les opérations sur les fichiers concernent la
création, l’ouverture, la suppression, la copie, la
lecture et l’écriture de fichiers
Les possibilités d’accès au système de fichiers du
serveur sont réglementées par les différents droits
d’accès accordés au propriétaire, à son groupe et
aux autres utilisateurs
La communication entre le script PHP et le fichier est
repérée par une variable, indiquant l'état du fichier et
qui est passée en paramètre aux fonctions
spécialisées pour le manipuler

26
Gestion des fichiers

Ouverture de fichiers
La fonction fopen() permet d'ouvrir un fichier, que ce soit pour le lire, le
créer ou y écrire
: entier fopen(chaine nom du fichier, chaine mode);

– mode : indique le type d'opération qu'il sera possible d'effectuer


sur le fichier après ouverture. Il s'agit d'une lettre (en réalité une
chaîne de caractères) indiquant l'opération possible:
• r (comme read) indique une ouverture en lecture seulement
• w (comme write) indique une ouverture en écriture seulement (la
fonction crée le fichier s'il n'existe pas)
• a (comme append) indique une ouverture en écriture seulement avec
ajout du contenu à la fin du fichier (la fonction crée le fichier s'il
n'existe pas)

– lorsque le mode est suivie du caractère + celui-ci peut être lu et


écrit
– le fait de faire suivre le mode par la lettre b entre crochets indique
que le fichier est traité de façon binaire. 27
Gestion des fichiers

Ouverture de fichiers
Mode Description

r ouverture en lecture seulement

w ouverture en écriture seulement (la fonction crée le fichier s'il n'existe pas)

ouverture en écriture seulement avec ajout du contenu à la fin du fichier (la fonction
a
crée le fichier s'il n'existe pas)

r+ ouverture en lecture et écriture

w+ ouverture en lecture et écriture (la fonction crée le fichier s'il n'existe pas)

ouverture en lecture et écriture avec ajout du contenu à la fin du fichier (la fonction
a+
crée le fichier s'il n'existe pas)

28
Gestion des fichiers

Ouverture de fichiers
Exemple
$fp = fopen("fichier.txt","r"); //lecture

$fp = fopen("fichier.txt","w"); //écriture depuis début du


fichier

De plus, la fonction fopen permet d'ouvrir des fichiers présents sur


le web grâce à leur URL.
Exemple : un script permettant de récupérer le contenu d'une page
d'un site web:
<?
$fp = fopen("http://www.mondomaine.fr","r"); //lecture du
fichier
while (!feof($fp)) { //on parcoure toutes les lignes
$page .= fgets($fp, 4096); // lecture du contenu de la
ligne}
29
?>
Gestion des fichiers

Ouverture de fichiers
Il est généralement utile de tester si l'ouverture de fichier s'est bien
déroulée ainsi que d'éventuellement stopper le script PHP si cela
n'est pas le cas
<?
if (!$fp = fopen(”fichier.txt","r"))
fopen(”fichier txt","r")) {
echo "Echec de l'ouverture du fichier";
exit;}
else {// votre code;}
?>

Un fichier ouvert avec la fonction fopen() doit être fermé, à la fin de


son utilisation, par la fonction fclose() en lui passant en paramètre
l'entier retourné par la fonction fopen()

30
Gestion des fichiers

Lecture et écriture de fichiers


Il est possible de lire le contenu d’un fichier et d'y écrire des
informations grâce aux fonctions:
fputs() (ou l’alias fwrite() ) permet d'écrire une chaîne de caractères
dans le fichier. Elle renvoie 0 en cas d'échec, 1 dans le cas contraire
– booléen fputs(entier Etat_du_fichier, chaine Sortie);
fgets() permet de récupérer une ligne du fichier. Elle renvoie 0 en cas
d'échec, 1 dans le cas contraire
– fgets(entier Etat_du_fichier, entier Longueur);
• Le paramètre Longueur désigne le nombre de caractères
maximum que la fonction est sensée récupérer sur la ligne
• Pour récupérer l'intégralité du contenu d'un fichier, il faut
insérer la fonction fgets() dans une boucle while. On utilise
la fonction feof(), fonction testant la fin du fichier.
31
Gestion des fichiers

Lecture et écriture de fichiers


<?
if (!$fp = fopen("fichier.txt","r"))
{echo "Echec de l'ouverture du fichier";}
else { $Fichier="";
while(!feof($fp)) {
// On récupère une ligne
$Ligne = fgets($fp,255);
// On affiche la ligne
echo $Ligne;
// On stocke l'ensemble des lignes dans une variable
$Fichier .= $Ligne. "<BR>";
}
fclose($fp); // On ferme le fichier
}
?>
32
Gestion des fichiers

Lecture et écriture de fichiers


Pour stocker des informations dans le fichier, il faut dans un
premier temps ouvrir le fichier en écriture en le créant s’il n'existe
pas
Deux choix : le mode 'w' et le mode 'a'.
'a'.
<?
$nom="Jean"; $email="jean@dupont.fr";
$fp = fopen("fichier.txt","a"); // ouverture du fichier en écriture
fputs($fp, "\n"); // on va a la ligne
fputs($fp, $nom."|".$email); // on écrit le nom et email dans le
fichier
fclose($fp);
?>

33
Gestion des fichiers

Les tests de fichiers


is_dir() permet de savoir si le fichier dont le nom est passé
en paramètre correspond à un répertoire.
– La fonction is_dir() renvoie 1 s’il s'agit d'un répertoire, 0 dans
le cas contraire

booléen is_dir(chaine Nom_du_fichier);

is_executable() permet de savoir si le fichier dont le nom est


passé en paramètre est exécutable.
– La fonction is_executable() renvoie 1 si le fichier est
exécutable, 0 dans le cas contraire

booléen is_executable(chaine Nom_du_fichier);

34
Gestion des fichiers

Les tests de fichiers


is_link() permet de savoir si le fichier dont le nom est passé en
is_link()
paramètre correspond à un lien symbolique. La fonction is_link
is_link()
()
renvoie 1 s’il s'agit d'un lien symbolique, 0 dans le cas contraire
booléen is_link(chaine
is_link(chaine Nom_du_fichier);
Nom_du_fichier);

is_file() permet de savoir si le fichier dont le nom est passé en


is_file()
paramètre ne correspond ni à un répertoire, ni à un lien
symbolique.
– La fonction is_file()
is_file() renvoie 1 s’il s'agit d'un fichier, 0 dans le cas
contraire

booléen is_file(chaine
is_file(chaine Nom_du_fichier);
Nom_du_fichier);

35
Gestion des fichiers

D'autres façons de lire et écrire


La fonction file() permet de retourner dans un tableau l'intégralité d'un
fichier en mettant chacune de ces lignes dans un élément du tableau
Tableau file(chaine nomdufichier);

Exemple : parcourir l'ensemble du tableau afin d'afficher le fichier


<?
$Fichier = "fichier.txt";
if (is_file($Fichier)) {
if ($TabFich = file($Fichier)) {
for($i = 0; $i < count($TabFich); $i++)
echo $TabFich[$i];}
else {echo "Le fichier ne peut être lu...<br>";}}
else {echo "Désolé le fichier n'est pas valide<br> " ;}
?>

36

Vous aimerez peut-être aussi