0

Possible Duplicate:
Cannot send session cookie - headers already sent
Headers already sent by PHP

Somehow my website decided to break, so it did. artfulme.net (My website) somehow got the error...

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/artfulme/public_html/index.php:1) in /home/artfulme/public_html/index.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/artfulme/public_html/index.php:1) in /home/artfulme/public_html/index.php on line 1

I have no clue what happened. I was away camping, and when I got back I received that error every time I go to my website.

Here is my full page code:

<?php session_start(); $_SESSION['loginreturn']="../index.php";  

include("scripts/mysql.php");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- Website Stuff -->
<title>artfulME</title>
<link rel="shortcut icon" href="images/favicon.ico" />
<!-- CSS Stuff -->
<style type="text/css">
body,td,th {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    font-weight: lighter;
    color: #FFFFFF;
}
a:link {
    color: #6F8C37;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #526828;
}
a:hover {
    text-decoration: underline;
    color: #ABC974;
}
a:active {
    text-decoration: none;
}
body {
    background-color: #7b7b7b;
}
</style>
<link href="css/index.css" rel="stylesheet" type="text/css" />
<link href="css/login.css" rel="stylesheet" type="text/css" />
<!-- Script Stuff -->
<script type="text/javascript">
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function showElement(obj){
    document.getElementById(obj).style.display="block"; 
}

function hideElement(obj){
    document.getElementById(obj).style.display="none";
}

function restoreValue(obj){
    if(obj.value == ""){
        obj.value = obj.defaultValue;
    }
}
function clearValue(obj){
    if(obj.value == obj.defaultValue){
        obj.value = "";
    }
}

function changeTypeToPass(obj){
    if(obj.value != obj.defaultValue){
        obj.type = "password";
    }
}
function changeTypeToText(obj){
    if(obj.value == obj.defaultValue){
        obj.type = "text";
    }
}
</script>
</head>
<body onload="MM_preloadImages('images/navi/homeover.png','images/navi/blogover.png','images/navi/mediaover.png','images/navi/blogover.PNG','images/navi/contactover.PNG')">
<div id="wrapper">
  <p style="text-align: right; text-shadow: 1px 1px #000; height: 20px; margin-right: 3px">
    <?php
        if(!isset($_SESSION['loggedin'])){
            echo "<a href='javascript:void(0);' id='showLogin' onclick=\"showElement('login');\">Login</a>\n";
        }else{
            if($_SESSION['username'] == "artfulME" || $_SESSION['username'] == "Admin"){
                echo "<strong>Hello</strong> <a href='user/index.php'>".$_SESSION['username']."</a>!&nbsp;&nbsp; <a href='post/index.php'>Post</a> | <a href='userslist/index.php'>View Users List</a> | <a href='upload/index.php'>Upload</a> | <a onclick='document.logoutform.submit(); return false;' href='javascript:void(0);'>Logout</a><form style='display:none' id='logoutform' name='logoutform'  action='scripts/logout.php'></form>";
                $_SESSION['accesstoadmin'] = 1;
            }else{
                echo "<strong>Hello</strong> <a href='user/index.php'>".$_SESSION['username']."</a>!&nbsp;&nbsp; <a onclick='document.logoutform.submit(); return false;' href='javascript:void(0);'>Logout</a><form style='display:none' id='logoutform' name='logoutform'  action='scripts/logout.php'></form>";
            }
        }
    ?></p>
  <div id="login">
    <span style="text-align: right"><p><img src="images/logintop.png" width="31" height="15" alt="logintop" /></p></span>
    <div id="cont1">
    <div style="height:5px"></div>
      <div id="cont2">
        <form id="loginform" name="loginform" method="post" action="scripts/login.php">
          <table width="100%" border="0" cellspacing="2" cellpadding="0">
            <tr>
              <td><input name="entlogin" type="text" id="entlogin" onfocus="clearValue(this);" onblur="restoreValue(this);" value="Username or Email" maxlength="50" /></td>
            </tr>
            <tr>
              <td><input name="entpass" type="text" id="entpass" onfocus="clearValue(this); changeTypeToPass(this);" onblur="restoreValue(this); changeTypeToText(this);" value="Password" maxlength="15" /></td>
            </tr>
            <tr>
              <td><a href="javascript:void(0);" onclick="document.loginform.submit(); return false;">Continue</a> or <a href="signup/index.php">Signup!</a></td>
            </tr>
            <tr>
              <td> <a href="javascript:void(0);"></a><a href="javascript:void(0);" onclick="hideElement('login');">Close</a></td>
            </tr>
          </table>
        </form>
      </div>
      <div style="height:5px"></div>
    </div>
  </div>
  <div id="header"><img src="images/logo.png" alt="artfulME" width="500" height="143" border="0" usemap="#Map" />
    <map name="Map" id="Map" title="Home | artfulME">
      <area shape="rect" coords="6,37,311,108" href="index.php" alt="Home | artfulME" />
    </map>
  </div>
  <div id="navi">
    <p><a href="index.php" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('HOME','','images/navi/homeover.png',1)"><img src="images/navi/home.png" alt="HOME" name="HOME" width="150" height="40" border="0" id="HOME" /></a><a href="blog/index.php" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('BLOG','','images/navi/blogover.PNG',1)"><img src="images/navi/blog.png" alt="BLOG" name="BLOG" width="145" height="40" border="0" id="BLOG" /></a><a href="media/index.php" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('MEDIA','','images/navi/mediaover.PNG',1)"><img src="images/navi/media.png" alt="MEDIA" name="MEDIA" width="156" height="40" border="0" id="MEDIA" /></a><a href="contact/index.php" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('CONTACT','','images/navi/contactover.PNG',1)"><img src="images/navi/contact.png" alt="CONTACT" name="CONTACT" width="205" height="40" border="0" id="CONTACT" /></a></p>
  </div>
  <div id="left">
    <div id="block1">
      <div id="container">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="50%"><h1>Video to be here soon!</h1></td>
          </tr>
          <tr>
            <td><p><a href="javascript:void(0);" id="showAbout" onclick="hideElement('showAbout'); showElement('moreAbout');">More about me...</a></p>
              <p id="moreAbout" style="display:none"><a href="#" onclick="showElement('showAbout'); hideElement('moreAbout');">Hide more about me...</a><br />
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I'm not just your ordinary person. Most male humans my age play video games, watch Youtube, eat, and sleep. I do all of those things, but I bring them up a level. I make video games (sometimes), try my best at editing Youtube videos, and I eat a lot and sleep normally.<br />
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Also, I'm a <em>very</em> good web-designer. This website is actually my best I'm sure... But, if you take a look at <a href="http://www.wildwestgraniteaz.com">www.wildwestgraniteaz.com</a> or <a href="http://villaingogh.x10.mx">villaingogh.x10.mx</a>, those are both my works.</p>
              <p>&nbsp;</p></td>
          </tr>
        </table>
      </div>
    </div>
    <div id="block3">
      <div id="container">
        <h1>Recent tweets...</h1>
        <p>
          <script src="http://widgets.twimg.com/j/2/widget.js"></script>
          <script>
new TWTR.Widget({
  version: 2,
  type: 'profile',
  rpp: 21,
  interval: 6000,
  width: 'auto',
  height: 300,
  theme: {
    shell: {
      background: '#282828',
      color: '#707071'
    },
    tweets: {
      background: '#282828',
      color: '#ffffff',
      links: '#708c37'
    }
  },
  features: {
    scrollbar: true,
    loop: false,
    live: false,
    hashtags: true,
    timestamp: true,
    avatars: false,
    behavior: 'all'
  }
}).render().setUser('FethrdWlf').start();
  </script>
        </p>
      </div>
    </div>
  </div>
  <div id="right">
    <div id="block2">
      <div id="container">
      <?php
        if(isset($_SESSION['flagged'])){
            echo $_SESSION['flagged'];
            unset($_SESSION['flagged']);
        }elseif(isset($_SESSION['notflagged'])){
            echo $_SESSION['notflagged'];
            unset($_SESSION['notflagged']);
        }
      ?>
        <h1>Most recent blog post...</h1>
        <?php include("scripts/latestpost.php"); ?>
</div>
    </div>
    <div id="block4">
      <div id="container">
        <h1>My latest Youtube video:</h1>
        <p>
          <iframe style="margin-bottom: 5px;" width="434" height="277" src="http://www.youtube.com/embed/dUyAA_CT-S0" frameborder="0" allowfullscreen></iframe>
        </p>
      </div>
    </div>
  </div>
</div>
<div id="copyright" style="background-color:#7b7b7b">
    <p style="font-size: 12px">2011 &copy; artfulME, Johnny McNeil</p></div>
</body>
</html>

I really don't know what to do.

Community
  • 1
  • 1
artfulME
  • 9
  • 1
  • 4

2 Answers2

1

PHP can only send headers to set the session cookie if there has been no output to the browser.
You should check to make sure there is really no whitespace at the beginning of the php script. You can also check the file encoding which could be making php think there is output from a non-printing character (which could happen if your hosting provider upgraded php or changed the default encoding).
You might want to check your ftp logs to see if someone managed to get into your website and change something if you don't know how this happened.

yakatz
  • 2,142
  • 1
  • 18
  • 47
1

I also have had this problem. I solved it by putting the sessions on top of my coding, and then deleting all the white space between sessions and the coding that related to the sessions.

talonmies
  • 70,661
  • 34
  • 192
  • 269