[addon captcha] Captcha form control

před 10 lety

pmg
Člen | 372
+
0
-

Diskuse ke stránce Captcha form control


V případě návrhů na vylepšení klidně aktualizujte archiv v repozitáři. WTFPL rules!

před 10 lety

Honza Marek
Člen | 1674
+
0
-

Nefunguje horní stahovací odkaz, ale neumím to opravit, protože nevidím chybu.

před 10 lety

rokerkony
Člen | 123
+
0
-

je tam vynechany 164 za lomitkem… za files// misto files/164/

Editoval rokerkony (18. 6. 2009 10:21)

před 10 lety

pmg
Člen | 372
+
0
-

Chyba vznikla tak, že jsem vytvořil novou stránku s odkazem na soubor, který jsem připojil až v další revizi (pro novou stránku tam není pole). Teď jsem stránku zkusil znovu uložit a vypadá to, že už odkaz funguje. Dík.

před 10 lety

pmg
Člen | 372
+
0
-

Zkusil jsem třídu a je to parádní. Perfektní objektovej kód!

před 10 lety

pmg
Člen | 372
+
0
-

Dík, to mě těší… jen sis zapomněl změnit login.

před 10 lety

o5
Člen | 417
+
0
-

???? :-D

před 10 lety

jasir
Člen | 748
+
0
-

Hahahaha, hele, teď si mě strašně pobavil :-) Super. Jdu se na tu třídu teda hned podívat abych sem mohl napsat něco podobnýho. Ale už předem díky za práci na té komponentě, už teď vím že se můžu těšít na parádní třídu a perfektní objektový kód :)

Editoval jasir (19. 6. 2009 22:39)

před 10 lety

nAS
Člen | 279
+
0
-

LOL Tak tomu říkám marketing! :-DDD

před 10 lety

pmg
Člen | 372
+
0
-

Výborně, přesně tohle jsem chtěl slyšet. :-D Až zjistíš, že to zas tak skvělé není, třeba to poslouží aspoň pro inspiraci. Kód je ve verzi 0.1, tudíž předmětem vývoje.

Editoval pmg (19. 6. 2009 22:46)

před 10 lety

Honza Marek
Člen | 1674
+
0
-

Hehe… ale příště se můžem domluvit a něco si nenápadně pochválit navzájem :-D

před 10 lety

pmg
Člen | 372
+
0
-

OK, co za komponentu plánuješ teď? Abych měl čas si připravit oslavnou píseň… :-)

před 10 lety

Honza Marek
Člen | 1674
+
0
-

RssControl a CalendarControl. Ovšem musim pořešit filozofickou otázku jak do těch komponent cpát data, aby byly dostatečně obecné a znovupoužitelné.

před 10 lety

pmg
Člen | 372
+
0
-

Nabízelo by se třeba podědit něco z Nette\Collections a překrýt metodu beforeAdd, aby byla data reprezentovaná samostatným objektem. Otázku znovupoužitelnosti to ale moc neřeší. Nevím, jestli je pro kalendářová data nějaký standardizovaný formát.

před 10 lety

jasir
Člen | 748
+
0
-

pmg napsal(a):

Výborně, přesně tohle jsem chtěl slyšet. :-D Až zjistíš, že to zas tak skvělé není, třeba to poslouží aspoň pro inspiraci. Kód je ve verzi 0.1, tudíž předmětem vývoje.

Tak jsem to tak nějak doprozkoumal. A? Fakt skvělá práce! Krásný kód, spoustu jsem se z toho přiučil. Takže moc díky!

před 10 lety

pmg
Člen | 372
+
0
-

Dík za otestování, opisoval jsem odsud. :-)

před 10 lety

Tomik
Nette Evangelist | 489
+
0
-

OT: Kód je to pěkný! :) A jen tak mimochodem, kdo je ten kamarád s tím IQ 160? :)

před 10 lety

pmg
Člen | 372
+
0
-

Asi ho neznáš, dělá u filmu. :-P

před 10 lety

tom
Člen | 147
+
0
-

jakym zpusobem by slo pridat tlacitko pro znovunacteni obrazku? kdyby si nekdo chtel vygenerovat jine nez je mu nabidnuto?

před 10 lety

pmg
Člen | 372
+
0
-
  • Při generování se nepoužívají snadno zaměnitelné znaky.
  • Při špatném opsání se vygeneruje obrázek s novým distortem.

Ale abych odpověděl na otázku, muselo by to být submitovací tlačítko, které by ve třídě zavolalo metodu, která by nastavila $this->word = NULL. Snad by to takhle šlo.

Máš pocit, že by tam taková metoda měla být?

před 10 lety

buff
Člen | 63
+
0
-

Zdravím. Hází mi to chybičku:

Notice: Use of undefined constant IMG_FILTER_SMOOTH - assumed 'IMG_FILTER_SMOOTH' in /home/miroslav/www/teachers/libs/nette-extras/Captcha.php on line 600

Nevíte prosím někdo, co s tím? (Když obě volání filtrů na řádcích 600 a 601 zakomentuju, tak to funguje, ale asi je to bez těch filtrů)

Mám nainstalovaný GD modul do PHP a nahodil jsem naslepo i php-imagemagick, ale žádná změna.

před 10 lety

Jan Tvrdík
Nette guru | 2563
+
0
-

Nedávno jsem řešil stejný problém. Tohle je důvod celého problému:

Note: This function (imagefilter) is only available if PHP is compiled with the bundled version of the GD library.

Editoval Jan Tvrdík (24. 7. 2009 15:17)

před 10 lety

buff
Člen | 63
+
0
-

Jan Tvrdík: Mockrát díky za informaci. Teď jen nevím, jak se k tomu postavit, rekompilovat? Ale to už si rozhodnu sám ;-)

před 10 lety

Gringo
Člen | 32
+
0
-

Dale by se nějak zařídit, aby se captcha neobjevila v $form->getValues()?

před 10 lety

pmg
Člen | 372
+
0
-

Asi by šlo v konstruktoru nastavit $this->setDisabled() a upravit metodu Captcha::getInput:

$control = parent::getControl();
$control->disabled = FALSE;

ConventionalRenderer jinak z pochopitelných důvodů neumožňuje čistou metodou přidávat další typy prvků, takže je to spíš takový hack.

Sám jsem control zatím nikde neuplatnil, používám jednodušší ochranu.

$session = Environment::getSession('contact');
if ($session->key === NULL) {
    $session->key = mt_rand(20, 99);
}

$key = $session->key;

$a = mt_rand(10, $key - 10);
$b = $key - $a;

$form->addText('age', "$a + $b =")
    ->addRule(Form::EQUAL, 'Prove that you are human by computing the expression.', $key);

Další věci, které by chtěly fixnout:

  • Odstranit řádek require_once NetteLoader::getInstance()->base . '/Forms/Controls/TextBase.php';, protože přináší více škody než užitku. A je to hack. [fixed]
  • Extension method přidávat na FormContainer a ne na Form. FormContainer by mohl umožnit přidávat jiné prvky pomocí přetěžování, ale celkem chápu, proč to nedělá. [fixed]
  • Celý projekt na někoho delegovat, nebo utopit. :-)

Editoval pmg (9. 8. 2009 21:37)

před 10 lety

pmg
Člen | 372
+
0
-

Celý projekt na někoho delegovat, nebo utopit. :-)

Už vím: Captcha se ode dneška bude jmenovat Adminer.

před 10 lety

PetrP
Člen | 587
+
0
-

Gringo napsal(a):

Dale by se nějak zařídit, aby se captcha neobjevila v $form->getValues()?

Jaký je k tomu důvod?

před 10 lety

pmg
Člen | 372
+
0
-

Třeba když se z toho rovnou staví dotaz do databáze.

před 10 lety

jasir
Člen | 748
+
0
-

pmg napsal(a):

Celý projekt na někoho delegovat, nebo utopit. :-)

Už vím: Captcha se ode dneška bude jmenovat Adminer.

Jediné racionální řešení iracionálního problému. Gratuluji. ;-)

před 10 lety

PetrP
Člen | 587
+
0
-

pmg napsal(a):

Třeba když se z toho rovnou staví dotaz do databáze.

Tak pořád můzu unset($value['captcha'])

před 10 lety

pmg
Člen | 372
+
0
-

Někdy dříve se to tady řešilo u dvojího zadávání hesla a prý to není pěkné řešení. Cílem prostě je to hnedka kopnout do databáze. :-)

Teď mě napadlo, že by to šlo řešit přidáním více kontejnerů do formuláře, které by oddělily zrno od plev. FormContainer::addContainer().

před 10 lety

PetrP
Člen | 587
+
0
-

addContainer by ti nepomohl aspoň myslím:
Tedy jen by se ti to zanořilo do dalšího pole

//getValues
array(
    'text' => 'bla bka',
    'nazev_contejneru' => array(
        'captcha' => 'xczxc'
    )
)

Možná by ve forms mohlo existovat nejake nastaveni na Controlu, neco jako disabled, ale co by se neprojevovalo do Html, ale jen do getValues

něco jako $form->addText(...)->ignore()

před 10 lety

pmg
Člen | 372
+
0
-

addContainer by ti nepomohl

Jasně, možná jen u více položek, že by se to nemuselo jmenovat všechno.

Možná by ve forms mohlo existovat nejake nastaveni na Controlu, neco jako disabled, ale co by se neprojevovalo do Html, ale jen do getValues

Ano, ale v něktěrých případech by stejně bylo potřeba předělat celou metodu getValues.

před 10 lety

Inza
Člen | 330
+
0
-

Captcha je zcela dokonalá – a odedneška ji máme i ve 3D!

Homepage: http://beta.dvojmo.cz/…e-framework/
Stránka v Nette/Extras: https://addons.nette.org/cs/captcha-3d
Thread zde na fóru: https://forum.nette.org/…-formcontrol?…

Co na to říkáte?

před 10 lety

Martin Mates
Člen | 182
+
0
-

Zdravíčko. Mě ta captcha nefunguje. Dostanu hned

Compile Error

Declaration of Captcha::loadHttpData() must be compatible with that of IFormControl::loadHttpData()

Ná řádku 736 v Captcha.php. Možná se v Nette něco změnilo. Mám verzi z minulého týdne. Nějaké nápady? Díky.

před 10 lety

redhead
Člen | 1315
+
0
-

Řekl bych, že s vývojovou verzí nette nebude zcela kompatibilní. Nejspíš se změnila definice metody loadHttpData v té interface.

před 10 lety

tom
Člen | 147
+
0
-

redhead napsal(a):

Řekl bych, že s vývojovou verzí nette nebude zcela kompatibilní. Nejspíš se změnila definice metody loadHttpData v té interface.

Me tohle hlasi na stabilni verzi 0.9.1 stable (ze dne 18. 9. 2009) :(

před 10 lety

tom
Člen | 147
+
0
-

redhead napsal(a):

… Nejspíš se změnila definice metody loadHttpData v té interface.

metoda loadHttpData, ktera je nyni ve FormControl jiz neobsahuje parametr

  • @param array

před 10 lety

tom
Člen | 147
+
0
-

Funguje tato Captcha nekomu na Nette verzi 0.9?

před 10 lety

Panda
Člen | 570
+
0
-

Po úpravách ano. Zkus toto: http://jan.smitka.org/…/Captcha.zip.

před 10 lety

raketoplan2005
Člen | 146
+
0
-

Bohužel stále nejsem schopen captchu zprovoznit na Nette 0.9.1 stable:

Originální verze captchy:
Declaration of Captcha::loadHttpData() must be compatible with that of IFormControl::loadHttpData()

Upravená verze od uživatele „Panda“:
Fatal error: Call to undefined function get_called_class() in /var/www/web/libs/Nette/Object.php on line 141

před 10 lety

Ondřej Mirtes
Člen | 1539
+
0
-

U Pandovy verze musíš poslední řádek upravit takto:

- FormContainer::extensionMethod('addCaptcha', array('Captcha', 'addCaptcha'));
+ FormContainer::extensionMethod('FormContainer::addCaptcha', array('Captcha', 'addCaptcha'));

Jde o fix pro PHP 5.2 (které si samo neumí zjistit, jakou třídu rozšiřuješ).

před 10 lety

tom
Člen | 147
+
0
-

čím může být způsobené, že se mi vlastní obrázek ne a ne zobrazit, přitom v HTML kódu je?

před 10 lety

pmg
Člen | 372
+
0
-

Sorry, Nette se rychle mění a nestíhám komponentu těmto změnám přizpůsobovat. Obrázek je možná v kódu, ale ještě se musí ve druhém požadavku vygenerovat.

Možná bude lepší komponentu vůbec nepoužívat a stránku zrušit.

před 10 lety

tom
Člen | 147
+
0
-

pmg napsal(a):

Sorry, Nette se rychle mění a nestíhám komponentu těmto změnám přizpůsobovat.

jasan, chapu :)

Obrázek je možná v kódu, ale ještě se musí ve druhém požadavku vygenerovat.

kdyz si zobrazim vygenerovany zdrojovy kod tak dostanu neco takove

<img class="captcha-image" src="/web/captcha/show?key=1015" width="154" height="56" alt="" />

ale obrazek nikde :(

před 10 lety

redhead
Člen | 1315
+
0
-

nejspíš to znamená, že obrázek se na té stránce nevygeneruje, a vrací se prazdný.. Když si otevřeš v browseru tu URL obrázku, tak uvidíš. Ovšem nevím kde může být chyba..

před 10 lety

Tomik
Nette Evangelist | 489
+
0
-

Otevři adresu /web/captcha/show?key=1015, možná se zobrazí Laděnka, která ti řekne, kde je problém. Pokud ne, je třeba kód zřejmě odkrokovat.

před 10 lety

pjoter
Člen | 119
+
0
-

Nedělal někdo script, který umožňuje vygenerovat nový kód ? nejlépe přes ajax ?

před 10 lety

Ondřej Brejla
Člen | 748
+
0
-

Možná reCaptcha?

Stránky: 1 2 Next RSS tématu