Of course a third option to maintain "state" is to use cookies.
It might be interesting to discuss the merits of one technique vs another. I'm not big on session variables.
1) Global variables (session or not) are tempting to use, but cause other complications (side-effects, etc, another discussion altogether)
2) Sessions time out and all your variables go away
3) Its hard to keep track of what's going on when the user hits the back and forward buttons