Po pierwsze, każdemu wchodzącemu na stronę, czy też - jak wolisz, logującemu się użytkownikowi, musisz zapisać ip w bazie danych. Wyżej masz wyłożone jak łopatą, skąd wziąć ip.
Dalej, od strony rejestracji począwszy, na każdej podstronie, która wymaga bycia zalogowanym, warto sobie "odświeżać" ip użytkownika.
Ja dla swoich potrzeb w bazie danych przetrzymuję OSOBNO ip rejestracji, i ip ostatniej aktywności. To pozwala mi określić, czy użytkownik ma stałe, czy zmienne ip(jak wiadomo rzucanie bananami w zmienne ip jest jak łapanie wiatru w sito i lepiej poszukać innych sposobów na pozbycie się niechcianego użytkownika).
Tak więc takie odświeżane ip najlepiej wrzucić(w zależności co twój skrypt robi) na stronę logowania, zmiany danych w profilu, stronę wysyłania prywatnych wiadomości - wszędzie tam, gdzie użytkownik wykazuje świadomą aktywność.
Jest to coś takiego:
$refresh_data = "UPDATE users SET last_ip = '$visit_ip WHERE `username`='$username' AND `password`='$password'";
Teraz masz już w bazie ip ostatniej aktywności użytkownika.
Możesz je wybrać w swoim panelu admina jeśli takowy posiadasz(czy gdzie tam ich bananujesz), i wrzucić do tabeli 'ban' w bazie danych.
Czyli wybierasz z bazy danych listę użytkowników(najlepiej w klikalnej formie), wybierasz danego użytkownika i wyświetlasz jego ip, a pod tym wszystkim wielki czerwony przycisk "daj mu banana".
Gdy klikniesz przycisk, ip użytkownika wysyłasz do tabeli "ban".
Przykładowa struktura tabeli "ban":
CREATE TABLE `ban` (
`id` int(2) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_ip` VARCHAR( 20 ) NOT NULL ,
`ban_reason` VARCHAR( 300 ) NOT NULL ,
PRIMARY KEY ( `id` ));
Teraz, na samym początku skryptu, tam gdzie określasz czy użytkownik jest zalogowany, czy nie jest, po określeniu loginu wysyłasz do bazy danych zapytanie, sprawdzając, czy ip danego użytkownika jest na liście zbanowanych.
Teraz przechodzisz do utworzenia warunku.
Jeśli ip zostanie znalezione, wyświetlasz informację:
echo 'Twoje ip zostało zbanowane na mojej stronie z powodu: '.$ban['ban_reason'].' Masz teraz więcej czasu na oglądanie YT';
a resztę skryptu blokujesz kończąc warunek exitem.