将会话映射到用户

时间:2009-06-26 10:19:36

标签: php flex

当我登录时,会生成一个新会话。我怎样才能知道会话的生成对象是什么?

我正在获取会话值,但我如何知道该会话的用户并将其重定向到该页面?

1 个答案:

答案 0 :(得分:2)

您不希望在用户登录时创建(新)会话。您可以在每个页面上创建/恢复会话。

这里有一些分解为要点的例子。

<强>的login.php

<?php
session_start();
if ($_POST['user'] == 'john' && $_POST['pwd'] == 'password') {
    $_SESSION['loggedIn']  = true;
    $_SESSION['firstname'] = 'John';
}
?>

<强> admin.php的

<?php
session_start();
if (!isset($_SESSION['loggedIn']) || !$_SESSION['loggedIn']) {
    header('location: login.php');
    exit();
}

echo 'Hello ' . $_SESSION['firstname'] . '!';
?>
  • 用户访问admin.php
  • session_start()创建一个新会话。所有数据($ _SESSION)都存储在服务器上。具有会话ID的新cookie存储在客户端。
  • 用户被重定向到login.php,以便没有$_SESSION['loggedIn']密钥设置为true
  • session_start()通过浏览器发送的Cookie恢复会话
  • 用户提交表单并进行身份验证。在$_SESSION数组中,我们注意到了这一点。
  • 用户返回admin.php,现在可以访问该页面。