Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> banowanie problem...
sowa75
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.11.2006

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


Witam!

Jestem początkujący w php mam problem ze skryptem banowania użytkowników strony przez ip Prosze pomóżcie (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) :

baza danych którą zrobiłem przez phpMyAdmin na yoyo:

nazwa:banned_ip

id // int(11) // not null // auto_increment // primary key
data // date // not null
powod// varchar(100) // not null
ip // varchar(30) // not null



Skrypt php (ban.php):
  1. <?php
  2.  
  3. $connection = @mysql_connect('mysql2.yoyo.pl', 'nazwa_uzytkownika', '***haslo***')
  4. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  5. $db = @mysql_select_db('nazwa_bazy', $connection)
  6. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  7.  
  8. function sprawdz_banned_ip($ip) {
  9.  
  10. $query = "SELECT id, data, powod FROM banned_ip WHERE ip = '$ip'";
  11. $result = mysql_query($query) or die (mysql_error());
  12. $num_rows = mysql_num_rows($result);
  13.  
  14. if($num_rows >= "1") {
  15. echo '<h2><center><font color="red">Zostałes zbanowany !!</font></center></h2><p></p>';
  16.  
  17. $db = mysql_fetch_array($result);
  18.  
  19. echo "<b>ID</b> $db[id]<br/><b>Zostałes zbanowany</b> ".date("d-m-Y", $db[data])." <br/><b>Za</b> $db[powod]";
  20. exit();
  21. }
  22. }
  23.  
  24. ?>

skrypt łączy sie z bazą danych lecz w pliku np. (index.htm)

  1. <?php
  2. include 'ban.php';
  3. ?>
  4.  
  5.  
  6. treść strony która ma być niewidoczna


treść strony wyskakuje chociaż w bazie danych mam rekord z moim ip i powodem zbanowania i datą...

Z góry dziękuje za chęci i zmarnowany czas...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thornag
post
Post #2





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


Skladajac Ci wszystko do kupy:

test.php
  1. <?php
  2. require_once('ban.php');
  3.  
  4. sprawdz_banned_ip($_SERVER['REMOTE_ADDR']);
  5. ?>



Dlaczego ? Napisales sobie funckje, bardzo ladnie. Teraz tresc tej funkcji trzeba dolaczyc do programu. Stad linia require_once('ban.php'). Samo dolaczenie definicji funkcji nie oznacza jej wywolania, informuje natomiast php ze taka funkcja istnieje i ze jak zostanie wywolana to sie ma odwolac do kodu wewnatrz niej. Dalej kiedy php przygotowane jest na taka funkcje (zna ja), mozemy ja wywolac podajac jako parametr IP wywolujacego, linijka sprawdz_banned_ip($_SERVER['REMOTE_ADDR']).

Oczywiscie includowac/requirowac (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) plik wyatrczy tylko raz, potrzebna jest tylko jedna definicja bo ona zawze jest taka sama. Czesto stosowana praktyka jest tworzenie plikow z funckjami typu, funckje.formularze.php, funckje.bazadanych.php, i dolaczanie ich na poczatku plikow w ktorych sa potrzebne.

Ogolnie poszukaj jakis kursow po necie, to o co pytasz to sa podstawy podstaw wiec spodziewam sie ze informacji na ten temat bedzie zatrzesnienie.
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: 5.10.2025 - 04:56