W takich przypadkach najskuteczniejsze są nietypowe metody i pomoc specjalisty od php (uwaga! nie jestem specjalistą od php).

Można w opisie do strony z zakładaniem konta dopisać uwagę:
"
w polu miasto podczas rejestracji wpisz kod aktywacyjny: 007Po zakończeniu rejestracji i potwierdzeniu adresu email przejdź do edycji swojego profilu i zastąp kod aktywacyjny nazwą twojego miasta"
Następnie w funkcji validaton w pliku signup_form.php trzeba dołożyć regułkę sprawdzającą wartość wpisaną w tym polu i akceptującą prawidłowość wypełnienia formularza jedynie dla podanego ciągu - "kodu aktywacyjnego".
Niewielkie utrudnienie dla zakładających konto, a dla bota bariera nie do pokonania dzięki unikatowości rozwiązania.
Dopisz pod koniec pliku sign_form.php poniższej podane trzy linijki. Żeby było wiadomo gdzie to dać wkleiłem poniżej jak ma wyglądać cały koniec tego pliku.
if ($data['city'] != "007" ) { $errors['email'] = get_string('missingemail'); } if (0 == count($errors)){
return true;
} else {
return $errors;
}
}
}
?>
Efekt będzie taki, że na stronie pokaże się fałszywy komunikat o błędnym adresie email. Bot nie przejdzie tego bo w miejscu miasto będzie wpisywał rózne losowe teksty, a nie żądany kod "
007".