1

ユーザーが正常にログインできるようになった Web サイトを作成しましたが、ユーザーが属するグループに応じて、ログイン後に別のページにリダイレクトしたいと考えています。行「training_group」を持つデータベースがあり、たとえば、グループ 2013_1 に属している場合、ログイン後、homepage_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'; 
?>
4

1 に答える 1

0

正しい方向に進むためのスニペットをいくつか紹介します。

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 ();
}
于 2012-09-14T20:34:25.817 に答える