Stelian, Nick and Les: You all make really excellent points on how this example could be extended to take into account some of the other issues which will be needed to turn this into a working system. Proper data validation is essential but outside the scope of this tutorial. And the point about the English error messages is great – usually I use some config vars to hold the actual messages so I can point to which language I need. Again though, it would have made this example more complicated than I needed to illustrate my point.

Thanks so much for your input :)