我尝试创建一个会话,要求用户在访问页面之前登录。基本上我希望他们在被重新定向到登录页面之前被警告他们需要登录。
<html>
<body>
<?php
if (isset($_SESSION['username'])) {
$username = $_SESSION['username'];
echo "<p>Username: $username</p>\n";
} else {
header('Location: login_home.html');
echo "<script type='text/javascript'>alert('Please login to view this page')</script>";
}
?>
</body>
</html>
目前它只是在没有提醒任何信息的情况下重新指挥。
答案 0 :(得分:2)
您无法使用php header()
重定向并且之前已输出。这是因为,正如名称所说,它将重定向用户只是HTTP标头。因此,这将在呈现浏览器内容之前发生,如果在调用header()
之前有输出,则会通过php引发错误。
但你可以简单地使用javascript重定向:
<script type='text/javascript'>
alert('Please login to view this page');
window.location.replace('login_home.html');
</script>