When working with Sessions, do you need to declare session_start() or ob_start() ? What are the advantages of doing so or not doing so?
Thank you!
When working with Sessions, do you need to declare session_start() or ob_start() ? What are the advantages of doing so or not doing so?
Thank you!
session_start()
must be used to store and read from the $_SESSION global.
ob_start()
is completely separate from sessions. ob_start() triggers output buffering which stores all output in a buffer for later use. When a PHP script ends, the buffer is automatically flushed to the user. Alternatively, you can fetch the contents of the buffer mid-execution and tweak the contents. See example below.
Example from php.net:
<?php
function callback($buffer)
{
// replace all the apples with oranges
return (str_replace("apples", "oranges", $buffer));
}
ob_start("callback");
?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php
ob_end_flush();
?>
Output:
<html>
<body>
<p>It's like comparing oranges to oranges.</p>
</body>
</html>
From PHP Manual
session_start() - Initialize session data
SUMMARY:
session_start() creates a session or resumes the current one based on the current session id that's being passed via a request, such as GET, POST, or a cookie.
If you want to use a named session, you must call session_name() before calling session_start().
session_start() will register internal output handler for URL rewriting when trans-sid is enabled. If a user uses ob_gzhandler or like with ob_start(), the order of output handler is important for proper output. For example, user must register ob_gzhandler before session start.