マイページや管理画面のログイン機能はセッションで導入する

2012-08-04 12:13:02
PHPでログイン機能を導入する場合はsession(セッション)というものを使います。cookie(クッキー)と似ていますが少し違います。単純に説明すると、cookieはブラウザに保存、sessionはサーバーに保存といったところでしょうか。sessionはcookieよりもセキュリティーが固いのでログイン機能ではcookieは使いません。では早速、コードを見てみてください。

<login.php>


<?php
session_start(); //*1 下記説明
if($_POST['pass'] == $PASS){
    $_SESSION['user'] = session_id(); //*2 下記説明
    header("location:admin.php"); exit;
}
?>
*1 セッション使用する際に必ず必要な一文。
*2 セッション変数にセッションID(複雑な英数字の文字列)を代入

流れを説明すると、セッションを使いますという宣言をして、パスワードが一致した場合はセッション変数に被らない文字列を代入し、管理画面へページ遷移するという形です。

※上記のコードではフォームの部分は省略しています。

<admin.php>


<?php
session_start();
if(!$_SESSION['user']){
    header("location:login.php"); exit;
}
?>

次に、管理画面では最初に$_SESSION['user']に値があるかないかを調べ、あればそのままページ維持し、なければログインページに戻します。こうすることで管理画面(admin.php)はセッション変数に値がないと入れなくなります。セッション変数の値はログイン画面でパスワードが一致した時にしか発行しません。

<ログアウト処理>


<?php
session_destroy();
?>

ログアウトの処理は簡単。セッション変数を空にするだけです。
カテゴリ: PHP