I got an email from Vons (aka Safeway) a few days ago, saying that I needed to go to a webpage in order to renew my mileage points option with them (did you know you can get United miles just by using your Vons card?).

First, I was disappointed that I had to re-register. I had signed up on my United mileage account page for this service a year or two ago, and it was working. Why did I now have to go to Vons.com and fill out a form? But I didn't want to lose earning miles, so I dutifully filled it out.

The form stated that all fields were required except club card # and email. Usually I avoid entering my email whenever possible on a form, but they gave the whole "providing your email will allow us to easily contact you in the event we need more information to process your renewal" speech. So I gave my email address. I was happy to see they had a check box where you could decide whether to get weekly specials and other junk email from them. I of course unchecked it and hit submit. I was greeted with this error:

Clearly they had some server side validation of the checkbox (and didn't even bother to transform the error into a friendly message), and I'm guessing it was incorrectly wired up such that if the optout setting was not provided at all, it would cause a validation error. Well, when you have a checkbox on a form that does NOT get checked, that field does not even get sent across to the server (I know, it would make more sense to send that field, with a value of 'false', but it wasn't my decision. Also, Rails encapsulates that nicely with a hidden input field, but I digress). At any rate, all web developers should know that by now and have tested it.

To outsmart the form, I tried removing my email address and resubmitting, hoping the site was at least smart enough to only validate the "opt out" setting if an email address was provided (since it was optional). But no:

So now my only choice was to give an email address and check the box. I was trapped because I wanted to give my valid email address in case they had problems w/ my renewal (because I did not remember the phone number on my account...), and yet didn't want to get the weekly emails. Against my best judgment I gave them my email and my "consent" to blast me with whatever emails they wanted.

Comments

Josh
LOL! Sounds like Christian put that web site together ;) Obviously untested :/