Bonjour à tous,
Je travaille actuellement sur un site et j'ai besoin de créer des sessions pour stocker facilement diverses infos (notamment le pseudo de l'utilisateur, la date de sa dernière connexion ...).
J'ai essayé d'exploiter la documentation officielle mais elle est peu claire, notamment sur les modifications réalisables.
Du coup, j'utilise ça :
- Dans mon index.php :
- Dans le controller qui gère l'authentification :
- Dans le controller qui gère la page d'accueil du compte utilisateur :
Mon problème est qu'une fois que je change de page, j'obtiens une erreur :
Variable "session" does not exist.
D'où vient le problème ?
Est-ce que je dois déclarer 'session' => $_SESSION dans chaque controller qui gère les pages utilisateur ?
Est-ce que je dois faire une manip pour que $_SESSION soit accessible dans toutes les pages ?
Sur un forum, un utilisateur suggère ça :
Mais ce code est à mettre où ? Dans le controller une fois qu'on a vérifié que le mot de passe est le bon ?
Merci d'avance pour votre aide.
Modifié par AlexP (31 Dec 2017 - 17:43)
Je travaille actuellement sur un site et j'ai besoin de créer des sessions pour stocker facilement diverses infos (notamment le pseudo de l'utilisateur, la date de sa dernière connexion ...).
J'ai essayé d'exploiter la documentation officielle mais elle est peu claire, notamment sur les modifications réalisables.
Du coup, j'utilise ça :
- Dans mon index.php :
$app->register(new Silex\Provider\SessionServiceProvider());
- Dans le controller qui gère l'authentification :
session_start();
$_SESSION['username'] = $pseudo;
$_SESSION['status'] = $data['status'];
$_SESSION['lastConnection'] = $data['lastConnection'];
- Dans le controller qui gère la page d'accueil du compte utilisateur :
return $app['twig']->render('ownpage_root.twig', [
'pseudo' => $pseudo,
'session' => $_SESSION
]);
Mon problème est qu'une fois que je change de page, j'obtiens une erreur :
Variable "session" does not exist.
D'où vient le problème ?
Est-ce que je dois déclarer 'session' => $_SESSION dans chaque controller qui gère les pages utilisateur ?
Est-ce que je dois faire une manip pour que $_SESSION soit accessible dans toutes les pages ?
Sur un forum, un utilisateur suggère ça :
Si tu utilise twig sans symfony quand tu crée ton environnement twig
$session = new Session();
$session->start();
$twig->addGlobal('session', $session);
Et après dans tes pages twig ta variables sera session
Mais ce code est à mettre où ? Dans le controller une fois qu'on a vérifié que le mot de passe est le bon ?
Merci d'avance pour votre aide.
Modifié par AlexP (31 Dec 2017 - 17:43)