My dumb ass was trouble shooting my PHP Session for at least an hour. The session was being reset everytime I would re-load the page or go to another page. I couldn’t store any session variables.

<!doctype html>

// Turn on all error reporting

echo "session_id: " . session_id(); if (empty($_SESSION['count'])) {    $_SESSION['count'] = 1; } else {    $_SESSION['count']++; } echo "<br/>"; var_dump($_SESSION); ?> <p> Hello visitor, you have seen this page <?php echo $_SESSION['count']; ?> times. </p>

So, why wouldn’t the above code work? Because the <!doctype html> or any other content was ABOVE the session_start();

<!doctype html>

was at the top of my document. I wasn’t getting any error, “headers already sent” or whatever normally happens. As soon as I put the session_start(); at the beginning of my page it all worked properly!

I’ve seen similar things happen when you have a space at before your <?PHP init at the top of a page.





you probably can’t see it here, but there’s a ” ” / space at the beginning of the first document. Sometimes you might accidentally put a space in there.