J'essaie de créer une fonctionnalité où, après la connexion de l'utilisateur, une alerte apparaîtra disant "Bienvenue USER_NAME", après quoi elle sera redirigée vers la page de profil de l'utilisateur.
J'ai essayé les méthodes de veille et de vidage , et même les méthodes ob_start & ob_end_flush..mais rien ne semble fonctionner, il redirige simplement vers le profil utilisateur après la connexion sans faire écho à l'alerte. Existe-t-il un moyen de résoudre ce problème?
Voici la partie du code:
<?php if (isset($_SESSION['user'])) { ``$_SESSION['user'] = $uname; ``echo "<script> alert('Welcome $uname')</script>"; ``header("location: dashboard.php"); } ?>
3 Réponses :
La redirection PHP avec header ("Location: xxx.php");
la fonctionnalité ne permet aucune sortie de navigateur.
Vous pouvez utiliser la redirection Javascript (en tenant compte de la logique du programme).
echo '<script> alert(' + '"Welcome ' + $uname .'"); window.location.href="welcome.php"; </script>';
Pour les alertes javascript simples, vous pouvez simplement utiliser window.location.href
mais si vous avez besoin d'afficher des fenêtres contextuelles avancées telles que des modaux d'amorçage ou des alertes douces, vous pouvez utiliser setTimeout
qui évalue une expression après un nombre spécifié de millisecondes.
echo "<script> alert('Welcome $uname'); window.setTimeout(function(){ window.location.href = 'http://fullpath/dashboard.php'; }, 3000); </script>"
Vous pouvez utiliser l'alerte javascript, puis la rediriger après un délai d'expiration spécifique
Mieux vaut mettre le alert ()
en dernier et espérer que cela ne bloquera pas le chronomètre. Ou testez simplement votre code dans jsfiddle.net
Vous avez peut-être raison, mais il est également utile d'afficher d'autres popups comme des modèles bootstrap ou des alertes douces avec ceci
Les popups Bootstrap ne ressemblent en rien à alert ()
, ce dernier bloquera l'exécution de Javascript, le premier ne le fera pas.
Oui. c'est ce que je dis. Si vous avez besoin d'afficher des modèles bootstrap ou des alertes douces, ce serait utile
Non, ce n'est pas utile. Il ne sert à rien d'attendre 3 secondes avant une redirection, lorsque vous utilisez alert ()
. Testez votre code, voyez ce qu'il fait! Je comprends que vous souhaitiez afficher un message pendant 3 secondes, puis rediriger, mais ce n'est pas ce que fait votre code.
``echo "<script> alert('Welcome $uname')</script>"; ``header("location: dashboard.php");
Bienvenue dans Stack Overflow. Bien que votre réponse soit valide, c'est la même chose qu'une autre réponse publiée il y a 12 minutes. Cela rend votre publication moins utile. Si vous pensez que c'est faux, vous pourriez expliquer dans votre réponse pourquoi votre réponse est meilleure que l'autre.
Mieux vaut écrire la redirection en Javascript (
document.location = ...
), aprèsalert ()
, cela devrait fonctionner.