Ahoj,
unaveni robotama, co vam vkladaji do komentaru a knihy hostu prispevky? Captcha budiz reseni.
Jak na to? Zkuste pouzit to, co jsem ve chvilich nouze upatlal ja (nebo upravit - budu rad za pripominky, nebot si nedelam iluze o vlastni dokonalosti ci neomylnosti).
Hned na zacatek bych upozornil, ze krome captcha.php jsem vse ostatni delal od oka a bez testovani a tudiz neni uplne zarucena funkcnost - duvodem je to, ze pouzivam verzi phpRS, ktera presla temer kompletnim redesignem z duvodu, ktere jsem tu jiz nekolikrat psal a aktualni skripty jsou s ni hrube nekompatibilni.
captcha.php ma pridelany ne-objektovy wrapper a je udelana tak, aby kousla i verzi 2.8.0 a jeji bizarni pristup k DB, nicmene priklad vlozeni do komentaru je pouze pro verzi 2.6.5 a ma slouzit spise jako proof-of-concept, ktery jsem dal k dispozici jednomu nestastnikovi, ktery nebyl schopen to zaimplementovat sam - casem mozna pribude i to stejne pro knihu hostu.
Pokud se najde nejaky fanda PHP, ktery ma cas a naladu to otestovat, doladit a prenest i do verze 2.8, budu take rad.
Jako zaklad sem pouzil verzi pro utf-8, ale byl sem zdesen jednak tim, ze samotny skript comment.php je v kodovani latin1(!), druhak to, ze dodnes chybi funkce nahledu clanku pred ulozenim, ktera je pro captchu velmi treba - asi nikdo by nebyl rad, kdyby zadal spatne kod a zmizel mu cely prispevek. Narychlo jsem to vyresil funkci NovyReFormKomCheck(), kterou bude treba dopracovat a zkontrolovat, jestli se nahled korektne ulozi i pri vlozeni noveho prispevku.
Veskere potrebne veci naleznete zde: [
http://www.chlast.cz/phprs/captcha.tar.gz]
Potrebujete:
PHP 4.2+
GDLib 1.6+
FreeType 2
vetsinu nastaveni sem se snazil komentovat v captcha.php, pokud by neco bylo nejasne, vysvetlim po emailu.
Tak a tedka postup instalace:
1) Provedte patch na databazi (patch.sql):
CREATE TABLE rs_captcha (
id int(11) NOT NULL auto_increment,
public_key tinytext,
private_key tinytext,
created datetime default NULL,
try_cnt tinyint(4) default '0',
PRIMARY KEY (id),
KEY captcha_created (created),
FULLTEXT KEY captcha_public_key (public_key),
FULLTEXT KEY captcha_private_key (private_key)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2) do rootu sveho phpRS umistite soubor captcha.php.
3) Pripadne zmodifikujete konstanty v captcha.php
4) v rootu vytvorite adresar ttf/ (lze zmenit v captcha.php) a do nej nakopirujete 1 a vice trueType Fontu (jakekoliv soubory s koncovkou ttf, ale pozor, aby byly citelne - windings by se zadavaly z webu dost blbe)
5) zazalohujete svuj comment.php
6) nahradite comment.php tim, co je v archivu, nebo tim, co nekdo opravi.
To by melo stacit.