How do I maintain PHP sessions across multiple domains on the same server?

11,244

Solution 1

Depending upon your preferred method of modifying PHP variables (Apache's config, .htaccess), change the session.cookie_domain value to be a consistent value.

I have multiple sub-domains, and each VirtualHost section in the Apache config file contains the following line:

php_value session.cookie_domain mydomain.com

The syntax should be similar if you make the changes in a .htaccess file.

Updated for bobert5064's comment:

For multiple domains (ie domain1.com, domain2.org), I think it is only necessary to choose a common domain name (ie domain1.com). I have never tried this, so I cannot verify that it works, but the logic seems accurate.

There is also a method to set the variables direction in PHP described at http://us.php.net/manual/en/function.session-set-cookie-params.php. The documentation makes no reference to the ability or inability to set cookies on a different domain.

Solution 2

If one site is going to forward or link to a second it can include the session id in the href of the link or as an input in a form. Similar to George's img tag method, but the session would only move over if and when it was needed.

Which is best depends on the usage pattern of your sites really.

Share:
11,244
vlajko91
Author by

vlajko91

I program in: PowerShell, GO, VB.net, and many others.

Updated on June 08, 2022

Comments

  • vlajko91
    vlajko91 almost 2 years

    I am looking for a way to maintain PHP sessions across multiple domains on the same server. I am going to be integrating my sites with a Simple Machines Forum so I will need to use MySQL based sessions. Thanks!

  • vlajko91
    vlajko91 over 15 years
    The problem is that I am using multiple distinct URLs, not sub-domains. i.e. domain1.com domain2.com