Any suggestion on what variable type to use to store the variables for each connection : $Pass_Millis_Start and $Pass_Millis_Last ? There could be any number of combinations.
You won't be using $ as part of the variable name on the Arduino, so I'd recommend dropping it now.
The values will be passed back and forth as strings. The values in the strings need to be converted to numbers in order to compare them. They will be unsigned longs in the first place, so that seems to pretty well dictate the type.
I think the ethernet shield can only accept 4 connections at a time (?)
but I can't limit to 4 variables.
I don't see the connection. Each request that arrives has, or does not have, a timestamp. If it does, you do one thing. If it doesn't, you do something else.
If it has a "current" time stamp, you do one thing. If not, you do something else.
For example, lets say that my phone's internet connection keeps dropping after I submit the password, and I don't get the reply page that contains the $passID values, I would try to connect again. This would create another $Pass_Millis_Start and $Pass_Millis_Last.
It would create, send, and forget all about the Pass_Millis_Start value. It would get, or not, a valid, or not, Pass_Millis_Last value from the client that is trying to send it information.
The Arduino does not need to ever remember that is has seen a client before, or when it last saw that client.