PHP ログイン後にユーザー名を表示する方法
PHPでログイン後でユーザー名を表示するには、次の手順を実行する必要があります。
- ログインページを作成し、ユーザー名とパスワードを入力するフォームを含めます。
- データベースの中のユーザーテーブルと比較することで、ユーザーが入力したユーザー名とパスワードが正しいかどうかPHPで検証できます。
- $_SESSION[‘username’] = $username;
- ログイン後の画面(例えばトップページ)上でセッション変数が存在するかどうかをチェック。存在すればユーザー名を表示する。
- セッション変数からユーザー名をエコーで出力しました
簡単なサンプルコードを次に示します。
ログインページ(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() 関数を呼び出す必要があります。