
The common message is: "Invalid username / OR password."
Well, which was it?
It's very easy for the program to give you more specific information. Here's what happens when you login:
The program searches the database for a record containing that username AND password. If no record is found, then login is invalid. Most programs just spit out that message "Invalid username OR password" because one of those 2 was the culprit. (Actually, both inputs could have been wrong)
To clarify the matter, the program only needs to do an additional call to the database, looking for a record of the username.
If it finds a record with that username, then it knows that the password was wrong.
If it does not find a record with that username, then both the name and password were wrong.
Then the system could return a specific response.
For examples of LAZY programming / ambiguous response, see Yahoo and Hotmail. (Hotmail screen is atop this post, here is Yahoo)

Google does a better job on this, by giving the message "Username and password do not match. (and then it displays what name you entered)"

1. If both the name and password is wrong: "There is no record of a xxxxxxx"
2. If there is a user of that name: "The password you entered does not match..."
The only reason to withhold those details is as a privacy measure. Since most usernames are now equal to an email address, if any person in the world wanted to know if a given email address was a member of a given site, he could enter it and a random password, and then receive a yes or no.
In that light, the Google method is tops.
But anyway, here are 2 screens from a system I made:


No comments:
Post a Comment