Autor Zpráva
Mezerník
Profil *
Zdravím.
Tvořím takový menší, jednoduchý redakční systém ale mám problém. Nepotřebuji korekci kódu, nýbrž navrhnout nejjednoduší způsob. Již z názvu témata lze poznat, že potřebuji banlist, tedy seznam blokovaných IP. Myslíte, že stačí zablokovat přihlašování z IP adres, které jsou v seznamu >nechtěných<, a zakázat anonymní přidávání komentářů? Nebo rovnou zablokovat přístup na celý web pomocí .htaccess? V tom je problém, protože budou jisté adresáře chráněné pomocí deny from all a pokud bych používal jednu jedinnou chybovou stránku pro chybu 403, nevěděl by třeba dotyčný nechtěný, proč ho to na web nepustilo. Je snad nějaký způsob odlišení chyby 403? Vím že to umí Microsoftí serverátko, to má chyby 403, něco. Podporuje to i Apache? Nebo mi doporučíte jednodušší způsob v PHP?

Díky,

Mezerník
cistax
Profil
Na tvém místě bych to udělal tak, že si v db založíš tabulku Bany, a na začátku každé stránky includujes soubor bans.php, kde bude neco ve smyslu

<?php
$SEL = "SELECT * FROM Bany WHERE ip = '$_SERVER['remote_addr']';
$qSEL = mysql_query($SEL);
$fetch = mysql_fetch_array($qSEL);
if(!empty($fetch)){exit;}
?>


Nejsem si uplne jisty, jestli to mam syntaxcne správně v části sql dotazu, ale na to prijdes.
Majkl578
Profil
cistax
nemas

<?php
$SEL = "SELECT * FROM Bany WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'";
$qSEL = mysql_query($SEL);
$fetch = mysql_fetch_array($qSEL);
if(!empty($fetch)){exit;}
?>


popripade (oskliveji)
<?php
$SEL = "SELECT * FROM Bany WHERE ip = '{$_SERVER['REMOTE_ADDR']}'";
$qSEL = mysql_query($SEL);
$fetch = mysql_fetch_array($qSEL);
if(!empty($fetch)){exit;}
?>
cistax
Profil
j, to ale nevadi ne, hlavni je ze jsem nastinil reseni nebo ne?:)
Mezerník
Profil *
Ano, to je hlavní.
Chtěl jsem se ovšem vyhnut tomu, abych teď musel do každého souboru toto vkládat. Je to celkem nudné a když to někdo nebude na webu chtít, bude s tím práce to zas oddělávat (plánuji umístit tento RS na další weby). Řešení to samozřejmě je, ale.. nebyly by další?
AM_
Profil
Řešení je to správné. Samozřejmě to nemusíš vkládat všude, tak si udělej soubor ban_test.php a ten si na každé stránce na začátku pomocí require vlož.
Bylo by pěkné, kdyby jsi pak poslal hlavičku header("HTTP/1.0 403 forbidden") a nějaký vlastní dokument, který uživateli ukáže, že má ban, a ne tam dát jenom exit, ani lidi co si zasloužili ban si nezaslouží hledět na bílou stránku a přemýšlet, co s tím je ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: