2
votes

PHP comment faire écho à l'alerte avant que l'en-tête ne redirige vers une autre page

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");
}
?>


1 commentaires

Mieux vaut écrire la redirection en Javascript ( document.location = ... ), après alert () , cela devrait fonctionner.


3 Réponses :


6
votes

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>';


0 commentaires

1
votes

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


5 commentaires

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.



1
votes
``echo "<script> alert('Welcome $uname')</script>";
``header("location: dashboard.php");

1 commentaires

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.