[Editor's note: Peter rewrote this article after a reader pointed out he over-engineered his original solution. ("What can I say: The code worked -- I just didn't need nearly as much code as I thought ...
Using session is fragile, it's non-scalable both on the client (meaning the user can no longer use multiple tabs to parallelize processes) and on the server (for obvious reasons), and it fools you ...