This class can be generate forms that prevent submission by spam robots without requiring human users to enter special values.
It generates hidden inputs for forms that have special values that are verified on the server after the form is submitted to eventually detect whether the form was sent by a spam robot.
The class can generate an hidden input that contains an encoded value of the user browser, user computer IP address and the current time.
The class verifies whether these browser name and IP address are still the same, and also whether the form is being submitted by a normal time interval after it was create, like when it is submitted by a real human user.
The class also generates a text input that are invisible for the user. A human user would not fill this input. If the input is submitted with a value, it was certainly a robot.
When the class detects a situation that demonstrates the form was submitted by a robot, the application should not accept the form submission.