Bonjour à tous,
Je suit avec enthousiasme l'actualité de grafikart (que j'ai découvert tout tout récemment avec le tuto 'Un site web de A à Z), merci pour le travail fourni !!
Je développe un petit site avec mon moteur MVC et je souhaitais y ajouter une authentification (c'est ainsi que je suis tombé sur le tuto, J-7). J'ai tout mis en place tel qu'indiqué dans le tuto (en faisant quelques adaptation pour coller à mon mvc). La seule différence est que je stock les sessions en BDD via PDO et session_set_save_handler. Voilà pour le contexte.
Mon problème : j'aimerais pouvoir dire à l'utilisateur qu'il est connecté sur le site après être passé par le formulaire de login. Je fais donc logiquement :
// Après validation des données du formulaire
$user = \Objet user correspondant aux données saisies, vérifiées en BDD\
// Ecriture de la session
$this->Session->write('User',$user);
// J'envoi le message
$this->Session->setFlash('Vous êtes maintenant connecté');
// Ensuite je redirige avec une fonction perso
$this->go('home');
Pour rappel la fonction setFlash du tuto :
public function setFlash($message,$type = 'success'){
$_SESSION'flash'] = array(
'message' => $message,
'type' => $type
);
}
J'affiche :
echo $this->Session->flash();
Pour rappel la fonction flash du tuto :
public function flash(){
if(isset($_SESSION'flash']'message'])){
$html = '<div class="alert-message '.$_SESSION'flash']'type'].'"><p>'.$_SESSION'flash']'message'].'</p></div>';
$_SESSION'flash'] = array();
return $html;
}
}
Sauf que codé ainsi, la session contenant le message ($_SESSION'flash'] = array();) est effacée avant d'être affichée, logique ! Avez-vous une idée pour contourner ce problème ? Car du coup mon message n'est jamais affiché...
J'espère avoir été suffisamment clair dans mes explications.
Bonne soirée à tous et bon début de semaine