首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据PHP中的会话数据将用户重定向到不同的目录?

如何根据PHP中的会话数据将用户重定向到不同的目录?
EN

Stack Overflow用户
提问于 2015-02-26 11:01:13
回答 1查看 856关注 0票数 0

我有一个基于PHP/MySQL的网站,包含会员页面的文件夹和管理页面的文件夹。我想要引导用户到不同的页面,根据他们的登录方式-作为一个成员或管理员(从主用户页面)-这是我尝试过的功能,但它不工作。

我如何编写一个函数来实现这个功能呢?

代码语言:javascript
复制
function connectadmin($level) {
    if ($level === "Administrator"){
        include('admin/home.php');
    }elseif ($level === "Member"){
        include('member/home.php');
    }
}

connectadmin($level);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-26 11:02:31

那么,您应该重定向用户,而不是包含文件:

代码语言:javascript
复制
 // At beggining of this file insert this line
 // Start session
 session_start();

function connectadmin($level) {
    if ($level === "Administrator"){

        // Set user role
        $_SESSION['role'] = 'Administrator';

        // Redirect user
        header('Location: admin/home.php');
        exit();
    }elseif ($level === "Member"){

        // Set user role
        $_SESSION['role'] = 'Member';

        // Redirect user
        header('Location: member/home.php');
        exit();
    }
}

// $level should be something you retrieve from your Database for example
// And perhaps, should be 'Administrator' or 'Member' following your example
connectadmin($level);

在重定向之后,用户不要忘记验证登录用户是否可以访问重定向页面。

编辑:例如,如果您想验证用户是否是管理员,并且可以访问admin/ have . the页面,请执行以下操作:

代码语言:javascript
复制
// You should get from your database, some file or use sessions, 
// in your function I have used sessions, so lets use them here too

// At beggining of your file use this
session_start();

// If user is not Administrator
if($_SESSION['role'] !== 'Administrator'){

    // It's not admin, let redirect him to somewhere else or show him a Access not allowed page
    header('Location: accessNotAllowed.php');
    exit();

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28740672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档