jqqjj / simple-anti-robot
Simple APIs for protecting your application far away from robots
Installs: 21
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:php
Requires
- php: >=5.3
This package is auto-updated.
Last update: 2024-05-08 20:08:23 UTC
README
Simple APIs for protecting your application far away from robots.
Installation
Run the following to include this via Composer
composer require jqqjj/simple-anti-robot
Usage
Create mysql tables(when using DBTableGateway adapter)
CREATE TABLE `simple_anti_robot_sessions` ( `session_id` char(32) NOT NULL, `remaining` int(10) unsigned DEFAULT NULL, `expired_time` timestamp NULL DEFAULT NULL, PRIMARY KEY (`session_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `simple_anti_robot_attempts` ( `session_id` char(32) NOT NULL, `status` tinyint(3) unsigned NOT NULL, `add_time` timestamp NULL DEFAULT NULL, `ip` char(15) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Code:
use Jqqjj\SimpleAntiRobot\Manager; use Jqqjj\SimpleAntiRobot\Adapter\DBTableGateway; //Create a PDO object $pdo = new \PDO('mysql:host=localhost;port=3306;dbname=yourdbname','dbuser','dbpasswd'); $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); //Create an adapter(Only MySQL adapter is supported Currently) $adapter = new DBTableGateway($pdo); $object = new Manager($adapter); //Run the codes when the client do something incorrectly $object->attemptFailure(); //Run the codes when the client do things as you want to be $object->attemptSuccess(); //Check it, it will return false when the client is a robot if($object->isHuman()){ //human } if($object->isRobot()){ //robot } //Finally, output the cookie $object->outputCookie(); //OR header("Set-Cookie:".$object->getOutputCookieString());
License
This package is licensed under the MIT license.