nickurt/laravel-stopforumspam

StopForumSpam for Laravel 10.x/11.x

1.9 2024-03-09 14:32 UTC

This package is auto-updated.

Last update: 2024-11-23 14:40:50 UTC


README

Build Status Total Downloads Latest Stable Version MIT Licensed

Installation

Install this package with composer:

composer require nickurt/laravel-stopforumspam

Copy the config files for the StopForumSpam-plugin

php artisan vendor:publish --provider="nickurt\StopForumSpam\ServiceProvider" --tag="config"

Examples

Validation Rule - IsSpamEmail

// FormRequest ...

public function rules()
{
    return [
        'email' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamEmail(20)]
    ];
}

// Manually ...

$validator = validator()->make(request()->all(), ['email' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamEmail(20)]]);

The IsSpamEmail-rule has one optional paramter frequency (default 10) to validate the request.

Validation Rule - IsSpamIp

// FormRequest ...

public function rules()
{
    return [
        'ip' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamIp(20)]
    ];
}

// Manually ...

$validator = validator()->make(request()->all(), ['ip' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamIp(20)]]);

The IsSpamIp-rule has one optional paramter frequency (default 10) to validate the request.

Validation Rule - IsSpamUsername

// FormRequest ...

public function rules()
{
    return [
        'username' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamUsername(20)]
    ];
}

// Manually ...

$validator = validator()->make(request()->all(), ['username' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamUsername(20)]]);

The IsSpamUsername-rule has one optional paramter frequency (default 10) to validate the request.

Manually Usage - IsSpamEmail

\StopForumSpam::setEmail('nickurt@users.noreply.github.com')->isSpamEmail();

Manually Usage - IsSpamIp

\StopForumSpam::setIp('8.8.8.8')->isSpamIp();

Manually Usage - IsSpamUsername

\StopForumSpam::setUsername('nickurt')->isSpamUsername();

Events

You can listen to the IsSpamEmail, IsSpamIp and IsSpamUsername events, e.g. if you want to log all the IsSpam-requests in your application

IsSpamEmail Event

This event will be fired when the request-email is above the frequency of sending spam nickurt\StopForumSpam\Events\IsSpamEmail

IsSpamIp Event

This event will be fired when the request-ip is above the frequency of sending spam nickurt\StopForumSpam\Events\IsSpamIp

IsSpamUsername Event

This event will be fired when the request-username is above the frequency of sending spam nickurt\StopForumSpam\Events\IsSpamUsername

Tests

composer test