Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: banowanie problem...
Forum PHP.pl > Forum > PHP
sowa75
Witam!

Jestem początkujący w php mam problem ze skryptem banowania użytkowników strony przez ip Prosze pomóżcie 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...
Statozor
Ma być index.php a nie index.html
I nie wywolujesz funkcji, ty ją tylko definiujesz
sowa75
dalej nic przpuszcza treść strony...
satsun
A wyskakuje o tym ze jestes zbanowany w ogole?
sowa75
Cytat(satsun @ 14.11.2006, 22:31:42 ) *
A wyskakuje o tym ze jestes zbanowany w ogole?


własnie nie przepuszcza normalną treść strony...
satsun
A gdzie wywolujesz funkcje ? tongue.gif
skowron-line
no dobra masz sprawdzanie a skad pobierasz te IP?? chyba zapomniales

  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. ?>


ale oczywiscie moge sie mylic

edit: pomyleczka
sowa75
Cytat(skowron-line @ 14.11.2006, 22:59:27 ) *
no dobra masz sprawdzanie a skad pobierasz te IP?? chyba zapomniales

  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. ?>


ale oczywiscie moge sie mylic

edit: pomyleczka


wiem ze tak sie pobiera ip...
ip biore nieważne skąd ważne zeby działało (musze je dodać do mysql co jush zrobiłem) próbowałem na swoim ip i przepuszcza treść strony wyglada na to ze jestem bardzo początkujący... sadsmiley02.gif


Cytat(satsun @ 14.11.2006, 22:49:17 ) *
A gdzie wywolujesz funkcje ? tongue.gif


w lini 19 pliku ban.php
skowron-line
  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3.  sprawdz_banned_ip($ip)
  4. ?>

i zobacz co sie stanie

Kod
w lini 19 pliku ban.php
hehe
to chyba nie wiesz jak sie wywoluje funkcje
sowa75
mam głupie pytanie bo już sie pogubiłem do którego pliku wkleić i gdzie bo jak do index.php przed text to wychodzi błąd:

Fatal error: Call to undefined function: sprawdz_banned_ip() in /var/www/sites/yoyo.pl/g/o/god-forces/banid/index.php on line 3

a do drugiego pliku niewiem gdzie to niepasuje...

nieśmiejcie sie ja dopiero poznaje php... sadsmiley02.gif
skowron-line
  1. <?php
  2. include("ban.php");
  3. ?>
thornag
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 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.
sowa75
wielkie dzięki wszystko działa...

aha powiedzcie który z kursów jest lepszy...

http://www.leon.w-wa.pl/texts/kurs/



http://webmade.org/kursy/kurs_php/


wielkie dzięki za pomoc... biggrin.gif
nospor
Cytat
aha powiedzcie który z kursów jest lepszy...

http://www.leon.w-wa.pl/texts/kurs/



http://webmade.org/kursy/kurs_php/

Czy to jest pytanie podchwytliwe? Jesli nie, to zajrzyj do jednego i do drugiego, a zobaczysz ze obydwa sa identyczne w tresci. Roznią sie tylko wygladem. No i jedem ma o jeden rozdzial wiecej od drugiego.
sowa75
Tak to była taka mała próba szukając w internecie kursów znajduje ich bardzo dużo lecz większość nich nieróżni się niczym są pisane słowo w słowo tak samo przy wielu niema stopki z autorem (czy to nie jest nielegalne)...

Nie będe podawał przykładów...
Sprawdźcie w google.
skowron-line
wiesz kiedys byl taki serial M.A.S.H i tam byl taki text
ogolnie sytuacja byla taka ze kolesia cos bolalo
i lekarz mowi
"-niech pan pije lampke koniaku dziennie
- a to pomoze??
- napewno nie zaszkodzi"

kumasz co chcem powiedziec
sowa75
spoko rozumie może więcej tekstów o php niezaszkodzi ale i pomoże ale to jest jak dla mnie plagiat lub zwykła kradzież... blink.gif
empathon
ja do pobrania ip uzywam czegos takiego. "$_SERVER['REMOTE_ADDR']" nie zawsze dziala

  1. <?php
  2. $ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );
  3. ?>
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.