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

2 réponses


Grafikart
Réponse acceptée

Dans la fonction qui redirige met un die ou exit après le header location

revlam
Auteur

Oooh mais quel idiot !
C'est bien vu merci pour ton aide :)