Cours 09 - Cookies & Session

Objectifs

Déroulement

  1. Introduction et retour sur le questioniaire passé
  2. Petit recap de $_SESSION et de $_COOKIE avec les exemples de code
  3. Exercice 09
  4. 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();
// 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;
}
if(isset($_COOKIE[$nom_cookie])){
    return $_COOKIE[$nom_cookie];
} else {
    return false;
}
if(isset($_COOKIE[$nom_cookie])){
    setcookie($nom_cookie, $valeur_cookie, time() + $nb_jours*24*3600, "/", "", false, true);
    return true;
} else {
    return false;
}
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