An Introduction To PHP Sessions
How Can I Send Headers Then Start A Session?
Earlier we mentioned that you cannot send anything to the browser before session_start(). This is because when you set a header, you cannot do it twice. When you send text to the browser, headers are sent also.
However, PHP does provide a method to set headers, send text, and still be able to start your session. The ob_start() function allows you to buffer your output till you are ready to send content to the browser.
Listing 24 ob.php (listing-24.php)
// make it or break it error_reporting(E_ALL); // begin output buffering ob_start(); // send a header header ("Pragma: no-cache"); // send some text to the browser echo 'This is a line of text'; // then we start our session session_start(); // set the value of the session variable 'foo' $_SESSION['foo']='bar'; // flush the buffer ob_end_flush();
Run this snippet of code and it will output the text
Listing 25 Browse output from using output buffering (listing-25.txt)
This is a line of textFirst we sent a header with the no-cache, then echoed some text and finally started a session and set a session variable.
