Oslovilo mě několik lidí s prosbou o radu, jak se zbavit spamu ve
Fotogalerii používající systém
Coppermine. Celé řešení je vlastně v implementaci pluginu Captcha, který způsobí, že neregistrovaný uživatel musí při různých operacích opisovat kód z obrázku, což spamerským robotům výrazně ztěžuje práci.
Tento popis je více méně překladem návodu na Coppermine
fóru a instrukcí obsažených přímo v pluginu.
- Plugin vyžaduje na serveru nainstalovanou knihovnu GD 2.x s podporou FreeType. Nejprve si tedy ověřte, že ji máte. V galerii - Administrátorské nástroje -> Zobraz phpinfo. Sekce GD musí obsahovat následující:
- GD Support - enabled
- GD Version - 2.0 or higher
- FreeType Support - enabled
- Pokud máte aktivní starší verzi pluginu Captcha, tak ji odinstalujte:
- V galerii najděte Plugin Manager (Konfigurace -> Hlavní nastavení -> Zapnout pluginy -> Nastav pluginy) a odinstalujte plugin Captcha kliknutím na křížek.
- Odstraňte adresář "captcha" z adresáře "plugins".
- Stáhněte si archiv z fóra, nebo přímo z toto serveru.
- Rozbalte archiv a adresář "captcha" nakopírujte do adresáře "plugins".
- V galerii pomocí Plugin Manageru (Konfigurace -> Hlavní nastavení -> Zapnout pluginy -> Nastav pluginy) nainstalujte plugin Captcha kliknutím na "i".
- Zkopírujte soubor "plugins/captcha/captcha.php" do hlavního (root) adresáře galerie. Na Linuxu je vhodnější vytvořit symbolický link pomocí "ln -s plugins/captcha/captcha.php captcha.php".
- Zkopírujte soubor "plugins/captcha/lang/english.php" na "plugins/captcha/lang/czech.php" a řádky:
$lang_plugin_captcha_conf = 'Confirm:';
$lang_plugin_captcha_error = 'Confirmation code didn\'t match';
upravte na:
$lang_plugin_captcha_conf = 'Opište kód';
$lang_plugin_captcha_error = 'Neopsali jste kód správně, zkuste to ještě jednou';
- Hotovo, můžete vyzkoušet.
Další nastavení
- V souboru "captcha.php" můžete pod řádkem "$oPhpCaptcha = new PhpCaptcha(" změnit:
$aFonts = array('plugins/captcha/fonts/acidic.ttf', 'DALŠÍ FONT'); //Fonty
145, // Šířku obrázku
45, // Výšku obrázku
5, // Počet znaků
70, // Počet čar znemožnujících rozpoznání písma
false, // Přidání (true), nebo odebrání (false) stínu písma
$sOwnerText = 'http://www.fotecka.net', // Text pod obrázkem
$aCharSet = array(), // Seznam používaných znaků (prázdné pole znamená A - Z)
$sBackgroundImage = '' // Podkladový obrázek
- V souboru "codebase.php"
- změnou proměnné "$CAPTCHA_TIMEOUT" změnit hodnotu platnosti kódu v databázi. číslo je uvedeno v sekundách.
- změnou pole "$CAPTCHA_DISABLE" určit které skupiny nemusí opisovat kód při
$CAPTCHA_DISABLE = array('login' => 'Administrators,Registered', Přihlášení
'register' => 'Administrators,Registered', Registraci
'comment' => 'Administrators,Registered', Vložení komentáře
'report' => 'Administrators', Reportu
'ecard' => 'Administrators', Odeslání pohlednice
);Z mého osobního pohledu jsou důležité řádky komentářů a pohlednic.
Pokud chcete, aby všichni registrovaní uživatelé mohli přidávat komentáře bez opisování kódu, nechte je ve skupině "Registred" a nemusíte dál nic nastavoval.
Uvedený postup je vyzkoušený na galerii verze 1.4.14 a pluginu verze 3.0. Podle sdělení na stránkách projektu by eliminování spamu pomocí opisování kódu z obrázku mělo být automaticky zakomponováno do verze 1.5 a nebude tedy nutné nic explicitně dodělávat.
Funkční plugin můžete vidět například při přidávání komentářů k fotkám v mojí fotogalerii.