PHP как вывести предупреждение перед перенаправлением заголовка на другую страницу - PullRequest
1 голос
/ 12 апреля 2019

Я пытаюсь создать функциональность, при которой после входа в систему появляется всплывающее сообщение с надписью "welcome USER_NAME", после чего оно перенаправляется на страницу профиля пользователя.

Я попробовал методы sleep & flush и даже методы ob_start & ob_end_flush ... но, похоже, ничего не работает, он просто перенаправляет в профиль пользователя после входа в систему, не отражая предупреждение. Есть ли способ решить эту проблему?

Вот часть кода:

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

Ответы [ 3 ]

3 голосов
/ 12 апреля 2019

Перенаправление PHP с функцией header("Location:xxx.php"); не позволяет выводить данные из браузера.

Вы можете использовать перенаправление Javascript (с учетом логики программы).

echo '<script>
alert(' + '"Welcome ' + $uname .'");
window.location.href="welcome.php";
</script>';
1 голос
/ 12 апреля 2019

Для простых предупреждений javascript вы можете просто использовать window.location.href, но если вам нужно показать некоторые расширенные всплывающие окна, такие как модальности начальной загрузки или сладкие оповещения, вы можете использовать setTimeout, который оценивает выражение по истечении указанного количества миллисекунд.

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


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

}, 3000);
</script>"

Вы можете использовать предупреждение javascript, а затем перенаправить его по истечении определенного времени ожидания

0 голосов
/ 12 апреля 2019
echo '<script type="text/javascript">'; 
echo 'alert("Welcome $uname");';
echo 'window.location.href = "index.php";';
echo '</script>';

попробуйте верхний вместо кода ниже

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