[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос: бан по ip из списка
wiz
Подскажите, пожалуйста. Нужно реализовать такой функционал на страничке.

На странице имеется кнопка. При нажатии на эту кнопку ip пользователя заносится в список (например, в файл spisok.txt).

При попытке загрузки страницы, скрипт проверяет ip зашедшего на наличие в файле spisok.txt. Если ip там есть, то пользователя отправляют на другую страницу.

Другими словами. Если человек зашел на страницу и нажал на «эту кнопку», то больше он на страницу зайти не сможет (пока не будет вычищен список забаненых).

Это нужно для странички-шутки smile.gif

Заранее благодарен.




Спустя 19 минут, 26 секунд (9.02.2009 - 15:42) delete написал(а):
Google никто не отменял там есть статьи на эту тему, и уж тем более на работу с файлами.

Спустя 7 минут, 23 секунды (9.02.2009 - 15:49) LoneCat написал(а):
PHP
$ip = $_SERVER['REMOTE_ADDR'];
$list = file('ips.txt', FILE_IGNORE_NEW_LINES);
if(
in_array($ip, $list, true)) {
  header('Location: /some/address/');
}
 else {
  
$file fopen('ips.txt''a');
  
fwrite($file$ip "\r\n");
  
fclose($file);
  // Вывод html с кнопкой
}

Спустя 1 час, 41 минута, 2 секунды (9.02.2009 - 17:30) bret написал(а):
Кажется, тут бан без нажатия

Спустя 6 часов, 49 минут, 33 секунды (10.02.2009 - 00:19) wiz написал(а):
2 LoneCat:
Спасибо большое smile.gif
Но тут, похоже, пользователь будет занесен в бан в любом случае, даже если и не нажмет на кнопку. Хотя суть понятна. Нужно проверку включить при загрузке страницы (до else), а вторую часть вставить уже в код кнопки.
Поправьте, пожалуйста, если я не так понял.

Спустя 2 часа, 55 минут, 20 секунд (10.02.2009 - 03:15) LoneCat написал(а):
Да, про кнопку я забыл, и мне так лениво дописывать про кнопку... ууу блин, как мне лениво... smile.gif
PHP
$ip $_SERVER['REMOTE_ADDR'];
$list file('ips.txt'FILE_IGNORE_NEW_LINES);
if(
in_array($ip$listtrue)) {
  
header('Location: /some/address/');
} else {
  if(isset(
$_POST['button'])) { // Если кнопка нажата
    // Записываем IP пользователя в список
    
$file fopen('ips.txt''a');
    
fwrite($file$ip "\r\n");
    
fclose($file);
  } else { 
// Если кнопка не нажата
    // Выводим форму
    
echo '
      <form action="'
.$_SERVER['PHP_SELF'].'" method="POST">
        <input name="button" type="submit" value="Забанить всех, кроме меня!" />
      </form>
    '
;
  }
}

Спустя 9 часов, 6 минут, 16 секунд (10.02.2009 - 12:21) wiz написал(а):
Огромное спасибо, LoneCat !! smile.gif

Буду проводить социальный эксперимент: сколько человек нажмет на кнопку, если рядом написано "Не нажимать! Забанит" smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.