Cours 09 - Cookies & Session
Table des matières
Objectifs
- Connaître l’utilisation de $_SESSION et de $_COOKIE
- Utiliser les deux concepts avec un formulaire simple
- Bien choisir entre les deux types de variables selon les besoins!
Déroulement
- Introduction et retour sur le questioniaire passé
- Petit recap de $_SESSION et de $_COOKIE avec les exemples de code
- Exercice 09
- Conclusion
Exemples de $_SESSION
IMPORTANT Ne pas oublier de mettre un session_start(); dans functions.php. Ça aura pour but de démarrer une seule fois la session pour la page en cours!
Créer une session
// On créer notre variable de session à partir d'un paramètre
$_SESSION[$nom_session] = $valeur_session;
//si tout s'est bien déroulé
if(isset($_SESSION[$nom_session])){
return true;
} else {
return false;
}
Lire une session
if(isset($_SESSION[$nom_session])){
return $_SESSION[$nom_session];
} else {
return false;
}
Modifier une session
if(isset($_SESSION[$nom_session])){
$_SESSION[$nom_session] = $valeur_session;
return true;
} else {
return false;
}
Effacer une session
if(isset($_SESSION[$nom_session])){
unset($_SESSION[$nom_session]);
return true;
} else {
return false;
}
Détruire la session complètement
// on réinitialise toutes les variables
unset($_SESSION);
// il faut détruire aussi les cookies associés aux sessions.
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 86400,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]);
}
// finalement on détruie la session
return session_destroy();
Exemples de $_COOKIE
Créer un cookie
// On créer notre variable de cookie à partir d'un paramètre
setcookie($nom_cookie, $valeur_cookie, time() + $nb_jours*24*3600, "/", "", false, true);
//si tout s'est bien déroulé
if(isset($_COOKIE[$nom_cookie])){
return true;
} else {
return false;
}
Lire un cookie
if(isset($_COOKIE[$nom_cookie])){
return $_COOKIE[$nom_cookie];
} else {
return false;
}
Modifier un cookie
if(isset($_COOKIE[$nom_cookie])){
setcookie($nom_cookie, $valeur_cookie, time() + $nb_jours*24*3600, "/", "", false, true);
return true;
} else {
return false;
}
Effacer un cookie
if(isset($_COOKIE[$nom_cookie])){
unset($_COOKIE[$nom_cookie]);
setcookie($nom_cookie, '', time() - 86400, '/', null, false, true);
return true;
} else {
return false;
}
Détruire les cookies complètement
// on réinitialise toutes les variables
if (isset($_SERVER['HTTP_COOKIE'])) {
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
$parts = explode('=', $cookie);
$name = trim($parts[0]);
setcookie($name, '', time() - 86400, '/', "", false, true);
}
return true;
} else {
return false;
}
N'oubliez pas de consulter la documentation du cours pour plus d'infos