Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Ban Dla IP Zapis w Mysql!
Forum PHP.pl > Forum > Przedszkole
swajt
Siemaneczko jak zrobic zeby po wpisaniu ip i powodu uzytkownik zostal zbanowany.I po wpisaniu uzytkownik zostaje zbanowany na stronie glownej pisze mu ze zostal zabanowany + powou podam wam moje pliki a i folmularz juz mam i zapisuje sie do mysql. Demo: http://pluton.cba.pl/1/ban.php Login: test Haslo: test

ban.php
  1. <?php
  2. if(Admin())
  3. {
  4.  
  5. {
  6.  
  7. $zapytanie5 = "SELECT * FROM ban";
  8. $result2 = mysql_query($zapytanie5) or die (mysql_error());
  9.  
  10. echo "<table border=\"1\"><tr>";
  11. echo "<th width=\"300\"><strong>ip</strong></th>";
  12. echo "<th width=\"300\"><strong>Powód</strong></th>";
  13. echo "</tr>";
  14. }
  15. while ( $wynik = mysql_fetch_row($result2) )
  16. {
  17. echo "<tr>";
  18. echo "<td width=\"300\">" . $wynik[1] . "</td>";
  19. echo "<td width=\"300\">" . $wynik[2] . "</td>";
  20. }
  21. echo '</table>';
  22. }
  23. ?>
  24.  
  25. <br>
  26.  
  27. <?
  28. if(Admin())
  29. {
  30. //jeżeli użytkownik jest zalogowany:
  31. if($_POST["ip"] && $_POST["powod"])
  32. {
  33. $powod = addslashes(htmlspecialchars($_POST['powod']));
  34. $ip = addslashes(htmlspecialchars($_POST['ip']));
  35. $zap = "INSERT INTO ban(ip, powod,data) VALUES ('$ip', '$powod', '$data')";
  36. mysql_query($zap);
  37. echo 'Dodany Ban!';
  38. DodajLog('Dodałes bana ip: ' . $ip . '');
  39. }
  40. else if($_POST["submit"])
  41. {
  42. echo "<br><br>Nie uzupełniono wszystkich pól!<br>";
  43. }
  44. echo "<h2>Dodaj Bana!</h2><br>";
  45. echo "<form method=post>";
  46. echo "<br>Data: <td><input class=\"pole\" disabled=\"disabled\" type=\"text\" name=\"data\" value=\"" . date('d.m.Y | H:i') . "\"></td>";
  47. echo "<td><br>IP: <input class=\"pole\" name=ip size=30></td>";
  48. echo "<td><br>Powód: <input class=\"pole\" name=\"powod\" rows=\"8\" cols=\"50\"></td>";
  49. echo "</select><br>";
  50. echo "<br><input type=submit value='Banuj!' name=submit>";
  51. }
  52. else
  53. {
  54. echo 'Nie jestes adminem!';
  55. }
  56. ?>


ban.sql
  1. CREATE TABLE IF NOT EXISTS `ban` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `ip` text,
  4. `powod` text,
  5. `data` text,
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
emillo91
Musisz dodać warunek po którego spełnieniu użytkownik nie będzie miał dostępu do tych opcji np :
  1. while ( $wynik = mysql_fetch_row($result2) )
  2. {
  3. echo "<tr>";
  4. echo "<td width=\"300\">" . $wynik['ip'] . "</td>";
  5. echo "<td width=\"300\">" . $wynik['powod'] . "</td>";
  6. }
  7. if($wynik['ip'] == 'sesja logowania ip użytkownika'){
  8. echo 'nie możesz korzystać ze strony';
  9. }


Jeżeli chodzi o bana na ip to nie jest to dobry pomysł bo ktoś może mieć zmienne więc najlepiej zrobic bana na login
swajt
Nie zadzialalo. Wiem ze nie jest dobry pomysl na banowanie ip ale chce na poczatek z ip potem zmienie na ip i login jak sie bedzie dało.
Xart
A jak miało zadziałać jak kopiujesz bezmyślnie kod ?
IP z którego user wchodzi maż w tablicy $_SERVER['REMOTE_ADDR']
Pobierasz dane z bazy i mysql_num_rows'em sprawdzasz czy istnieje w tabeli z banami wiersz gdzie $ip==$_SERVER['REMOTE_ADDR']
Jeśli tak to komunikat o banie...
swajt
wiec jak to zrobic bo nieogarniam :<
Luna_s20
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:


  1. $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":
  1. CREATE TABLE `ban` (
  2. `id` int(2) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `user_ip` VARCHAR( 20 ) NOT NULL ,
  4. `ban_reason` VARCHAR( 300 ) NOT NULL ,
  5. 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ę:
  1. 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.
emillo91
witaj w jednym z tematów napisałem o takim skrypcie jak cutenews . Jest to skrypt ogłoszeń tylkk że oparty na plikach txt ale może jest wersja z wykorzystaniem bazy mysql. Masz tam takie opcje jak np banowanie użytkowników dodawanie/usuwanie administratorów moderatorów itp. Domyślam się że zaczynasz przygodę z php. Ja także jeszcze raczkuję w tej dziedzinie a w moim przypadku przygoda z php zaczęła się właśnie od analizy takiego skryptu więc jeżeli nie rajcują ciebie poradniki to polecam przeglądać takie skrypty bo z czasem zobaczysz że tworząc coś własnego możesz wykorzystać coś istniejącego tylko że poprzez modyfikację i ulepszanie skryptu wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.