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.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
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… nový
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

Vůbec tomu nerozumím, ale aby ti někdo rozumně poradil, tak by tady asi měla být ta chyba...

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