Bonjour,
En se basant sur les deux tutos de Grafikart (Gestion d'un espace membre et refactorisation) je viens de créer un espace membre (en utilisant les classes et objets) .
Une fois que l'utilisateur est connecté sur la page "account.php", je voudrais que s'affiche "Bienvenue .$USERNAME.", du coup j'obtiens une erreur: "UNDEFINED PROPERTY: STDCLASS::$USERNAME".
Le code que j'utilise:
<span>Bienvenue <?= $_SESSION['auth']->username ?></span>
Merci pour votre aide.
Bonsoir,
Cela veut dire que $_SESSION['auth'] n'a pas d'élément username dans l'objet.
Avez-vous bien fait un session_start(); ?
Que donnes un var_dump($_SESSION['auth']); ?
Carouge10 Merci de votre réponse rapide, j'utilise un autoloader (require 'inc/bootstrap.php';) je suppose qu'il doit automatiquement demarrer la session dès que j'en aurais besoin.
le var_dump donne Undefined variable: _SESSION !!!
Oui j'ai déja essayé mais ça sort l'erreur: "A session had already been started - ignoring session_start()"
Vous supposez ? Il serait bien de ne pas faire de copier-coller de code sans en étudier le contenu. Surtout pour le modifier.
Il faut mettre le session_start(); sur le fichier index.php qui est appelé en premier.
Quelle est l'aborescence de votre site ?
Une petite remarque : ce probleme se passe seulement lors de la confirmation du compte (redirection vers la page account.php apres avoir cliqué sur "activer mon compte"). et si l'utilisateur se déconnecter et se reconnecter tout rentre dans l'ordre !!
Salut,
on dirait qu'il y a 2 façons de se connecter,
une en cliquant sur 'connexion', et une en cliquant sur 'activer mon compte'.
On dirait que tu ne rempli la $_SESSION
QUE quand tu clic sur 'connexion'.
Regarde si tu le fais bien aussi quand on clic sur 'activer mon compte' pour voir.
Je connecte l'utilisateur directement une fois le compte est confirmé et là ça me sort cette erreur, j'ai modifié le code en faisant une redirection vers la page login apres la confirmation et lorsque je me connecte ça marche pas d'erreur !
Trouvé les amis ! et merci infiniment pour votre aide, l'erreur venait d'ici:
$user = $db->query('SELECT * FROM users WHERE id = ?', [$user_id])->fetch();
au lieu de:
$user = $db->query('SELECT confirmation_token FROM users WHERE id = ?', [$user_id])->fetch();