1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPでログインが必要なサイトを作る方法(第1回)

Last updated at Posted at 2017-11-15

こんにちは、片山学園 鉄道研究会です。

実は、鉄道研究会では部員専用サイトを作っています。

rrc-portal-ss.png

こんな感じなんですが、当然見るためにはログインが必要です。

このサイトではApache+PHP+SQLite+Bootstrap+jQueryといった、結構普通の技術を使ってログイン機能を作っています。

それでは、具体的な作り方を紹介していきます。

ログインをさせるための設定

どのページにアクセスしてもログインさせるためには、ページがリクエストされたときに、

  • ログインしているか判定
  • ログインしてなかったらログインページに飛ばす
  • ログインしていたらページを表示

といった処理をする必要があります。

このサイトでは、すべて共通のファイルを最初に読み込んで、そのファイルでこれらの処理を行っています。

このとき大切なこととして、
絶対にログインページではこの処理をしてはいけないということです。

なぜなら、

  1. ログインページにアクセス
  2. ログインしているか判定
  3. ログインしてないのでログインページにリダイレクト(1に戻る)

の無限ループが起こるからです。自分もここではまりました。

このサイトではログインしているユーザー名を$_SESSION['user']に保存しているので、

/inc/auth.php
if(!isset($_SESSION['user'])){

	header('Location: ' . BASE_URL . '/login');

	exit();

}

という処理にしました。BASE_URLにはサイトトップのURLが入っています。

このファイルをすべてのページでrequire_onceすれば、ログインを強制させられます。

このとき、/inc/*に対する直接アクセスを拒否します。
これについては次回に設定します。
次回:PHPでログインが必要なサイトを作る方法(第2回)

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?