重定向基于存储在mysql数据库中的用户角色


redirect based on user role stored in mysql database

我创建了一个网站,用户现在可以成功登录,但根据用户所在的组,我希望在登录后将他们重定向到不同的页面。我有一个数据库,其中有一行"training_group",例如,如果他们在组2013_1中,则在登录后会将他们定向到主页_20131.php。

我一直在网上寻找教程,并找到了一个带有开关功能的可能解决方案?但我不确定如何/在哪里实现这一点。我刚开始学习php,如果有任何建议,我将不胜感激!

现在,我的登录页面是这样的:

<?php
include 'core/init.php'; 
if (empty($_POST) === false) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    if (empty($username) === true || empty($password) === true) {
        $errors[] = 'please input a username and password first! ';
    } else if (user_exists($username) === false)    {
        $errors[] = 'We could not locate you in our database.';
    }    
    $login = login($username, $password);
    if ($login === false) {
        $errors [] = 'That username/password combination is incorrect';
    }    
    else {
        $_SESSION['user_id'] = $login;
        header('Location:logged_in/templates/logged_in_home.php');
        exit ();
    }
}
else {
    $errors [] = 'No data received';
}
include 'includes/overall/header.php';
if (empty ($errors) === false) {
    ?>
    <h2>We tried to log you in, but...</h2>
    <?php
    echo output_errors($errors);
}
include 'includes/overall/footer.php'; 
?>

以下是一些片段,它们可能会让您朝着正确的方向前进。

function login($username, $password){
    //... your login code .. database call
    if($validLogin){
        $user_id = id from database;
        $group_id = id from database;
        $return = array('user_id' => $user_id, 'group_id' => $group_id);
    }
    else{
        $return = false;
    }
    return $return;
}
$userinfo = login($username, $password);
if ($userinfo === false) {
    $errors [] = 'That username/password combination is incorrect';
}    
else {
    $_SESSION['user_id'] = $userinfo['user_id'];
    $_SESSION['group_id'] = $userinfo['group_id'];
    $page = 'homepage_' . str_replace('_', '', $userinfo['group_id'] . '.php';
    header('Location:' . $page);
    exit ();
}