PHP ログイン後にユーザー名を表示する方法

PHPでログイン後でユーザー名を表示するには、次の手順を実行する必要があります。

  1. ログインページを作成し、ユーザー名とパスワードを入力するフォームを含めます。
  2. データベースの中のユーザーテーブルと比較することで、ユーザーが入力したユーザー名とパスワードが正しいかどうかPHPで検証できます。
  3. $_SESSION[‘username’] = $username;
  4. ログイン後の画面(例えばトップページ)上でセッション変数が存在するかどうかをチェック。存在すればユーザー名を表示する。
  5. セッション変数からユーザー名をエコーで出力しました

簡単なサンプルコードを次に示します。

ログインページ(login.php)

<?php
session_start();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // 进行用户名和密码验证,此处假设验证通过
    if ($username === 'admin' && $password === 'admin123') {
        $_SESSION['username'] = $username;
        header('Location: index.php'); // 跳转到首页
        exit();
    } else {
        $error = '用户名或密码错误';
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>登录页面</title>
</head>
<body>
    <h2>登录</h2>
    <?php if (isset($error)) { echo $error; } ?>
    <form method="POST" action="">
        <label for="username">用户名:</label>
        <input type="text" name="username" id="username" required><br>
        <label for="password">密码:</label>
        <input type="password" name="password" id="password" required><br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

トップページ(index.php):

<?php
session_start();

if (!isset($_SESSION['username'])) {
    header('Location: login.php'); // 未登录,跳转到登录页面
    exit();
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>首页</title>
</head>
<body>
    <h2>欢迎,<?php echo $_SESSION['username']; ?></h2>
    <!-- 显示用户名 -->
    <p>这是首页内容</p>
</body>
</html>

ユーザーが正常にログインすると、セッション変数 $_SESSION[‘username’] にそのユーザーのユーザー名が保存されます。トップページではそのセッション変数の有無を確認し、ユーザー名を表記します。なお、セッション変数を使用するためには、セッション変数を使用するページの冒頭で session_start() 関数を呼び出す必要があります。

bannerAds