You’re trying to fetch in the wrong way:
$animals = intval($_POST['animals']);
First of all, when you make bigger scripts, you will want to know just where exactly your data is coming from. In order to do so, I’ve replaced $_REQUEST with $_POST. Basically it has the same effect, except for that you’re excluding $_GET, $_COOKIE, $_SERVER, $_ENV and $_SESSION variables. Makes things a little neat and tidy.
Secondly, I’ve changed the name of the array index from ‘$animals[ ]’ to ‘animals’. This because in the form, your text input is also called ‘animals’, and not ‘$animals[ ]’.
Third, which is a security measure, I’ve used the function intval(). This function converts the value of $_POST[‘animals’] to an integer value. If the value is a string, object, or w/e, it tries to discern a number, if it can’t, it returns 0. This way, you won’t be stuck with unexpected values that may crash your script.
Also, use error_reporting(E_ALL) for debugging purposes. See also my signature