用PHP跟踪会话 - 我做得对吗?

时间:2012-11-04 03:52:04

标签: php session

我是第一次使用php开发人员;

我以这种方式跟踪会话:

session_start();
if (!isset($_SESSION['user']->iduser)) {
    die('Access denied. <br><a href=login.php>Please login</a>');
}

是正确的做法吗?

2 个答案:

答案 0 :(得分:2)

你的代码看起来好像你把一个整个对象存储到一个会话变量中,这不是一个好主意(可能占用大量空间,存储太多数据,甚至可能没有序列化) /反序列化?)。

此外,如果您的用户尚未经过身份验证,但您的代码会因为$_SESSION['user']尚未设置而发出警告 - 那么通过检查$_SESSION['user']->iduser,您将检查某个属性/ null对象的值。您的代码应该检查if (isset($_SESSION['user'])) {,然后可能验证。

我建议只在会话中存储“必需品”,例如用户的ID /用户名和加密密码。然后,在每个页面加载期间,您将根据数据库重新验证信息。这是每个页面加载的额外查询,但它是值得的(在我看来)。

答案 1 :(得分:1)

我想你真的在问这个问题:

  

通过会话中的唯一ID识别用户是否可以?

我的回答:是的。这通常是如何完成的,并且会在会话中正常工作。我不会这样使用cookie,但在服务器端会话存储中应该没问题。