2012-01-31 17 views
1

私は基本的なテキストチャットWebアプリケーションを作成していますが、私は「キック」能力を実装するための最良かつ最も安全な方法を、特定のIPアドレスへのPHPスクリプトだが、他の方法である 'non-js'も素晴らしいだろう。サイトの特定のIPアドレスにPHPスクリプトを送信する

今のところ、定義済みのIPを配列に追加することによって「禁止」する機能を書いています。ユーザーがリフレッシュすると、配列をbanlistでクロスチェックしてリダイレクトします配列。

このチェックをバックグラウンドで実行する方法はありますか?

+0

あなたのチャットルームのスクリプトの作成方法は? AJAX? –

+3

JavaScriptを使用しないでください?常にチャットメッセージをチェックすることで、PHPのレンダリングだけでなく、サーバー全体が遅くなる可能性があります。私は、JSONサービス、またはこの種のもののために特別に作られたpubnubというサービスの使用をお勧めします。私はあなたがPHPでこれをしないようにすることを提案しています。 – Alex

+0

これはajax –

答えて

1

BIG EDIT:

わかりましたので、ここでは(退屈なテキストファイルを使用して)、それを行うための簡単な方法がある:

bad_people.txt

と呼ばれる別のテキストファイルを作成していたずらを挿入するためのスクリプトを作成します。ユーザーのIPアドレスをテキストファイルに追加します。このような何か:

$myFile = "../bad_people.txt"; 

$fh = fopen($myFile, 'a') or die("can't open file"); 

$ip_splitter="-::-"; //This is a splitter...Will be used to split each IP address in the text file to make it readable in future. 

$bad_address = "22.22.22.22".$ip_splitter; 

fwrite($fh, $bad_address); 

fClose($fh); 

だから、あなたがチャットをオフに誰かをキックしたい時には、上記のコードを実行...

注:分割する、私はスプリッタ($ip_splitter)を使用していたかを参照してください。テキストファイル内の各IPアドレス。これにより、ファイルを読みやすくなり、すべてのアドレスを配列に挿入するのが容易になります。 (私は無限ループで実行すると仮定している)AJAX呼び出しの後

、:

$myFile = "../bad_people.txt"; 

    $fh = fopen($myFile, 'r') or die("can't open file"); 

    $ip_splitter="-::-"; 

$bad_people_array=explode($ip_splitter,$fh); 

$user_ip=$_SERVER['REMOTE_ADDR']; 

foreach ($bad_people_array as $BAD_IP){ 

if($BAD_IP==$user_ip){ 

//do whatever here...... 

}//end of if the user is bad 


}//end of for loop 

だからあなたは新しいメッセージをチェックするスクリプトと一緒に、あなたのAJAX呼び出しでそのスクリプトを実行します。 ...

などあります。

+0

私はログに.txtファイルを使用しており、メッセージは18行を超えて保存されていません –

+0

そして、 –

+0

ええ、私はそれが非効率的で、サーバー上のメガ・ドレッシングを知っていますが、最大20人のユーザーと同じように、あまりにも煩わされることはありません。 –

関連する問題