Bonjour,

Alors, voilà :

je fais un petit cms pour tester des trucs et des machins en php. Mais, sur plein de pages, l'utilisateur n'a pas besoin d'être connecté, et pas besoin de session.

Mais, par exemple dans l'en-tête, si et seulement si l'utilisateur est connecté, je veux mettre son login, etc...

Je voudrais donc un système qui me permette de savoir si un utilisateur est connecté ou non, mais ne pas avoir besoin d'ouvrir de session du tout s'il se trouve qu'il n'est pas connecté.

Donc, en gros, éviter de faire des choses du genre :

session_start();
...
if (isset($_SESSION["user"]) {...}

où on ouvre une session dans tous les cas, avant de s'apercevoir qu'en fin de compte il n'y en a pas besoin.

J'ai bricolé un truc qui marche, mais je ne sais pas
a) si c'est utile - quel est le coût d'une session sans données ?
b) s'il y a des solutions plus élégantes

Bref, j'utilise un cookie, et le code pour savoir si l'utilisateur est connecté ou non est alors du type :

if ($_COOKIE["connecte"]) {
if (! isset($_SESSION)) {
session_start();
}
... on peut maintenant regarder dans $_SESSION...
} else {
// pas de connexion, pas besoin de session.
}

Je n'essaie d'ouvrir la session que si le cookie est fixé - et qu'elle n'est pas déjà ouverte par ailleurs.

(je précise que tous les affichages sont faits après coup, ce qui rend la position de l'appel de session_start() beaucoup moins critique.

Donc (en me répétant sans vergogne), ma question est :
- est-ce que ça vaut la peine - pour un site avec beaucoup de visiteurs - de se fatiguer à faire ça ?
- est-ce qu'il y a "mieux" ?