Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP]Ban Dla IP Zapis w Mysql!
swajt
post
Post #1





Grupa: Zarejestrowani
Postów: 89
Pomógł: 0
Dołączył: 24.01.2014

Ostrzeżenie: (0%)
-----


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 ;


Ten post edytował swajt 16.05.2014, 21:20:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Luna_s20
post
Post #2





Grupa: Zarejestrowani
Postów: 60
Pomógł: 8
Dołączył: 7.01.2014

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Luna_s20 18.05.2014, 10:25:05
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 23:07