aplitax/nette-antispam
Composer 安装命令:
composer require aplitax/nette-antispam
包简介
Nette AntiSpam form control.
README 文档
README
Nette-AntiSpam slouží jako formulářová komponenta, která pomocí čtyř metod ochrání formulář proti náhodnému spamu.
Skrytá pole
Do formuláře jsou vygenerována další pole navíc, která jsou před uživatelem skryta JavaScriptem. Pokud bude nějaké z polí vyplněno, bude odesílající identifikován jako spambot.
Skrytí JavaScriptem se dá nahradit vlastní CSS třídou po skrytí pro případ uživatelů bez JavaScriptu.
Časový zámek formuláře
Jelikož spamboti zpravidla odesílají formuláře téměř ihned. Dá se nastavit ve vteřinách doba, pro kterou formulář zablokován.
Kontrolní otázka
Náhodně vygenerovaná, jednoduchá početní úloha, kdy čísla jsou náhodně převáděna na řetězce. Tato otázka je uživateli opět skryta a vyplněna JavaScriptem. Pokud má uživatel JavaScript vypnutý, bude vyzván k vyplnění pole.
Pro tento případ je možné labelu i inputu nastavit vlastní vykreslování.
Prodleva mezi příspěvky
Tato prodleva určuje, za jak dlouho může uživatel znova odeslat příspěvěk.
Composer
composer require urbitech/nette-antispam
Instalace
Do vašeho config.neon do extensions sekce stačí přidat:
antispam: Zet\AntiSpam\AntiSpamExtension
Konfigurace
Komponentu lze nakonfigurovat pomocí následujících nastavení:
- lockTime Časový zámek formuláře, během kterého se nesmí odeslat. Nastavuje se očekávaná prodleva ve vteřinách.
- resendTime Čas, po kterém uživatel může znova odeslat formulář. Nastavuje se očekávání prodleva ve vteřinách Lze vypnout nastavením nuly.
- numbers Pole čísel pro náhodný převod na řetězec. Čísla jsou řazena od nuly.
- question Znění kontrolní otázky.
- translate Zapne lokalizaci pro kontrolní otázku. True/false.
Použití
Registrované rozšíření formuláře lze pak použít následovně:
protected function createComponentForm() { $form = new \Nette\Application\UI\Form(); // Vlastní prvky formuláře ... $form->addAntiSpam("spamControl", 5, 60); }
Funkce addAntiSpam příjímá jako první parametr název prvku, tento jediný parametr je povinný.
Dále lze přidat jako druhý parametr zámek formuláře a jako třetí čas, po kterém bude uživatel moci odeslat znova formulář.
Ověření formuláře
Formulář lze ověřit dle hodnoty, kterou prvek vrátí - Navrací true, pokud odesílatel antispamem prošel nebo false v opačném případě:
$values = $form->getValues(); if($values->spamControl) { // Všechny podmínky pro odeslání formuláře byli splněny. }
Konfigurace
Settery
$antiSpam->setLockTime(); // Nastaví, kolik vteřin musí uplynout před odesláním formuláře. $antiSpam->setResendTime(); // Nastaví, kolik vteřin musí uplynout, než je formulář znova odeslán. $antiSpam->setNumbers(); // Pole čísel vyjádřených slovy pro náhodný převod na řetězec. $antispam->setQuestion(); // Znění kontrolní otázky.
Gettery
$antispam->getError(); // Kod chyby. $antispam->getHiddenFields(); // Vrátí generátor skrytých polí. Užitečné pro přepnutí schování z JS na CSS. $antispam->getQuestionGenerator(); // Vrátí generátor kontrolní otázky s prototypy Labelu a inputu.
Pokud budou splněny všechny podmínky pro odeslání formuláře, bude funkcí getError() navrácena 0. Jinak se vrací číselné označení chyby, které lze testovat proti konstantám ze třídy Zet\AntiSpam\ErrorType.
ErrorType Konstanty
class ErrorType { use StaticClass; const NO_ERROR = 0; const LOCK_TIME = 1; const RESEND_TIME = 2; const HIDDEN_FIELDS = 3; const QUESTION = 4; }
aplitax/nette-antispam 适用场景与选型建议
aplitax/nette-antispam 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 90 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 04 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 aplitax/nette-antispam 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 aplitax/nette-antispam 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 90
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 10
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-04-13