Define maximum number of registrations allowed per IP within 24 hours
This example prevents more than 10 user registrations from the same IP address within 24 hours.
Add this code to site.php file:
Am_Di::getInstance()->hook->add(Am_Event::VALIDATE_SAVED_FORM, function (Am_Event_ValidateSavedForm $event) {
$savedForm = $event->getSavedForm();
if (!$savedForm || !$savedForm->isSignup()) {
return;
}
if ($event->getDi()->auth->getUserId()) {
return;
}
$registrationLimit = 10;
$registrationCount = $event->getDi()->db->selectCell(
"SELECT COUNT(*) FROM ?_user WHERE remote_addr=? AND added>?",
$_SERVER['REMOTE_ADDR'],
sqlTime('-24 hours')
);
if ($registrationCount >= $registrationLimit) {
$event->addError(___('Registration from you IP is temporary disabled'));
}
});