PHPでのログイン前にindex.phpを表示する方法


  1. ログインフォームの作成: HTMLフォームを使用して、ユーザーがユーザー名とパスワードを入力できるようにします。以下は、基本的なログインフォームの例です。
<form action="login.php" method="POST">
  <input type="text" name="username" placeholder="ユーザー名" required>
  <input type="password" name="password" placeholder="パスワード" required>
  <input type="submit" value="ログイン">
</form>
  1. ログイン処理の作成: PHPスクリプトを使用して、送信されたユーザー名とパスワードを検証し、セッションを開始します。ログインが成功した場合は、セッション変数にログイン状態を格納します。
<?php
session_start();
// ユーザー名とパスワードの検証ロジックを実装する
if ($_POST['username'] === 'ユーザー名' && $_POST['password'] === 'パスワード') {
  $_SESSION['logged_in'] = true;
  header('Location: index.php');
  exit();
} else {
  echo 'ログインに失敗しました';
}
?>
  1. index.phpの表示制御: index.phpファイルの先頭で、ログイン状態をチェックし、ログインされていない場合はログインページにリダイレクトします。
<?php
session_start();
if (!isset($_SESSION['logged_in']) || $_SESSION['logged_in'] !== true) {
  header('Location: login.php');
  exit();
}
// ここからindex.phpのコンテンツを表示するコードを記述する
?>