Session Id an immer den Query String hängen

Wenn Du Zugriff auf die php.ini hast (oder Dein Hoster ini_set erlaubt), dann nimm

PHP:
ini_set('session.use_trans_sid', 1)
 
session.use_trans_sid aktiviert die "transparente", URL-basierte Verwendung für die SIDs.

session.use_cookies auf 0 bedeutet, Du deaktivierst die Cookie-Verwendung für die SID-Speicherung.
 
Hab mein Session Problem gefunden.

Ich mache ein Redirect und zwar mit http://domain.com

Wenn man aber vorher mit http://www.domian.com die seite angesteuert hat dann geht die Session verloren.

Diesen Beitrag habe ich dazu gefunden:

Cant believe this problem isnt described herein. I wondered why my session-variables lost their values when going from first site to second site. Both had a session_start();.

A session is working only on one domain. Subdomains dont use the Session of the maindomain. That means if someone comes to your site at yourdomain.com and the session is started there and then clicks a link where he is lead to http://www.yourdomain.com then the old session isnt working there anymore. Because www. is a subdomain.

In the practice that will mean a lot of lost sessions only because webmasters dont know this behaviour. I have never read a word about this in manuals or somewhere...

The solution is to put this code before the first session_start();

ini_set("session.cookie_domain",substr($_SERVER[HTTP_HOST],3));

Now it works. At the second place of parameters has to come in ".yourdomain.com" (with a dot before). With that the subdomains will use the same session like the maindomain. In this example domainname taken from Server-variable.

Greetings!
Sebastian


Vielen Dank und MFG
 
Zurück