We all know how to protect against the most basic errors, e.g. bad email addresses, bad URL's and such, that are entered into a form. We all know how to let people retrieve a password that they have forgotten. But...
I would find it helpful if all the gurus out there would share their wisdom regarding
1. How do you challenge your own assumptions when designing in order to foresee and avoid end user error?
2. What are the most common end user errors you have encountered, and how did you write your code to frustrate the illiterates out there?
WBF
I just trap the error, and reprint the data with a user friendly (big letters) message that points to the missing bit of data.
Other than that, double checking the data against a db, if necessary, also string conversion to lower case first to make it match up perfectly.
Some common problems I have run into are missing data (which is easy enough to check for). The most annoying one is dates. People type dates differently depending on their geographic location and schooling (e.g. Europeans will type a date dd Month yyyy, techies tend to go for yyyy-mm-dd or yyyy-mon-dd). Fortunately PHP does have a date string conversion function.
Scott Geiger
Assume the worst can happen and plan for it. If you need dates in yyyy-mm-dd format, assume they will be put in with mm dd, yy or mm/dd/yy ... and build error handler functions to handle the different possibilities.
>> What are the most common end user errors you have encountered
Mispellings and folks that don't like to read the help files/instructions. Which invariably leads me to developing apps that are as simple and easy to use as possible. If the right way to do something is also the easiest, you have a much better chance of the user doing what you expected.