PHP中的会话ID和变量

时间:2011-03-14 18:47:15

标签: php session cookies session-variables session-cookies

我有一个登录页面,一旦用户成功登录,它就会回显到他们个人页面的链接。当该页面加载时,我希望它检查用户是否可以访问它,这样有人就不会尝试在URL中输入www.mywebsite.com/bob.php。我尝试使用cookie来发送用户信息但我意识到在html写入页面后你不能使用cookie。有谁知道这样做的有效方法也很简单?感谢

2 个答案:

答案 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标题)。