-1

このチャットの独自のバージョンを作成しました.. http://css-tricks.com/jquery-php-chat/ . すべてが正常に機能し、ユーザーはサインオンし、メッセージを送信し、他のユーザーのメッセージを見ることができます。部屋にいる人のリストもあります。パスワードが必要な ADMIN アカウントもあります。

私の問題は、部屋に乱暴な人がいる場合に備えて、「ブロック関数」またはウィンドウ/チャットルームからユーザーを追い出す他の方法を作成する良い方法がわからないことです。私は彼をブロックするか、追い出すか、またはそれらの線に沿って何かをすることができます.

これを行う簡単な方法について誰かアイデアがありますか?

リストに名前を保存する PHP ファイル..

$function = $_POST['function'];
$name = $_POST['name'];
$filename = "chatList.txt";

 switch($function) {

     case('writeName'):
        $fo = fopen($filename,'a');
        fwrite($fo, $name."\r\n");
        fclose($fo);
        break;

     case('deleteName'):
        $file = file_get_contents($filename);
        $fo = fopen($filename,'w');
        $str =  str_replace($name."\r\n","",$file,$count);
        fwrite($fo, $str, strlen($str));
        fclose($fo);
        for($i = 0; $i < $count-1; $i++)
        {   
            $fo = fopen($filename,'a');
            fwrite($fo, $name."\r\n");
            fclose($fo);  
        }

        break;

    case('updateList'):
         $fo = fopen($filename,'r');
         if($fo)
         {
            $array = explode('\r\n', fread($fo, filesize($filename)));
         }
         echo json_encode($array);

         break;


}
4

2 に答える 2

0

リストからその人を削除してから、if ステートメントを追加して、メッセージからブロックすることができました...

if(!$('#online div#usernames:contains('+name+')').length > 0){
                alert('You have been blocked!');
                return; 
            }
于 2012-11-09T21:04:33.563 に答える
0

1)ユーザーのIPが何であるかを調べます:

function getIP() {
 $ip;
 if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); 
  elseif(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); 
  elseif(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
  else $ip = "UNKNOWN";
 return $ip;
}

2) 削除、更新、および書き込み関数を変更して、IP アドレスも書き込むようにします。 3) ユーザーからの IP を使用して削除関数を呼び出し、完了です。

于 2012-11-09T20:52:44.357 に答える