我有一个登录页面,一旦用户成功登录,它就会回显到他们个人页面的链接。当该页面加载时,我希望它检查用户是否可以访问它,这样有人就不会尝试在URL中输入www.mywebsite.com/bob.php。我尝试使用cookie来发送用户信息但我意识到在html写入页面后你不能使用cookie。有谁知道这样做的有效方法也很简单?感谢
答案 0 :(得分:4)
用户登录后,将其ID分配给会话变量:
<?php
session_start();
$_SESSION["userid"] = $userid;
?>
在受保护的页面上,检查用户是否设置了$ _SESSION [“userid”]变量:
<?php
session_start();
if (isset($_SESSION["userid"])) {
//show page
}else{
echo "No rights";
}
?>
答案 1 :(得分:1)
确实,当输出已经发送到浏览器时,您无法设置cookie。一个有用的技巧是使用output buffering。基本上,您通过调用ob_start()
开始代码并以ob_end_flush()
结束。现在,您可以在代码中的任何位置设置cookie(以及任何HTML标题)。