📘

Les échanges de données entre le client et le serveur

Redirection


La fonction header() permet d’envoyer un en-tête HTTP, notamment une redirection avec Location suivi d’un chemin relatif, absolu ou de l’adresse d’un site web.

⚠️
Elle doit être appelée avant l’envoi de tout contenu.
header('Location: ../Chemin/Relatif/unePage.php');
header('Location: /Chemin/Absolu/uneAutrePage.php');
header('Location: http://www.un-site-web-fictif.fr/');
ℹ️
On peut rafraîchir la page avec header("Refresh:0"); (ou bien on peut utiliser du JavaScript avec location.reload()).

Il est possible de rendre la redirection permanente avec l’envoi en amont d’un statut 308 :

header('Status: 308 Permanent Redirect', false, 308);
header('Location: ../Redirection/Permanente/uneNouvellePage.php');
On peut faire une redirection permanente par exemple pendant qu’on bidouille sur la page d’accueil : on renvoie les utilisateurs ailleurs en attendant, puis on supprime la redirection.

Il est également possible de faire une redirection conditionnelle.

Outils : Liste des status HTTP

Cookies


Un cookie est un fichier (temporaire) côté client, sous la forme de clé/valeur.

Le serveur crée un cookie qu’il met chez le client, ainsi quand le client répond au navigateur alors il lui renvoie le cookie.

BP : On ne met jamais un mot de passe dans un cookie…

Créer un cookie : setcookie('nom', 'valeur')

(ici une journée écrite en nombre de secondes)

ℹ️
Si aucune durée n’est indiquée, le cookie sera supprimé à la fermeture de la session.
⚠️
La valeur d’un cookie est forcément une chaîne de caractères.

Supprimer un cookie : setcookie('nom')

Lire un cookie :

On utilise une variable superglobale $_COOKIE qui est un tableau associatif regroupant tous les cookies en clé/valeur.

if (isset($_COOKIE['nom'])) {
	echo "Le cookie dont la clé est 'nom' a pour valeur ".$COOKIE['nom'];
} else {
	echo "Il n'y a pas de cookie dont la clé est 'nom'.";
}

📌
Pour aller plus loin : notion de non répudiation

Session


Une session est un emplacement mémoire dans lequel il y a des informations, stockées côté serveur (au contraire des cookies stockées côté client). Ces informations ne sont donc pas accessibles par le client.

⚠️
Quand on ferme le navigateur, la session se ferme. Si on veut la garder, on la met dans un cookie ! Pour cela, on utilise notamment un identifiant unique, que l’on met dans un cookie et qui permet de recréer la session.

Créer une session : session_start();

Stocker des données pour la session :

On utilise une variable superglobale $_SESSION qui est un tableau associatif regroupant toutes les informations stockées en clé/valeur.