Have you searched for "Warning: session_start(): Cannot send session cookie - headers already sent by" in these forums or in Google?
This is a very common problem, and very easy to fix.
When a web page is sent from a server to a client (browser, Explorer, Firefox, etc) the page is divided into two areas - invisible headers and the visible HTML code. Headers are sent before the HTML. Headers include information about the page including setting and reading cookies.
In general PHP makes life easy for you by automagically sending the appropriate headers for you before sending the HTML. But sometimes you need to manually tell it to send some specific header information, such as a redirect or setting/reading a cookie.
If you need to tell PHP to any of this header stuff, you need to do it before you start any of the HTML stuff. Like this:
<?php
// Do the header stuff up here
?>
<HTML>
.
.
</HTML>
If you do something like...
<HTML>
.
<?php
// Do the header stuff up here (bad idea!)
?>
.
</HTML>
Then PHP can't do what you want. It can't send the header information you want because you've left it too late to tell it to.
Specifically, looking at your message, it looks like line 5 of index.php is sending some text or some HTML to the browser, and that on line 34 you're trying to send some header information. The text or HTML it's sending might just be a "space" character - it's still enough to break it.
You must move that header code above any of the text/html, and that should solve your problem.
If you really, really can't do that, there is an alternative, where you can tell PHP not to actually send any of the text / html until it has processed the whole page. Check out PHP's output buffering functions