Bonjour,
Je me permet d'écrire un post, je galère depuis plusieurs jours mais en vain
Voila je rencontre un petit problème avec mon code.
Je développe un petit espace membre et pour le moment j'en suis à l'inscription.
Et au dessus de mon formulaire je veux afficher toutes les erreurs de mon formulaire.
Pour cet exemple je vérifie que le nom et le prénom
Grâce à une classe que j'ai mise au point, si tout cela fonctionnerai (mais comme sa marche pas ><), ce serait censé m'afficher mes alertes flash.
Le problème :
Sa m'affiche qu'une seule erreur et non plusieurs
Ma class :
<?php
class FlashMessages {
// On construit la fonction
public function __construct() {
// Créer le tableau de session s'il n'existe pas déjà
if(!isset($_SESSION['flash_message']))
{
$_SESSION['flash_message'] = array(
'type' => null,
'message' => null
);
}
}
// On sauvegarde les messages en session
public function AjoutMessage($type, $message)
{
$_SESSION['flash_message'] = array(
'type' => $type,
'message' => $message
);
}
// Affichage
public function Affichage() {
if (isset($_SESSION['flash_message']['type']) AND isset($_SESSION['flash_message']['message'])) {
// On définit le type du message flash à travers une variable
$type = $_SESSION['flash_message']['type'];
// On définit le message flash à travers une variable
$message = $_SESSION['flash_message']['message'];
?>
<div class="alertForm--<?php echo $type; ?>">
<ul>
<?php for($i = 0; $i < count($message); $i++): ?>
<li>
<strong><?php echo $_SESSION['flash_message']['message']; unset($_SESSION['flash_message']['type']); ?></strong>
</li>
<?php endfor; ?>
</ul>
</div>
<?php
} else {
return false;
}
}
}
Voici mon Html
<div class="indexOfPage">
<div id="Content--Inner">
<ul class="indexOfPage--Group">
<li class="indexOfPage--GroupList">
<?php echo REGISTERPAGE; ?>
</li>
</ul>
</div>
</div>
<div class="formGroup">
<div id="Content--Inner">
<ul class="formGroup--Row">
<li class="formGroup--RowList">
<?php
$SessionMessage = new FlashMessages();
$SessionMessage->Affichage();
?>
<form method="POST" action="#">
<div class="champForm">
<label><?php echo PRENOM; ?></label>
<input type="text" name="prenom" class="formControl">
</div>
<div class="champForm">
<label><?php echo NOM; ?></label>
<input type="text" name="nom" class="formControl">
</div>
<div class="champForm">
<label><?php echo ADRESSEEMAIL; ?></label>
<input type="email" name="adresse_email" class="formControl">
<span style="font-size: 13px; font-style: italic; font-weight: 300;"><?php echo ALERTREGISTEREMAIL; ?></span>
</div>
<div class="champForm">
<button type="submit" name="form_inscription" class="buttonControl"><?php echo ONGLETACCOUNT1; ?></button>
</div>
</form>
</li>
<li class="formGroup--RowList">
<a class="accountFacebook"><i class="fa fa-facebook"></i><?php echo REGISTERFACEBOOK; ?></a>
<a class="accountGooglePlus"><i class="fa fa-google-plus"></i><?php echo REGISTERGOOGLEPLUS; ?></a>
</li>
</ul>
</div>
</div>
Je vous promet que je suis désespérer :/
Je vous remercie des réponses que vous pourriez 'apporter.
Bonne soirée :)
Bonjour,
J'ai tout refait au propre et simplifier les choses, tout cela fonctionne (il y a toujours un mais) mais, lors de l'affichage j'aimerais afficher une div (lors du foreach) histoire que sa me liste toute mes erreurs.
Une erreur par div, donc pour 2 erreurs, deux div.
Voici ma class :
<?php
class FlashMessages {
public function setFlash($message, $type = 'Error') {
$_SESSION['flash'][$message] = [
'type' => $type,
'message' => $message
];
}
public function displayMessages() {
if (isset($_SESSION['flash'])) {
?>
<?php
foreach ($_SESSION['flash'] as $flash) {
?>
<div class="alertNotify--Error">
<div class="notifyContent--Left">
<span></span>
</div>
<div class="notifyContent--Right">
<strong><?php echo $flash['message']; ?></strong>
</div>
</div>
<?php
}
unset($_SESSION['flash']);
?>
<?php
}
}
}
?>
Au moment du foreach, si je fais juste :
<?php echo $flash['message']; ?>
Sa me liste bien mes erreurs mais quand j'ai apporter la div, sa m'affiche q'une seule erreur.
Quelqu'un saurait pourquoi svp ?
Merci.