Si on pouvait modifier les infos du $_SESSION en touchant aux cookies ça n'aurait aucun intérêt, on utiliserait que les cookies et point barre
Le $_SESSION stocke un unique cookie, qui est l'identifiant de session. Une fois ton utilisateur connecté et que tu as instauré le session_start(), ton utilisateur à cet unique identifiant en cookie. Si il désactive les cookies ça passe en paramètre d'URL.
Tout ce qui est dans le $_SESSION est sur ton serveur, l'utilisateur ne peut rien toucher, il peut juste supprimer le cookie de session.
Mais l'identifiant de session de chaque utilisateur est pas statique, un même utilisateur aura un identifiant différent si il se connecte depuis un autre PC ou un autre navigateur, ou si il supprime le cookie de session.
L'utilisation des session te permettra de savoir quel utilisateur identifié est sur la page d'administration, et de le rediriger si il n'est pas autorisé. Mais pour l'identification, et le grade, tu dois utiliser une base de donnée ; ton utilisateur se connecte avec pseudo et mdp, tu vas donc vérifier si ce qu'il a rentré colle avec une entrée de ta BDD utilisateurs, puis tu stocke la clé primaire de l'utilisateur en question dans le $_SESSION. Tu sauras donc sur les autres pages où il va que c'est bien cet utilisateur. Et sur une page admin, tu vérifie donc dans la base de donnée que l'utilisateur identifié a bien le grade admin, et là il peut rentrer
Après, comme Thymotep, je suis pas sûr d'avoir vraiment compris ce que tu veux faire et comment tu as organisé ton site (tu as pas évoqué de base de donnée donc c'est pour ça que je t'en parles)...