Skip to content
Advertisement

PHP Session Id changes between pages

I have a problem where i am losing the PHP session between 2 pages.

The session_start() is included in a file called session-inc.php into every page requiring a session to be set. This works for all pages on the site except one particular page, member-profile.php. When this page is visited a new session with a different id (same session name) is set and used instead.

A few more details:

  • Session name is set manually
  • All pages are on the same server under the same domain name
  • If i put an additional session_start() above the include(‘session-inc.php’) in the member-profile.php file, the session is carried over correctly
  • I have tried setting the session_cookie_domain and session.session_name in the .htaccess, this worked for this domain but it stopped the session being passed over to out payment domain
  • We are running apache 2.2.6 with php 5.2.5

Putting the session_start() above the include(‘session-inc.php’) in the member-profile.php file is the quick and dirty fix for this problem, but i am wondering if anybody know why this would be happening.

Cheers

Will

Advertisement

Answer

According to PHP documentation, session_start must be called before any output is sent back to the browser– could this page have a rogue CR/LF, Unicode byte-order mark or similar that is causing output before you include('session-inc.php')?

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement