Is PHP session data associated with a particular web page or PHP file? In other words, if a session is created in foo.php, would it's session data be accessible from bar.php, assuming that neither reference the other and both are accessed directly from the web browser.
If it is file specific, how does this work with include()s? For example, if foo.php creates a session, then includes bar.php, can the code in bar.php access session data? How about if the session is created in bar.php? Would the data then be specific to bar.php or foo.php?
Yes, session data is available across different files and requests, that is the whole point of sessions: to provide state where the HTTP protocol doesn't. You could look upon the session as a small storage on the web server for your code to store limited data in.
If your
foo.phpstarts a session and then includesbar.php, the code inbar.phpwill indeed be able to access the session. If yourbar.phpexecutes thesession_start()then thefoo.phpcan access the session from then on (so after theinclude()).Please do remember: a session is unique to a specific browser and volatile. I.e: close the browser and the session will become inactive, inaccessible and expire (usually after 30 minutes).
Note:- modern browsers have the ability to reconnect with session.