PHPを勉強してwebサービスを作りたいが、なんかDBとかいろいろ知識が必要で大変。
ってことで、取り敢えずそれっぽい機能を作りたい人のために、
固定の文字列を使った簡易ログイン機能を実装してみたいと思います。

作るものと完成イメージ

今回はphpのみで完結する簡易的なログイン機能としますので、構造は以下のようにします。

これだけです。
そして、ログイン機能なのでCookieとセッションを使います。
Cookieとセッションについては、ここでは詳しく説明しませんが、PHPでユーザを識別するために一時的にデータを保持しておくもので、
webサービスを作るうえでは必須の知識ですので、知らない人は気が向いた時にでも調べてみて下さい。
使うのに特に準備するものはなく、PHPの記述のみで使えます。

ログインページの作成

早速作っていきましょう。まずはログインページから。

html部分の作成

難しいこともこだわりもなく、ただログイン機能を実装するのが目的ですので、
適当に最低限のものを書いちゃいます。

はい。絶望的にダサいですが、気にしないで進めていきましょう。
今回用意したのは、ログインフォームでメールアドレスとパスワードを入力する画面です。
formタグのactionで指定した先は同じファイルにしています。ですので、このファイルではURLでアクセス(get通信)してきた時はhtmlの表示のみ、ログインボタンを押してアクセス(post通信)してきた時はログイン機能により認証を行うようにします。

php部分の作成

では次にphp部分を作成していきます。
認証は固定文字列で
メールアドレス:login@example.com
パスワード:password
にします。

コードを見ながら解説していきます。

書き足したphpの処理について説明していきます。

セッション開始の宣言。phpでセッションを使用するための宣言。

ログインボタンを押してpost通信で戻ってきた場合はname=”login”のボタンが押されているため、
その値の有無によりgetかpostか(ログインボタンが押されたか)を判断する。

if条件。入力された値が正しいかどうかを判別し、ログインの合否を判断している。

ログイン成功時の処理。セッションにUSERというキーでユーザ名(ここでは固定でuser)を格納し、
強制的にtop.phpへ画面遷移させている。

ログイン失敗時の処理。特に処理はせず、表示用の文字列を変数に格納。

ログイン失敗時のエラー文を表示。

こんな感じになりました。

これで、ログイン認証機能はほぼ完成です。
最後に、既にログインしている状態の場合はログイン画面が表示されるのはおかしいので、
ログインしている場合は強制的にtop.phpへ画面遷移させるようにしましょう。

以上で、login.phpは完成です。

トップページの作成

次にトップページです。

html部分の作成

正直表示するものもないのですが、作っちゃいましょう。

かなり寂しい画面が出来ました。
一応それっぽくログインしているユーザ名を表示してみました。
先ほどと同じことをしているため特筆することもないので次に進みます。

php部分の作成

早速解説します。

ログアウトボタンが押された場合は、$_SESSIONに空の配列を代入(=セッションを変数を削除)
次に、session_destroy();でセッションを完全に破棄しています。
この手順を踏むことにより、ブラウザ側及びサーバ側の双方から完全にセッション情報を削除することが出来ます。

以上で簡易ログイン機能の実装は完了です。
この動きを理解できれば、上手く応用できると思うので色々試してみると勉強になると思います。

最終的なコードは以下になります。

完成コード


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です