对不起,这个新手问题!我正在制作一个小网站,允许用户创建自己的帐户。这不是一个银行系统,而且有人不想破解它。也就是说,我试图让它合理安全,因为那里有很多无聊的脚本小子。PHP:用户登录会话和cookies
有人可以描述一个用户登录的基本工作流程,并有一个cookie设置可以让他们保持登录状态30天吗?
此刻,我有以下几点:
- 验证和消毒输入的数据。
- 检查提供的证书是否针对数据库中的bcrypt散列密码。
- 如果正确,则调用“登录”功能。
登录功能:
a。使用userID(具有两列的表格:SessionString和UserID)从数据库中删除任何会话数据。 b。将新会话数据添加到数据库(newy random generated string和UserID)。
c。将随机生成的字符串和UserID写入cookie。 d。设置$_SESSION("UserID")
与$userID
。
不过,尽管两个cookie被创建并写入,该$_SESSION("UserID")
保持空白......我猜,因为我不能给$_SESSION
写任何时候我喜欢?
即使修复一次,我如何使用存储在cookie中的数据来登录用户?我猜我不想在每一页上加载数据库。它仍然需要我创建一个数据库对象来查看cookie中的凭证是否正常。这是正确的方式吗?
再次,为新手问题道歉!
UPDATE:
是的,我明白$_SESSION
变量和饼干之间的区别。我在每页的顶部也有session_start()
(在<php
之后没有空行)。 $_SESSION("UserID")
只是空白。
下面是从页面顶部的代码:
<?php
session_start();
if(!isset($_SESSION['initiated'])) {
session_regenerate_id();
$_SESSION['initiated'] = true;
}
感谢您的帮助。
我不确定你是否已经完成了这个..但是你完成了setcookie吗?如果是,则使用$ _COOKIE您可以访问信息并执行登录部分。在做setcookie的时候,你可以设置过期到30天。 – dee 2012-02-24 16:33:41