我有一些jsp页面,我必须在php页面中进行转换。在我的jsp中,我可以通过此request.getUserPrincipal().getName()
获取已登录的用户。如何在我的php页面中执行此操作以获取已登录的用户?
答案 0 :(得分:0)
您可以拥有一个名为logged_users
的表,其结构如下:
id | user_id | created
------------------------------------------------------------------------
abc | 1 | 11-12-2014 12:31:51
xyz | 2 | 11-12-2014 08:21:13
id有一些唯一的id
,如UUID
或随机生成的字符串。 user_id是要记住的用户的id。创建时是创建记录的时间(因此您可以在X时间之后注销用户)。
现在,如果用户成功登录并希望记住,则添加一个具有唯一ID的新记录,并将user_id
添加到logged_users
。您还可以使用setcookie()
创建一个新Cookie,其中包含您刚刚插入的随机生成的id
。
现在,当用户下次请求该网站时,您会看到他已存储了记忆cookie。您获取该记录,检查它是否尚未过期,并使用user_id
列登录相应的用户。这样,您就不会在cookie中存储敏感信息。
OR
首先,确保在需要了解登录状态的所有页面上启用会话变量,方法是将其放在这些页面的开头:
session_start();
接下来,当用户通过登录表单提交用户名和密码时,通常会通过查询包含用户名和密码信息的数据库(如MySQL)来检查用户名和密码。如果数据库返回匹配项,则可以设置会话变量以包含该事实。您可能还想包含其他信息:
if (match_found_in_database()) {
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username; // $username coming from the form, such as $_POST['username']
// something like this is optional, of course
}
然后,在依赖登录状态的页面上,输入以下内容(不要忘记session_start()
):
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
echo "Welcome to the member's area, " . $_SESSION['username'] . "!";
} else {
echo "Please log in first to see this page.";
}
这些是基本组成部分。如果您需要有关SQL方面的帮助,可以在网上找到很多教程。
希望这会对你有所帮助。