マイページや管理画面のログイン機能はセッションで導入する
2012-08-04 719 1810PHPでログイン機能を導入する場合はsession(セッション)というものを使います。cookie(クッキー)と似ていますが少し違います。単純に説明すると、cookieはブラウザに保存、sessionはサーバーに保存といったところでしょうか。sessionはcookieよりもセキュリティーが固いのでログイン機能ではcookieは使いません。では早速、コードを見てみてください。
<login.php>
<?php*1 セッション使用する際に必ず必要な一文。
session_start(); //*1 下記説明
if($_POST['pass'] == $PASS){
$_SESSION['user'] = session_id(); //*2 下記説明
header("location:admin.php"); exit;
}
?>
*2 セッション変数にセッションID(複雑な英数字の文字列)を代入
流れを説明すると、セッションを使いますという宣言をして、パスワードが一致した場合はセッション変数に被らない文字列を代入し、管理画面へページ遷移するという形です。
※上記のコードではフォームの部分は省略しています。
<admin.php>
<?php
session_start();
if(!$_SESSION['user']){
header("location:login.php"); exit;
}
?>
次に、管理画面では最初に$_SESSION['user']に値があるかないかを調べ、あればそのままページ維持し、なければログインページに戻します。こうすることで管理画面(admin.php)はセッション変数に値がないと入れなくなります。セッション変数の値はログイン画面でパスワードが一致した時にしか発行しません。
<ログアウト処理>
<?php
session_destroy();
?>
ログアウトの処理は簡単。セッション変数を空にするだけです。