So the chain of events is:
- The user submits a form.
- During the processing of the submission, there is a message generated, such as "Your record was saved."
- The user is redirected to a new page, say the search results.
- The new page needs to display the message.
So, the question is how to get the message from step 2 to step 3? This is only one simple example...there are many other much more complicated examples.
I am using PHP.
Needs:
- supports multiple messages and need to be formatted on the receiving machine as required
- messages can be added on the same page (such as within step 4)
- messages added from inside any function or object
Some options I have come up with:
- store in a session variable as an array and emptied after each display
- pass as a get or query parameter; can get annoying as you are constantly processing this and have to remember to get it; as it can get long, it could easily go over the max length of the query string
- store in the database on a per session basis (may not always be for a logged in user); this would require an extra insert on each page where they are added, possibly multiple, and an extra select on every page
Currently I have been storing the messages in the session in an array, but I'm wondering if there is a better way. I don't think the other 2 options above are very good.
Edit: I use 2 functions for the session method: AddStatusMsg() (adds an element to the array) and DisplayStatusMsg() (returns an HTML formatted message and empties the array).