ugrás a tartalomhoz

Űrlapellenőrzés Smarty-val, értékösszehasonlítás

Fedor · 2006. Aug. 15. (K), 15.45
Sziasztok!

Van egy általam karbantartott (de nem általam készített) honlap, amely Smarty-t használ. Sajnos ez utóbbit nem ismerem annyira, de a honlap javítgatása közben már kezdek beletanulgatni, bár még önálló fejlesztésbe még nem vágnék bele ezen a platformon (Tényleg nem tud valaki egy részletes és magyar nyelvű leírást online, vagy könyv formájában?).

A honlapon lévő egyik űrlap elkezdett spam-meket küldözgetni, ami elég kellemetlen, mert az ügyfeleink kapják a generált levelet a mi címünkről. Jött is a feladat, hogy tegyek ellene valamit. Egyelőre annyi jutott eszembe, hogy adaptálom azt a máshol látott megoldást, hogy egy képfájlon elhelyezett szöveget kell kell ellenőrzésképpen megadni, védekezésül a robotok ellen (ha van valakinek jobb módszere a problémára, azt is szívesen fogadom). Ez hagyományos php programozással nevetségesen egyszerű lenne, Smarty-val viszont nem találom a megoldást. Odáig eljutottam - az eddigi form elemeket használva mintaként - hogy miképp ellenőrzöm le, hogy üres -e:

<?php
$mailform->addRule('ell_felirat','Kérem adja meg az ellenőrző kódot','required',null,'client');
?>
Azt is kiderítettem. hogy a require-t mire kell lecserélni, viszont arra nem, hogy a minta értéket hol kell megadni. Ezzel próbálkoztam:

<?php
$mailform->addRule('ell_felirat','Nem a helyes kódot adta meg','compare','xxxxxx','client');
?>
Viszont így bármit írok be, hibásnak érzékeli ('Nem a helyes kódot adta meg'). Rosszul gondoltam, hogy a null a helye az értékmegadásnak? Ha igen, akkor mi a megoldás?

Előre is köszi a segítséget. Addig is azért még nyomozgatok.

Üdv,
Fedor
 
1

Megvan a megoldás

Fedor · 2006. Aug. 15. (K), 16.47
Rossz parancsra akadtam rá elsőre, a jó kód ez:

<?php
$mailform->addRule('ell_felirat','Nem a helyes kódot adta meg','regex','/xxxxxx/','client');
?>
Azért ha van valakinek jobb megoldása a spam-védelemre, azt továbbra is megköszönném...