PhpRiot
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

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)
<?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 text

First we sent a header with the no-cache, then echoed some text and finally started a session and set a session variable.

In This Article