honestly, I'm baffled. If the value is being updated in the database, the login should be working. to make sure that the database is being updated with the correct value, take the string in the email:
eVyVTfNt
and convert it to the sha1 equivilant:
<?php echo(sha1("eVyVTfNt")); ?>
this should match the value in the database.
If it is updating in the database, tyhe only thing I can think is the user is not entering it correctly in the login form. Maybe they are typing it manually and getting the case wrong? or they are copying and pasting an extra space?
<?php echo(sha1("eVyVTfNt ")); ?>
will get a different result than:
<?php echo(sha1("eVyVTfNt")); ?>