Bonjour,
Je débute aujourd'hui en PHP (PHP 7.3)
J'ai besoin de véhiculer une variable (le rôle de l'utilisateur connecté) de pages en pages.
Dans ma première page, l'utilisateur se connecte. Ma toute première ligne est bien
<?php session_start(); ?>
La connexion l'amène sur une autre page avec cette même première instruction (session_start)
Je récupère son rôle via une requête SQL et je le stocke :
$_SESSION['NomRole'] = $ligne['NOM_ROLE'];
Tant que je reste sur cette page, tout se passe bien et je peux utiliser la variable $_SESSION['NomRole'] sans souci.
Par contre, dès que je passe sur la page suivante, malgré le session_start() en première ligne,
tout indique que $_SESSION est complètement vide. Pourtant je ne fait que cliquer sur un lien tout simple :
<li><a href=consultation.php>Consulter</a></li>
qui mène vers une page ultra simpliste :
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<?php
echo '<p> nom role = '.$_SESSION['NomRole'] . '</p>';
?>
</body>
</html>
Et voici le résultat alors que je suis bien connectée et que sur la page précédente mon rôle était clairement connu :
nom role =
Voilà, quand je lis les anciens posts à ce sujet, ça a l'air tellement évident et facile que je ne comprends pas pourquoi ça ne fonctionne pas chez moi.
Et j'ai fait des dizaines de tests, j'y suis depuis le milieu d'après midi... sans succès, quelles que soient les pages !
Idem quand j'interroge session_id(). Et visiblement mon PHP ne connait pas SID.
Comme j'ai besoin de connaitre les droits de l'utilisateur pour lui afficher les bons menus (sorte de back office), comment puis je faire pour transférer cette information de pages en pages ?
(je ne me penche pas sur les cookies car je ne sais pas si les utilisateurs finaux vont les accepter ou pas).
Merci pour votre aide
Bonne soirée