-3

假设我有一个登录页面 login.php,如果用户登录,那么他应该被重定向到 userpanel.php。如何在两个页面上使用会话,这样只有经过验证的会话用户才能看到第二页而没有其他人可以看到那个页面。

4

2 回答 2

1

您需要在第一页开始一个会话并设置一个变量(取决于数据库或某种身份验证:

session_start();
...
// if authenticated, set this variable
$_SESSION['loggedin'] = TRUE;

然后在第二页检查变量是否存在:

session_start()
if ($_SESSION['loggedin'] == TRUE) {
   // Do stuff
} else {
   header("Location: http://example.com/login.php");
   exit();
}
于 2013-03-08T14:19:41.070 回答
0

如上所述,在您的 login.php 页面中设置会话。成功登录后,我们设置会话以便脚本知道。

登录.php

session_start();
....
$_SESSION['loggedin'] == TRUE;

为了简单起见并避免在每个文件中重复自己,您应该编写一个函数来检查用户是否已登录。

用户面板.php

session_start();
requireLogin();

.. all the other stuff you want to do..

该函数可以保存在您包含在每个页面中的通用文件中,并且可以很简单:

function requireLogin(){
    if($_SESSION['loggedin'] !== TRUE){
        header('Location: login.php');
    }
}

尽管您可以扩展它以检查其他级别的身份验证;如果用户是管理员、已登录、版主等。

于 2013-03-08T15:00:08.757 回答