2009-07-22 5 views
2

ログ可能でないアカウントを作成するためのベストプラクティスが何であるか疑問に思っています。 StackOverflowには、私がログインできないと思っているコミュニティWikiアカウントがあります。非ログアカウントのベストプラクティス

ログに記録されないアカウントのスクリプトについてはどうすればよいですか?アクセスしたくないアカウントがある場合、IDが0より小さいアカウントにログインできないようなパラメータを設定する必要がありますか?または、設定IDにログインできないIDを手動で定義するだけでいいですか?それとも良い方法がありますか?

答えて

5

ロギング機能を設定または取り消すには、アカウントデータにフラグを使用する必要があります。

この機能は、SQLレベルでの照会を非常に簡単に実行できます。

ようなクエリ:

select wathever from user where loggging=1 and user="aUser" and passwd="password" 

は、トリックを行うことができます。 はたぶんcolumを使用すると、あなたにefficentないように見えるが、あなたはプロを検討する必要があります:

  • あなたがデータベースbeetween飛散ない、単層でのユーザーに関する情報を持っているあなたのコメントに答える

    、コンフィギュレーションファイル、またはwathever

  • あなたは取り消しまたは構成ファイルを変更することなく、任意のアカウントへのロギング機能を付与することができます

2

あなたは、あなたのユーザテーブルの上に「フラグ」を設定することができます。

loggable  int(1)  default 1 

次に、あなたのスクリプトで確認することができます。

//... data retrieve login ... 
if($userRow['loggable'] == 1) { 
    //User can login, do stuff 
} else { 
    //Tell him that he can't login 
} 
+1

をしかし、非効率的で、単純に1人のまたは2のユーザーを取り除くために列全体を追加することではないでしょうか? –

+2

すでにロールを持っている場合は、「ログインしない」ロールを追加すると、私には最高の音が聞こえます。それ以外の場合は、 "loggable"のブール値を1つ追加するのは非常に効率が悪いとは思いません。とにかく、各ユーザーにはいくつかの異なるアクセス許可が与えられると思います。 db idでそれをベースにすることもできますが、いくつかの利点があります。 – jsight

+0

あなたがそれを答えとして置くなら、私はそれに印をつけます。 –

0

は、アカウントに「ログ可能」フィールドを追加します。 ログに記録されないアカウントがたくさんある場合に備えてスケーラブルです。

0

空のパスワードをログに記録できないようにすることができます。

はEinekiのSQL拡張するには:

select whatever from user where loggging=1 and user="aUser" and 
    passwd="password" AND passwd IS NOT NULL 
関連する問題