人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

さくらのレンタルサーバーでbasic認証で会員制ホームページを運用しています
一人にIDとパスワードを伝えたのですが複数人がそのIDとパスワードを使いログインしているようです
1人1ID制にしたいと思います。
そこで、最後にログインした人を優先して残し、最初にログインしている人をログアウトさせたいです
このようなプログラムはとても組めません。すでに、組んであるフリーのプログラムなどはないでしょうか?
ご存知の方は教えてください

●質問者: takanii
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pogpi
●250ポイント

ipアドレスで識別してもいいかも知れません。

アクセス解析で、取得できますね。
http://analyzer.netowl.jp/

ipアドレスによるアクセス制限のやり方
http://www.shtml.jp/htaccess/host.html


snow0214さんのコメント
社内LANから複数の人がログインしていると、全員が同じIPアドレスになり区別できませんよ。

pogpiさんのコメント
snow0214さんのおっしゃる通りです。

2 ● snow0214
●250ポイント

完全に多重ログイン禁止をする仕組みを作るのはできないのですが、ある程度ブロックをかけることができる方法として、セッションを使った方法があります。
下はPHPとcookieを使う方法です。DBを使うと防御がより強くなるのですが、作るのも大変なので、一番簡単な方法を示します。
今使っているログイン画面、多重ログイン禁止したい画面、ログアウト画面の冒頭で、下のようなPHPスクリプトを追加してください。

セッションIDを登録するcookieの寿命を180秒としているので、180秒間に操作がないと多重ログインできるようになります。この数値は$lifetimeを変更してください。

制御の性質上、ライブラリやフレームワーク、Webサーバの機能では実現できません。

ログイン画面

<?php
$lifetime = 180;//秒
session_set_cookie_params($lifetime);
session_start();
$_SESSION['login'] = TRUE;
?>

多重ログイン禁止したい画面

<?php
session_start();
if (! $_SESSION['login'])exit(9);//またはエラー画面へジャンプ
$_SESSION['login'] = TRUE;
?>

ログアウト画面

<?php
session_unset();
?>

greuetyoさんのコメント
すいません このプログラムはどういう仕組なのでしょうか? basic認証のIDをcookieがサーバーにアップロードしてるのでしょうか?

snow0214さんのコメント
違います。 basic認証のIDは保存していません。 ログインしたかどうかをセッションID(実体はCookie)に持たせています。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ