Bonjour,

Je rencontre un petit soucis (dont je ne comprends pas la raison) d'affichage d'erreurs/validations dans mon Contrôleur permettant de gérer l'ajout de données en BDD.
A savoir que lors du cas où l'ajout a fonctionné, le message "Votre roman a bien été posté" s'affiche, mais pas les autres...
Je n'arrive pas a savoir d'où peut venir mon problème. On m'a déjà expliqué que dans 'pageAjoutRoman', seul le premier paramètre est pris en compte et que pour les autres, il faut que je les pré-remplisse en vide (= ' ' ) si je voulais un résultat mais ça n'a pas résolu le problème non plus...

Contrôleur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
    public function pageAjoutRoman($msgErreurAjouterRoman = '', $msgValideAjouterRoman = '') {
        if (!isset($_SESSION['nomUtilisateur'])) {
            header("Location: index.php?action=pageConnexion");
        }
        $vue = new Vue("PageAjoutRoman", "Page d'Administration - Ajouter un Roman");
        $vue->genererPageEspaceAdmin(array('msgErreurAjouterRoman' => $msgErreurAjouterRoman, 'msgValideAjouterRoman' => $msgValideAjouterRoman));
    }
 
    public function ajouterRoman() {
        if (isset($_POST['ajouterRoman']) && ($_POST['auteurPost']) && ($_POST['titrePost']) && ($_POST['contenuPost'])) {
            $post = new Post([
                'auteurPost' => $_POST['auteurPost'],
                'titrePost' => $_POST['titrePost'],
                'contenuPost' => $_POST['contenuPost']
            ]);
            if (!$post->auteurValide()) {
                $msgErreurAjouterRoman = '<p style="color:red">Erreur : Le nom de l\'auteur est invalide</p>';
                $this->pageAjoutRoman($msgErreurAjouterRoman);
            } elseif (!$post->titreValide()) {
                $msgErreurAjouterRoman = '<p style="color:red">Erreur : Le titre du roman est invalide</p>';
                $this->pageAjoutRoman($msgErreurAjouterRoman);
            } elseif (!$post->contenuValide()) {
                $msgErreurAjouterRoman = '<p style="color:red">Erreur : Le contenu du roman est invalide</p>';
                $this->pageAjoutRoman($msgErreurAjouterRoman);
            } else {
                $this->postManager->add($post);
                $msgValideAjouterRoman = '<p style="color:green">Votre roman a bien été posté</p>';
                $this->pageAjoutRoman($msgValideAjouterRoman);
            }
        } else {
            $this->pageAjoutRoman();
        }
    }

Ce qui me permet d'afficher les messages dans ma vuePageAjoutRoman (seul le $msgValideAjouterRoman fonctionne ici) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<?php
if (!empty($msgErreurAjouterRoman)) {
    echo $msgErreurAjouterRoman;
}
if (!empty($msgValideAjouterRoman)) {
    echo $msgValideAjouterRoman;
}
?>

Et la classe Vue (au cas où) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
    public function genererPageEspaceAdmin($donnees) {
        // Génération de la partie spécifique de la vue, semblable a la fonction generer mais pour un autre template et styleConnexion.css
        $contenu = $this->genererfichier($this->fichier, $donnees);
        // Génération du gabarit commun utilisant la partie spécifique
        $vue = $this->genererfichier('Vue/templateEspaceAdmin.php', array('titre' => $this->titre, 'contenu' => $contenu));
        // Renvoi de la vue au navigateur
        echo $vue;
    }
Je vous remercie beaucoup pour vos lanternes