I came to Web Development from an extensive 3GL and Relational Database background. I crudely passed reams of data from one page to the next by creating swathes of "hidden" fields in the forms on my DHTML pages.
I found PHP Sessions a bit flakey at first (although much more robust now) so I looked for alternative ways to do things.
I now tend to have a single index.php script that uses key control variable(session ID, mode and action) - (i.e who am I, where am I and what am I doing).
The top PHP include section will usually include a master Class declaration that contains all the functionality and associated data structures relevant to the application.
As well as authentication and a whole host of applicatiion specific methods, this class will include methods to serialise and save and/or retrieve and unserialize all the various class variables. Combined with OCI methods for communicating with Oracle Databases, I can do all my server side processing, save all my variables to the database in a session table that includes a CLOB holding the serialised data then retrieve those variables when the page is recalled.
This all works a treat, is more secure than using hidden inoput fields and easier to work with than PHP sessions.