【发布时间】:2014-06-10 01:15:09
【问题描述】:
在我的项目中,我需要设置单独的方法来设置会话实时: 1) 如果用户设置“记住我”-> 将信息写入 cookie -> 如果 cookie 变量可用,则设置 session time-live 未设置(尽可能长)。当用户从 cookie 重新加载页面信息时写入会话变量。如果用户关闭浏览器,则再次打开浏览器并从 cookie 重新启动会话加载站点 -> 信息(如果 cookie 信息可用)。 2)如果用户未设置“记住我”会话必须从我们的 24 日(1 天)到期。
session_set_cookie_params(3600);
session_start();
include ("blocks/bd.php");
if (isset($_COOKIE['passwordCode'])) {
$passwordCode = $_COOKIE['passwordCode'];
$login = $_COOKIE['login'];
$personalInfo = mysql_query("SELECT * FROM users WHERE password='$passwordCode' AND login='$login'", $db);
$personalInfoData = mysql_fetch_array($personalInfo);
$_SESSION['password'] = $personalInfoData['password'];
$_SESSION['login'] = $personalInfoData['login'];
$_SESSION['userName'] = $personalInfoData['userName'];
$_SESSION['phone'] = $personalInfoData['phone'];
$_SESSION['email'] = $personalInfoData['email'];
$_SESSION['id'] = $personalInfoData['id'];
$_SESSION['role'] = $personalInfoData['role'];
$_SESSION['companyRelation'] = $personalInfoData['companyRelation'];
}
if (isset($_SESSION['login']) && isset($_SESSION['password'])) {
$personalInfo = mysql_query("SELECT * FROM users WHERE password='$_SESSION[password]' AND login='$_SESSION[login]'", $db);
$personalInfoData = mysql_fetch_array($personalInfo);
}
使用此代码会话设置时间无法正常工作。
【问题讨论】:
-
您的代码根本不做任何事情来处理您的数据库登录查询不返回结果的情况。另外,如果您已经登录了用户,为什么要在每次加载页面时重新查询数据库以获取用户信息?您应该能够将其存储在会话中。除此之外,我不确定你在这里问什么。
标签: php session-cookies session-timeout