Bonsoir,
J'ai un petit soucis avec mon système de membres (tutoriel suivi). Donc à chaque fois que le membre a des informations qui changent (par exemple, le pseudo), il doit se reconnecter afin qu'il puisse voir le changement opéré. Alors que normalement, cela devrait se faire par rapport au rafraichissement de la page (à moins que je me trompe!).
Voici quelques parties de mes codes :
<?php
if (!empty($_POST) && !empty($_POST['email']) && !empty($_POST['password']))
{
require_once 'inc/db.php';
$req = $bdd->prepare('SELECT * FROM users WHERE email = :email AND confirmed_at IS NOT NULL');
$req->execute(['email' => $_POST['email']]);
$user = $req->fetch();
if($user == null){
$_SESSION['flash']['danger'] = 'L'utilisateur n'existe pas';
}
elseif (password_verify($_POST['password'], $user->password)) {
session_start();
$_SESSION['auth'] = $user;
$_SESSION['flash']['success'] = 'Vous êtes maintenant connecté !';
header('Location:./account.php');
exit();
} else {
$_SESSION['flash']['danger'] = 'Idenfifiant ou mot de passe incorrecte !';
header('Location:./login.php');
}
}
?>
Lorsque le prénom est mis à jour dans la base de données, l'affichage du nouveau devrait être imminent et automatique. Hors, afin que l'affichage prenne effet, l'utilisateur doit se déconnecter. Hors, j'aimerais que cela soit fait automatiquement.
Voici comment j'affiche mes informations :
echo $_SESSION['auth']->prenom;
Merci par avance aux personnes qui me porteront secours :)
Legendary
Tu as deux méthodes :
Ta session est créée à la connexion de l'utilisateur. Quand il modifie son pseudo, la session n'est pas modifiée. Tu peux donc faire en sorte que lorsqu'un utilisateur modifie son profil, la session prend les nouvelles infos.
$_SESSION['flash']['danger'] = "L'utilisateur n'existe pas"; // Attention quand tu utilise des simple quotes dans tes phrases
J'ai vu la fonction session_reset mais je ne suis pas sûr.
Je ne vois pas comment faire ça du coup (n'étant pas encore expérimenté avec les SESSIONS et/ou COOKIE)
La solution "soit tu ne mets que l'ID en session et à chaque chargement de page tu charges les infos", c-a-d une requête SELECT ?
Quelle est la solution la plus simple des deux selon vous ?
Oui, au début de chaque page, s'il a un ID dans sa session, tu chargesavec un select les autres infos
Les deux se valent je pense
D'accord, je vais essayer ça alors. Je vais carrément créer une fonction comme ça, encore plus simple :)
Merci AlexJM.