If you're running a web application through a number of phases , you've a choice of three ways of keeping information from one page to the next (keywords - sessions, shopping carts!).
You can use a bathtub - each time history (data) is entered, it gets added to a collection which gets passed back and forth every time between the browser and the server, until you can have a lot of data sloshing around, rather like you have with water in a bath if you move, ever so gently, up and down at the same speed as the natural motion of the waves; a series of small movements lead to some quite dramatic larger movements.
A snake is a single piece of information being passed back and forth - I could use the analogy of the ball in a tennis rally if you prefer - and that piece of information is a unique identifier which gives a key into a database or a file name on the server.
And a nag is someone - a browser - who keep coming back with "it's me again".
Let me translate each of those into a technology / protocol method. The Bathtub is hidden fields, the snake is a single hidden field with data being stored on the server in a session, and the nag is a cookie based session.
The problem with a snake or a tennis rally is that once you've broken it, you can't get back and carry on with same rally or reptile so in web terms, you can't break away from a series of pages and then come back and expect to carry on - you have to start anew. And since the Bath is based on the snake, this limitation applies there too.
Which leave you with the "nag" - the cookie. Now we sometimes get a bit short with a nag, just like we're sometimes less that thrilled to accept certain cookies - but nagging can be a very effective way of getting things done, can't it?
(written 2008-08-06 07:03:53)
Associated topics are indexed under
H301 - PHP - Sticky fields and session
Some other Articles
First class functions in Lua lead to powerful OO facilitiesLua - Table elements v table as a wholeAge ConcernVertical LondonBath, Snake or Nag?Clean code, jump free (Example in Lua)Rules, suggestions, considerations for Lua variable namesCurrent visitors from around the world - PHPFinding words and work boundaries (MySQL, Perl, PHP)All around the world?