J'ai un message d'erreur stocké dans une variable de session que je souhaite afficher une seule fois. Ma méthode est de vérifier si elle est là, puis de faire écho et de la désinstaller après.Impossible de supprimer la variable de session après l'écho
<div class="signin">
<form name="signuser" action="php/signin_user.php" onsubmit="return validateForm()" method="POST">
<input type="text" name="email" placeholder="E-mail" value="<?php echo $_SESSION['signin']['email']; ?>"><br>
<input type="password" name="password" placeholder="Password"><br>
<input type="submit" value="Sign in">
</form>
<br>
<div id="login-error" style="display: none"></div>
<?php
if(isset($_SESSION['msg']['signin-error'])) { \t
echo '<div id="login-php-error">';
echo '<p>'.$_SESSION['msg']['signin-error'].'</p>';
echo '</div>';
}
if(isset($_SESSION['msg']['signin-error'])) {
unset($_SESSION['msg']['signin-error']);
}
if (isset($_SESSION['signin']['email']))
unset($_SESSION['signin']['email']);
?>
</div>
J'ai essayé avec = "" aussi bien:
<?php
if($_SESSION['msg']['signin-error'] != "") { \t
echo '<div id="login-php-error">';
echo '<p>'.$_SESSION['msg']['signin-error'].'</p>';
echo '</div>';
}
if($_SESSION['msg']['signin-error'] != "") {
unset($_SESSION['msg']['signin-error']);
}
if ($_SESSION['signin']['email'] != "")
unset($_SESSION['signin']['email']);
?>
Rien ne fonctionne. J'ai session_start() sur toutes mes pages. Il apparaît toujours à chaque rafraîchissement.
EDIT:
Il est évident que je suis nouveau à PHP et je vois maintenant que l'utilisation de session pour donner les commentaires des utilisateurs est stupide. J'ai fini par utiliser GET pour afficher les messages d'erreur et cela fonctionne très bien pour mon besoin. Merci pour l'aide!
vous devez démarrer la session si vous n'avez pas déjà –
J'ai Php session_start(); ?> Ontop toutes mes pages –
vérifier les erreurs puis http://php.net/manual/fr/function.error-reporting.php - Voir la source html, 'var_dump()' et echo sont tous des outils de débogage utiles. –