システム制作
トップページ
ソース
・top_page.php
ログインの継続
ログインページからトップページに移動した場合、必ず"$_SESSION['id']"
と"$_SESSION['time']"が入力されている状態です。この方法以外でページに
直接アクセスできないようにしています。
$_SESSION['id']が継続している
ログインページにより"$_SESSION['id']"にmemberテーブルのidが入力されて
います。このid情報はカラムにAOTO_INCREMENTとプライマリーキーを設定して
いるため自動的かつ重複がされないように設定されているので個々の特定には
最適となっています。
セッションの情報は次ページ以降も引き継がれるためページ毎に"$_SESSION['id']"
を元にデータベースからユーザー情報を引き出して表示することで継続されてい
ることを表示しています。
前回の$_SESSION['time']の更新から定時時間内である
ログインシステムの構築の時に$_SESSIOM['time']を入力しましたが
これはログイン状態の保持に制限時間をかけるための変数となっています。
セッションは入力内容を保持する便利な機能ですが、解除せずにおくと
そのまま保持されてしまうので長く席を離れている場合に万が一他の人に
操作されてしまうなどの危険があるためセキュリティのため設定しています。
構造としては"time()"は現在時間の情報であるため"$_SESSION['time']+3600 >
time()"は前回更新より3600秒以内に更新していた場合は$_SESSION['time']が
更新され、ログイン情報が継続されるようになっています。
どちらかの条件に当てはまらなかった場合
上記2項目の条件内容に当てはまらなかった場合15行目の"else"が実行
されます。内容としては"header('Location: index.php')"によりログ
インページに飛ばすだけですが、"$_SESSION['time']"が更新されない
ためログインが必要なページにはアクセスができなくなります。