トップページとログインの継続


ログイン後のページでは,セッションに保存された $_SESSION['id']$_SESSION['time'] を確認します。ここではまだ共通関数化していないため,ログイン確認処理を top_page.php に直接書いています。

source_dbconnect/top_page.php

<?php
// top_page.php: トップページ
session_start();
require_once __DIR__ . '/dbconnect.php';
function h($value): string
{
    return htmlspecialchars((string)$value, ENT_QUOTES, 'UTF-8');
}

// ログイン状態を確認する
if (!isset($_SESSION['id'], $_SESSION['time'])) {
    header('Location: index.php');
    exit();
}
if ($_SESSION['time'] + 3600 <= time()) {
    header('Location: logout.php');
    exit();
}
$_SESSION['time'] = time();

$sql = 'SELECT * FROM member WHERE id = :id';
$stmt = $dbh->prepare($sql);
$stmt->bindValue(':id', (int)$_SESSION['id'], PDO::PARAM_INT);
$stmt->execute();
$member = $stmt->fetch();
if (!$member) {
    header('Location: logout.php');
    exit();
}

?>
<!DOCTYPE html>
<html lang="ja">
<head><meta charset="UTF-8"><title>トップページ</title></head>
<body>
<h1>講義支援システム</h1>
<p>ようこそ,<?php echo h($member['name']); ?>さん</p>
<ul>
    <li><a href="learning.php">教材管理</a></li>
    <li><a href="task.php">課題提出</a></li>
    <li><a href="task_list.php">提出状況確認</a></li>
    <li><a href="submission.php">全体提出状況</a></li>
    <li><a href="logout.php">ログアウト</a></li>
</ul>
</body>
</html>

後でこのログイン確認処理は common/common.phplogin_check() 関数へ移します。


Copyright (c) 2014-2026 T.Kouya Laboratory @ Otemon Gakuin University. All rights reserved.