Avatar billede phillips Nybegynder
16. maj 2007 - 22:49 Der er 18 kommentarer og
1 løsning

sessions og subdomæner

Hej alle.

Har et lille problem (læs: stort) :)

Jeg kører et website med en del "virtuelle" subdomæner vha. wildcards i DNS'en.

Problemet er, at sessions, der bliver sat på hoveddomænet ikke gælder på subdomæner.

Jeg vil gerne have, at uanset hvor en session bliver startet, så skal den gælde på hele domænet, inkl. subdomæner.

Anyone?
Avatar billede erikjacobsen Ekspert
16. maj 2007 - 23:09 #1
Avatar billede phillips Nybegynder
17. maj 2007 - 09:01 #2
Gid det var så vel :o)

Jeg har allerede prøvet den fremgangsmåde. En phpinfo() viser, at indstillingen bliver registreret. Men en session sat på domain.com kan stadig ikke hentes på sub.domain.com.
Avatar billede erikjacobsen Ekspert
17. maj 2007 - 09:10 #3
Ok - du har ikke et link, så vi kan få at se hvad der rent faktisk sendes til klienten. Det plejer nemlig at virke ;)  Bruger du metode 1 eller 2 fra linket (php.ini eller ini_set) ?
Avatar billede phillips Nybegynder
17. maj 2007 - 09:38 #4
Kan desværre ikke give et link, da sitet ligger på et lukket netværk.

Jeg bruger php.ini-metoden, hvor jeg også har session.auto_start = 1 og session.use_trans_sid 0.

Desuden bruger jeg mod_rewrite og har dette i min htaccess:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

# Rewrite www.domain.com to domain.com
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^(.*)      http://%1/$1 [R,L]

Kan noget af have indflydelse?

Derudover har jeg en masse includes og requires på kryds og tværs af domæne og subdomæner. Men det burde vel ikke have betydning, hvis en session (eller cookie for den sags skyld) blev indstillet til at gælde over det hele?
Avatar billede erikjacobsen Ekspert
17. maj 2007 - 09:55 #5
Okay - så er det selvfølgelig lidt mere bøvlet at se hvad der sker. Hmm - er det Apache eller IIS ?
Avatar billede phillips Nybegynder
17. maj 2007 - 09:59 #6
Apache :)

Har til gengæld lige prøvet med ini_set, hvilket heller ikke ser ud til at virke. Jeg er helt rundtosset :o)
Avatar billede erikjacobsen Ekspert
17. maj 2007 - 10:04 #7
Ja, dumt spørgsmål - glemte lige du bruger modrewrite.

Kan du i en "Command prompt" prøve følgende (man kan ikke se hvad man skriver, så du skal tro på dig selv ...):


telnet www.domain.dk 80
HEAD / HTTP/1.1
Host: www.domain.dk

Og så 2 linieskift til sidst.  Den burde så udskrive HTTP-headers, og deri en sessionscookie
Avatar billede erikjacobsen Ekspert
17. maj 2007 - 10:10 #8
Du kan også se det direkte i Firefox - måske en anelse nemmere ;)
Avatar billede phillips Nybegynder
17. maj 2007 - 10:15 #9
Jeps. Der bliver lavet to session cookies - én for subdomænet og én for domænet.

Men der må være et eller andet helt galt med konfigurationen et sted, for det burde ikke kunne lade sig gøre det her :)

Kan det have noget at gøre med safe mode og register globals?
Avatar billede erikjacobsen Ekspert
17. maj 2007 - 10:18 #10
Jeg tror ikke det har noget at gøre med de andre ting du nævner. Kan du vise hvordan dine sessionscookier ser ud?    Hvis de ikke hedder  ".domain.dk"  er der jo noget galt !
Avatar billede phillips Nybegynder
17. maj 2007 - 10:23 #11
Det gør de :)
Avatar billede erikjacobsen Ekspert
17. maj 2007 - 10:28 #12
Måske snakker vi forbi hinanden ... Kan du vise mig de 2 sessionscookier der sendes for hhv  http://domain.dk  og  http://sub.domain.dk    - du må gerne ændre det rigtige navn, men ikke andet ;)
Avatar billede phillips Nybegynder
17. maj 2007 - 10:30 #13
Ok, fandt lige ud af noget. Jeg gik den her vej - håber det er til at forstå:

1. sub.domain.com/index.php -> Session startes og nogle variabler sættes
2. sub.domain.com/index.php -> index.php includer template.php, der ligger i sub.domain.com/templates/template.php

3. sub.domain.com/templates/template.php sætter nogle nye variabler

4. Jeg går nu til sub.domain.com/page.php -> Kun variabler fra index.php er sat - ikke fra template.php

Så problemet ligger vist i includen? :)
Avatar billede erikjacobsen Ekspert
17. maj 2007 - 10:33 #14
Browseren ved ikke noget om includes - den ved alene hvilke cookies den får.
Avatar billede erikjacobsen Ekspert
17. maj 2007 - 10:35 #15
Kan det skyldes at der er flere php.ini filer på systemet, og du retter i den forkerte? Det er også en klassiker. Øverst i en phpinfo(); står der hvilken php.ini den læser fra.
Avatar billede phillips Nybegynder
17. maj 2007 - 11:05 #16
Problem solved :)

Det ser ud til, at problemet lå i, at jeg includede filer med deres fulde stier i stedet for relative.
Avatar billede erikjacobsen Ekspert
17. maj 2007 - 11:39 #17
Det kan ikke betyde noget om du bruger fulde stier, eller relative. Men hvis du inkluderer med en URL, så går det "galt", naturligvis.
Avatar billede phillips Nybegynder
17. maj 2007 - 12:02 #18
Så var det nok, at jeg i samme omgang fjernede en GET-variabel fra en include.
Avatar billede phillips Nybegynder
04. marts 2011 - 10:26 #19
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester