Fotografika | Foto forum

Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?
Grudzień 01, 2008, 20:12:19


Zaloguj się podając nazwę użytkownika, hasło i długość sesji


więcej informacji tutaj
Uśmiech Pierwszy szablon udostępniony publicznie. Uśmiech
Szablon fotoan black v1.0 jest kompatybilny z galerią 4images wersji 1.7.3.
Szablon zawiera również polską wersję językową v.2.0
  więcej tutaj...
827 wiadomości w 192 wątkach, wysłane przez 177 użytkowników
Najnowszy użytkownik: luktur1
+  Fotografika | Foto forum
|-+  Galeria 4images
| |-+  4images ... [MOD] modyfikacje (Moderator: andreoid)
| | |-+  MOD - Banowanie
0 użytkowników i 1 Gość przegląda ten wątek. « poprzedni następny »
Strony: [1] Do dołu Drukuj
Autor Wątek: MOD - Banowanie  (Przeczytany 782 razy)
andreoid
Administrator
Student

*****

Pomógł: +4/-0
Offline Offline

Płeć: Mężczyzna
Wiadomości: 308



OS:
unknown
Browser:
unknown


Skype - Kliknij do mnie

Zobacz profil WWW
« : Listopad 21, 2006, 23:30:52 »

MOD - Banowanie

oryginalny tytuł

[MOD] Ban v1.7
Autor: V@no
Źródło: http://www.4homepages.de/forum/index.php

Banowanie czyli jak zabronić komuś dostępu do naszej strony.
Za pomocą tej modyfikacji, możemy zwiększyć bezpieczeństwo galerii, po przez odebranie prawa dostępu osobą które łamię regulamin, bądź też osobą, które próbują nie legalnie dostać się do galerii.
Przypominam jednocześnie, że nie ma zabezpieczeń idealnych, możemy traktować tą modyfikację,
jako dodatkowe utrudnienie przeciwko łobuzom internetowych.

Modyfikacja ta blokuje dostęp do galerii na pięciu płaszczyznach:
IP: -   Nazwa Hostu:ID użytkownika:  - Nazwisko: - Email:

Przykład blokowania IP:
83.69.102.33 lub pewien zakres 83.69.*.* lub 83.69.102.0-9

Przykład blokowania Hostu:
net-88-68-1-120-aol.com lub całej grupy  *aol.com

Blokowanie ID użytkownika:
dotyczy użytkowników zarejestrowanych, wpisujemy numer ID użytkownika

Blokada nazwiska:
analogicznie dotycz użytkownika zarejestrowanego lub próbującego się zarejestrować, nazwisko, nick, pseudonim.

Przykład blokady adresu mailowego:
adres@domena.com lub wszystkich adresów z tej domeny *@domena.com

Dodatkowo możemy określić czas trwania zakazu od-do, lub od-na okres nie określony.

Instalacja: łatwa
Czas około 30 minut

Nowe plik
/admin/plugins/ban.php
/templates/<twoj_szablon>/ban.html

Zmienione zostaną pliki:
/admin/settings.php
/includes/constants.php
/includes/functions.php
/includes/sessions.php
/lang/polish/admin.php
/lang/polish/main.php
/member.php

Przypominam o wykonaniu kopii bazy danych mySQL i backup.

Krok 1.

Otwórz plik admin/settings.php

W pliku settings.php, musimy ustalić najpierw ostatnio zainstalowaną grupę opcji.
Jeżeli nie instalowaliśmy do tej pory żadnej modyfikacji, której opcje ustawiane są w administracyjnym panelu kontrolnym, to w standartowej instalacji 4images ostatnią grupą opcji jest grupa 7, odszukaj tą grupę używając fragmentu kodu
Kod:
show_table_separator($setting_group
Bardzo ważną sprawą jest to, abyśmy byli pewni numeru, ostaniej zainstalowanej grupy.
Np.: jeżeli ostatnią zainstalowaną grupą , jest grupa 7, to nasza nowa grupa będzie miała numer 8


odszukaj
Kod:
show_form_footer($lang['save_changes'], "", 2);

i przed tym kodem dodaj
Kod:
/*
  MOD BAN
  START INSERT
*/
  show_table_separator($setting_group[XX], 2, "#setting_group_XX");
  show_setting_row("look_hostname", "radio");
/*
  MOD BAN
  END INSERT
*/
w miejsce XX wstaw numer nowej grupy wynikający z jej kolejności.

Krok 2.

Otwórz plik includes/constants.php i na samym końcu, przed znakiem
Kod:
?>

dodaj
Kod:
/*
  MOD BAN
  START INSERT
*/
define("BAN_TABLE", $table_prefix."ban");
define("BAN_LOGS_TABLE", $table_prefix."ban_logs");
define("BAN_IP", 1);
define("BAN_HOSTNAME", 2);
define("BAN_USERID", 3);
define("BAN_NAME", 4);
define("BAN_EMAIL", 5);
/*
  MOD BAN
  END INSERT
*/

Krok 3.

Otwórz plik includes/functions.php i na samym końcu, przed znakiem
Kod:
?>

dodaj
Kod:
/*
  MOD BAN
  START INSERT
*/

function check_ban()
{
  global $user_info, $site_sess, $config, $lang, $site_db, $HTTP_GET_VARS;
  $types = array("ip", "hostname", "name", "user_id", "email");
  if (!$config['ban_update'])
  {
    return false;
  }
  if ($user_info['user_level'] == ADMIN)
  {
    if (!isset($HTTP_GET_VARS['bantest'])) return false;
    $return = true;
    foreach ($types as $key)
    {
      if (isset($HTTP_GET_VARS[$key]) && $$key = $HTTP_GET_VARS[$key]) $return = false;
      else $$key = "";
    }
    if ($return) return false;
    $force = true;
  }
  else
  {
    $ip = $site_sess->session_info['session_ip'];
    $email = $user_info['user_email'];
    $user_id = $user_info['user_id'];
    $name = $user_info['user_name'];
    $hostname = "";
    $force = false;
  }
 
  $ban = false;
  $ban_checked = $site_sess->get_session_var("ban_checked");
  $ban_userid = $site_sess->get_session_var("ban_userid");
  $ban_banned = $site_sess->get_session_var("ban_banned");
  if (get_magic_quotes_gpc() != 0)
  {
    $ban_banned = stripslashes($ban_banned);
  }
//  $ban_banned = stripslashes($ban_banned); //uncomment this line if magic_quotes_gpc is turned on on your server
  $ban_banned = ($ban_banned) ? unserialize($ban_banned) : "";
 
  if ($force || (!$ban_checked || !$ban_userid || ($ban_userid && $ban_userid != $user_info['user_id']) || ($ban_checked && $ban_checked < $config['ban_update']) || ($ban_banned && $ban_banned['expire'] < time())))
  {
    $query = array();

    if (preg_match('/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/', $ip, $ip_chop) == 1)
    {
      $query[] = "(type = ".BAN_IP." AND ($ip_chop[1] BETWEEN ip1_start AND ip1_end) AND ($ip_chop[2] BETWEEN ip2_start AND ip2_end) AND ($ip_chop[3] BETWEEN ip3_start AND ip3_end) AND ($ip_chop[4] BETWEEN ip4_start AND ip4_end))";

      if ($config['look_hostname'] && !$hostname)
      {
        $hostname = @gethostbyaddr($ip);
      }
    }
    if ($hostname)
    {
      $query[] = "(type = ".BAN_HOSTNAME." AND ('$hostname' LIKE hostname))";
    }
    if ($email)
    {
      $query[] = "(type = ".BAN_EMAIL." AND ('".addslashes($email)."' LIKE email))";
    }

    if ($user_id && $user_id > GUEST)
    {
      $query[] = "(type = ".BAN_USERID." AND user_id = ".$user_id.")";
    }

    if ($name)
    {
      $query[] = "(type = ".BAN_NAME." AND ('".addslashes($name)."' LIKE name))";
    }

    if (!empty($query))
    {
      $sql = "SELECT id, type, message, date, expire
              FROM ".BAN_TABLE."
              WHERE (".implode(' OR ', $query).")";
      if ($result = $site_db->query($sql))
      {
        while ($row = $site_db->fetch_array($result))
        {
          $site_sess->set_session_var("ban_banned", addslashes(serialize($row)));
 
          if ($row['date'] <= time() && (!$row['expire'] || $row['expire'] > time()))
          {
            $ban = $row;
            break;
          }
        }
      }
      else
      {
        $site_sess->set_session_var("ban_banned", "");
      }
     
    }
    $site_sess->set_session_var("ban_checked", time());
    $site_sess->set_session_var("ban_userid", $user_info['user_id']);
  }
  elseif ($ban_banned && $ban_banned['date'] <= time() && (!$ban_banned['expire'] ||  $ban_banned['expire'] > time()))
  {
    $ban = $ban_banned;
  }

  return $ban;
}
/*
  MOD BAN
  END INSERT
*/

Krok 4.

Otwórz plik includes/sessions.php i odszukaj
Kod:
$user_info = $site_sess->return_user_info();

i za tym kodem dodaj
Kod:
/*
  MOD BAN
  START INSERT
*/
if ($ban = check_ban())
{
  $sql = "INSERT INTO ".BAN_LOGS_TABLE."
          (date, ip, uri, ban_id, user_id)
          VALUES
          (".time().", '".$site_sess->session_info['session_ip']."', 'http".(($_SERVER['SERVER_PORT'] != 80) ? "s" : "")."//".$_SERVER['SERVER_NAME'].addslashes($_SERVER['REQUEST_URI'])."', ".$ban['id'].", '".$user_info['user_id']."')";
  $site_db->query($sql);
  $main_template = "ban";
  $config['badword_list'] = "";
  include(ROOT_PATH.'includes/page_header.php');
  $site_template->register_vars(array(
    "lang_ban" => $lang['ban_banned'],
    "message" => format_text($ban['message'], 1, 0, 1, 1, 1, 1)
  ));
  $site_template->print_template($site_template->parse_template($main_template));
  include(ROOT_PATH.'includes/page_footer.php');
  exit;
}
/*
  MOD BAN
  END INSERT
*/

Krok 5

Otwórz plik lang/polish/admin.php i na samym końcu, przed znakiem
Kod:
?>

dodaj
Kod:
/*
  MOD BAN
  START INSERT
*/
/*-- Setting-Group XX --*/
$setting_group[XX]="Zakaz [Ban]";
$setting['look_hostname'] = "Lookup hostnames<span class=\"smalltext\"><br />might affect the perfomance";

$lang['ban'] = "Zakaz [Ban]";
$lang['ban_ip'] = "IP:";
$lang['ban_ip_expl'] = "<span class=\"smalltext\">np.: 123.123.123.123 lub 123.123.123.* lub 123.123.123.0-255</span>";
$lang['ban_user_id'] = "ID:";
$lang['ban_email'] = "Email:";
$lang['ban_email_expl'] = "<span class=\"smalltext\">np.: example*@example.com</span>";
$lang['ban_name'] = "Nazwisko:";
$lang['ban_name_expl'] = "<span class=\"smalltext\">np.: example*</span>";
$lang['ban_hostname'] = "Nazwa Hostu:";
$lang['ban_hostname_expl'] = "<span class=\"smalltext\">np.: *.aol.com</span>";
$lang['ban_add'] = "Dodaj nowy zakaz [ban]";
$lang['ban_edit'] = "Edytuj zakazy";
$lang['ban_date'] = "Data/start";
$lang['ban_date_expl'] = "<span class=\"smalltext\">rrrr-mm-dd hh:mm:ss</span>";
$lang['ban_expire'] = "Data/koniec";
$lang['ban_expire_expl'] = "(jeżeli wpiszesz 0 zakaz [ban] jest czasowo nie ograniczony)<br /><span class=\"smalltext\">rrrr-mm-dd hh:mm:ss</span>";
$lang['ban_message'] = "Wiadomość";
$lang['ban_message_expl'] = "<span class=\"smalltext\">Ta wiadomość zostanie wyświetlona osobie, której zakaz dotyczy.</span>";
$lang['ban_reason'] = "Powód";
$lang['ban_reason_expl'] = "<span class=\"smalltext\">wpisz powód zakazu [banu] Ta wiadomość przypomni Ci powód, dla którego ustanowiłeś ten zakaz</span>";
$lang['ban_required'] = array(
    BAN_IP => "Proszę wpisz IP",
    BAN_HOSTNAME => "Proszę wpisz nazwę hostu",
    BAN_USERID => "Proszę wpisz ID użytkownika",
    BAN_NAME => "Proszę wpisz nazwisko",
    BAN_EMAIL => "Proszę wpisz email"
);
$lang['ban_bad_entry'] = array(
    BAN_IP => "IP jest nieprawidłowe",
    BAN_HOSTNAME => "Nazwa Hostu jest nieprawidłowa",
    BAN_USERID => "ID użytkownika jest nieprawidłowe",
    BAN_NAME => "Nazwisko jest nieprawidłowe",
    BAN_EMAIL => "Email jest nieprawidłowe"
);
$lang['ban_dublicate'] = array(
    BAN_IP => "To IP jest już zapisane jako zakaz [ban] w bazie danych",
    BAN_HOSTNAME => "Ten Host jest już zapisany jako zakaz [ban] w bazie danych",
    BAN_USERID => "Ten Id jest już zapisany jako zakaz [ban] w bazie danych",
    BAN_NAME => "To nazwisko jest już zapisane jako zakaz [ban] w bazie danych",
    BAN_EMAIL => "Ten adres emailowy jest już zapisany jako zakaz [ban] w bazie danych"
);
$lang['ban_type_array'] = array(
    BAN_IP => "IP:",
    BAN_HOSTNAME => "Nazwa hostu:",
    BAN_USERID => "ID użyt.:",
    BAN_NAME => "Użytkownik:",
    BAN_EMAIL => "Email:"
);
$lang['ban_list'] = "Lista zakazów [banów]";
$lang['ban_type'] = "Typ zakazu";
$lang['ban_value'] = "Wartość";
$lang['ban_add_success'] = "Zakaz [Ban] dodany poprawnie";
$lang['ban_add_error'] = "Błąd w dodawaniu zakayu [Bana]";
$lang['ban_update_success'] = "Aktualizacja zakazu prawidłowa";
$lang['ban_update'] = "Aktualizacja";
$lang['ban_update_error'] = "Błąd w aktualizacji zakazu";
$lang['ban_edit_error'] = "Błąd w zapisie";
$lang['ban_edit_success'] = "Zapis prawidłowy";
$lang['ban_delete_error'] = "Błąd w usuwaniu zakazu [bana]";
$lang['ban_delete_success'] = "Zakaz [ban] został pomyślnie usunięty";
$lang['ban_filter'] = "Filtry";
$lang['ban_menu'] = "Menu systemu banowania";
$lang['ban_whois'] = "Kto jest online";
$lang['ban_action'] = "Akcja";
$lang['ban_perm'] = "Nigdy";
$lang['ban_perpage'] = " <br /> <br /> wyświetleń na stronie";
$lang['ban_logs'] = "Sesje";
$lang['ban_uri'] = "Odwiedził URL";
$lang['ban_user_name'] = "Użytkownik";
$lang['ban_date_access'] = "Data";
$lang['ban_logs_del_success'] = "Sesja usunięta prawidłowo";
$lang['ban_logs_del_error'] = "Błąd przy usuwaniu sesji";
$lang['ban_active'] = "Aktywni";
$lang['ban_expired'] = "Zakończone";
$lang['ban_notactive'] = "Nie aktywni";
$lang['bad_invalid_date'] = "End date must be bigger then start date";
$lang['ban_copy'] = "Kopiuj";
$lang['ban_test'] = "Test";
/*
  MOD BAN
  END INSERT
*/
w miejsce XX wstaw numer nowej grupy wynikający z kroku 1

Krok 6.

Otwórz plik lang/polish/main.php i na samym końcu, przed znakiem

Kod:
?>

dodaj
Kod:
/*
  MOD BAN
  START INSERT
*/
$lang['ban_banned'] = "Prawo dostępu do serwisu zostało odebrane. <br /><br />Du bis verbannt.<br /><br />You've been banned";

/*
  MOD BAN
  END INSERT
*/


Krok 7.

Pobierz pliki instalacyjne Ban v1.7 .zip  poniżej.
Rozpakuj, załaduj na serwer:
/ban_install.php
/admin/plugins/ban.php
/templates/<twoj_szablon>/ban.html

W przeglądarce internetowej wykonaj
http://www.twoja_domena.pl/ban_install.php
Po zainstalowaniu rozszerzenia bazy danych MySQL, usuń plik /ban_install.php
Dopasuj plik ban.html do twojego szablonu.

Krok 8.

Otwórz plik member.php i odszukaj
Kod:
if ($user_row = get_user_info($user_id)) {

i zmień go na
Kod:
if (($user_info['user_level'] == ADMIN || !$site_db->query_firstrow("SELECT id FROM ".BAN_TABLE." WHERE type = ".BAN_USERID." AND user_id = ".$user_id." AND (NOT expire OR expire > ".time().") LIMIT 1")) && $user_row = get_user_info($user_id)) {

« Ostatnia zmiana: Luty 06, 2007, 19:27:56 wysłane przez andreoid » Zapisane

:: Canon EOS 20 D..Canon EOS 350 D..Obiektywy:Canon EF 70-200mm f4.0 L USM..EF 28-135mm f3.5/5.6 IS USM..EF S 18-55 Kit..(poluje na Sigma 150mm f2.8 EX DG A
Strony: [1] Do góry Drukuj 
« poprzedni następny »
Skocz do:  



Dziękuję
Dziękuję za odwiedzenie naszego serwisu, mam nadzieję że jesteś zadowolona/y z pomocy którą tutaj otrzymałaś/eś.
Było by nam miło, jeżeli w zamian za uzyskaną pomoc, wkleisz na swojej stronie link do naszego serwisu.

Serwis fotograficzny

lub
Foto forum


Życzymy Ci dalszych sukcesów w dziedzinie prezentacji internetowej,
oraz wielu odwiedzin internautów.
statystyki www stat.pl
Strona wygenerowana w 0.268 sekund z 21 zapytaniami.
Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Design by fotoan.com

Mixokret - tanie noclegi - akcesoria rowerowe - Zaproszenia ślubne - Projektowanie stron - hormann poznań
Foto serwis © 2005-2007 fotoan.com