Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Jak zabanovat IP

Zdravím,

na mé stránce kde se zapisují výsledky, mám uděláno že při zápisu se zapíše do db i IP adresa počítače z které byl výsledek zapsán.
Jak zabanovat danou IP když někdo zapíše několikrát za sebou falešný výsledek? Samozřejmě aby šlo i po nějaké době odbanovat.

Neměl by někdo odkaz na nějaký script?

Děkuji.

Předmět Autor Datum
Tak jsem si našel tento script, vypadá že mi je to přesně ono co potřebuji. script A funguje :D
Gizzer 03.04.2012 09:28
Gizzer
Tak nefunguje úplně, podle toho scriptu mám dát toto <? include "config.php"; include "func.ban.php…
Gizzer 03.04.2012 10:44
Gizzer
Vůbec tomu nerozumím, ale aby ti někdo rozumně poradil, tak by tady asi měla být ta chyba...
IQ37 03.04.2012 10:54
IQ37
sry. To co vkládám na stránku která má být zabanovaná pro tu IP je toto // func.ban.php // checks…
Gizzer 03.04.2012 11:01
Gizzer
Nevím, co jsi všechno zrealizoval, ale : - musíš mít založenou databázi MySQL - k ní se musíš připoj…
hynajs 03.04.2012 11:31
hynajs
ano tabulku vytvořenou mám, jde do ní zapisovat IP kterou chci zabanovat avšak můj problém je že dán…
Gizzer 03.04.2012 11:37
Gizzer
Máš v pořádku obsah config.php ? Proběhne include a skrze něj řádně připojení ?
hynajs 03.04.2012 11:48
hynajs
Takže kod je přesně takto: <? include "../settings.php"; include "../func.ban.php"; checkban($_SERV…
Gizzer 03.04.2012 12:01
Gizzer
Tak už to funguje ikdyž jsem s tím nic neudělal :D poslední
Gizzer 03.04.2012 12:04
Gizzer

sry.

To co vkládám na stránku která má být zabanovaná pro tu IP je toto

// func.ban.php
// checks the ip to see if it is banned
function checkban($ip)
{
// querys database
$q = mysql_query("SELECT * FROM `banned` WHERE `ip` = '$ip' LIMIT 1");
$get = mysql_num_rows($q);
// if found
if ($get == "1")
{
// deny user access
$r=mysql_fetch_array($q);
die("You have been banned from this website until $r[legnth]. If you feel this is in error, please contact the webmaster.");
}
} 

Ale je to nefunkční, chybu to hlásí

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /www.......

a to na řádku

$q = mysql_query("SELECT * FROM `banned` WHERE `ip` = '$ip' LIMIT 1");

Nevím, co jsi všechno zrealizoval, ale :
- musíš mít založenou databázi MySQL
- k ní se musíš připojit
- v ní vytvoříš tabulku banned (viz script)
- pak se k té databázi připojí i script, který volá funkci checkban

Po splnění těchto podmínek by se měl vykonat příkaz mysql_query ve výše zmíněné funkci.

Takže kod je přesně takto:

<? 
include "../settings.php";
include "../func.ban.php";
checkban($_SERVER['REMOTE_ADDR']);
{
// querys database
$q = mysql_query("SELECT * FROM `banned` WHERE `ip` = '$ip' LIMIT 1");
$get = mysql_num_rows($q);
// if found
if ($get == "1")
{
// deny user access
$r=mysql_fetch_array($q);
die("<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"http://domain.com/Style.css\">You Are Now Banned!!!");
}
} 
?>

A i přesto že jsem si zabanoval svojí IP :D tak se na stránku dostanu. Tak nevím.
Obsah settings.php je opravdu v pořádku, připojují přes něj více věcí.

Zpět do poradny Odpovědět na původní otázku Nahoru