2012-01-31 2 views
1

Я пишу основное текстовое чат-приложение, и я пытаюсь найти лучший и самый безопасный способ реализовать «ударную» способность, желательно как-то отправить PHP-скрипт для определенного IP-адреса, но любой другой метод «не-js» тоже будет классным.Отправка PHP-скрипта на конкретный IP-адрес на сайте

На данный момент я написал возможность «запретить», добавив определенный IP-адрес в массив, и если пользователь обновит его, заголовок перенаправит их, перекрестно проверив массив с помощью запрета и перенаправляя, если он найден в массив.

Есть ли способ запустить эту проверку в фоновом режиме?

+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 пользователей. –

Смежные вопросы