简体   繁体   中英

PHP how to echo alert before header redirects to another page

I'm trying to make a functionality where, after the user logs in, an alert will popup saying "welcome USER_NAME", after which it will redirect to the user profile page.

I tried the sleep & flush methods, and even ob_start & ob_end_flush methods..but nothing seems to work, it just redirects to user profile after logging in without echoing the alert. Is there any way of fixing this problem?

Here is the part of the code:

<?php
if (isset($_SESSION['user'])) {
``$_SESSION['user'] = $uname;
``echo "<script> alert('Welcome $uname')</script>";
``header("location: dashboard.php");
}
?>

PHP's redirection with header("Location:xxx.php"); functionality does not allow any browser output.

You can use Javascript redirection (taking in consideration of program logic).

echo '<script>
alert(' + '"Welcome ' + $uname .'");
window.location.href="welcome.php";
</script>';

For simple javascript alerts, you can simply use window.location.href but if you need to show some advanced popups like bootstrap modals or sweet alerts you can use setTimeout which evaluates an expression after a specified number of milliseconds.

echo "<script> alert('Welcome $uname');
window.setTimeout(function(){


    window.location.href = 'http://fullpath/dashboard.php';

}, 3000);
</script>"

You can use javascript alert and then redirect it after specific timeout

echo '<script type="text/javascript">'; 
echo 'alert("Welcome $uname");';
echo 'window.location.href = "index.php";';
echo '</script>';

try upper instead of below code

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM