On 15-02-2013 12:34, Jørn Andersen wrote:
> Hej,
>
> Hvordan styrer I Session på tværs af om folk bruger www.domain.tld
> eller bare domain.tld?
>
> Som bekendt er mange web-servere (incl. dem jeg har med at gøre) sat
> op, så www-subdomænet peger på "selve" domænet - altså så folk får
> samme resultat, hvad enten de bruger www. eller ej.
> (Det kan man mene meget om, men det er irrelevant lige nu.)
>
> Men serveren opfatter Session-variable sat på www.domain.tld som
> forskellige fra dem, der er sat på domain.tld.
>
> Ofte er det ikke et problem, fordi folk kommer fra den ene side til
> den næste via lokale links eller lokale form posts.
>
> Men fx i forbindelse med en betalingsportal (i mit tilfælde), hvor
> betalingsportalen laver callback, efter at folk har været inde på den
> og betale, kan folk være startet på www, mens callback'en er sat til
> at lande på en side uden www - med det resultat, at man ikke kan give
> brugeren et pænt svar på betalings-processen.
>
> Umiddelbart vil min løsning være at tvinge folk til at starte fx på en
> side uden www og have callback'en til ligeledes at lande på en side
> uden www (eller omvendt).
>
> Hvad plejer I at gøre?
>
> Mvh. Jørn
>
> X-post: dk.edb.internet.webdesign.serverside.asp,
> dk.edb.internet.webdesign.serverside.php
> FUT: dk.edb.internet.webdesign.serverside.php
> (Jeg stødte på problemet på en ASP (Classic)-side, men jeg går ud fra,
> at problemet er det samme på PHP-sider.)
>
I din virtualhost på serveren hedder det fx. følgende
ServerName domain.tld
ServerAlias www.domain.tld
Nu vil alle dine sessions være baseret på servername, og alias er den
egentlig ret ligeglad med.
Men hvis du har 2 virtualle host fx
<VirtualHost *>
ServerName domain.tld
DocumentRoot /var/www
</VirtualHost>
<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /var/www
</VirtualHost>
Så vil din session IKKE være den samme, selvom de peger samme sted hen.
Så kan du via session_set_cookie_params* sætte det korrekte domain
*
http://www.php.net/manual/en/function.session-set-cookie-params.php