When I log in with the credentials you provided the form seems to appear properly. What exactly isn't working?
To add an expiration time limit, just record the date/time when the email is generated in a new column in the database. Then on the return page linked in the email you can update the recordset to verify the date it was created is not "expired" based on however long you want the link to work by adding to the SQL WHERE clause.
Then you can add a couple more recordsets to see if everything else is valid but the user is already activated, or if everything is valid but the time limit has expired. Then create messages on the page based on the results from those recordsets.