webForumDet fria alternativet

Sessions och undermappar, session startar aldrig.

PHP

7 svar · 658 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Hej

Har ett problem med subkataloger och sessioner. Grejen är att när jag postar ett formulär (via ajax) från subfolder 1 till subfolder 2 så dör sessionen.
Mina sidor använder två klasser, en för autentisering och en för sessioner.

Såhär ser strukturen ut:

ROOT
--> Katalog 1
    --> script1.php
   
--> Katalog 2
    --> Inc
        --> autentiseringsklass.php
    --> ajax.php
    --> script2.php

När jag kör filen Katalog 1/script.php är jag inloggad och allt funkar som det ska. Men när jag därifrån postar data via ajax (jQuery) till Katalog 2/ajax.php så finns ingen session där. Jag inkluderar alla object och dom finns, men själva sessionen startar aldrig.
Det sjuka är att när jag kör Katalog 2/script2.php som är en kopia på Katalog 2/script2.php och postar till ajax.php så funkar det som det ska, sessionerna hänger med där.

Kan det ha med cookies att göra, att sessionen bara är giltig i den mappen den sätts?
Har försökt felsöka på diverse sätt, men det är lite bökigt för jag förstår inte alls vad som är fel.

Kan tillägga att session_start(); körs då min sessionsklass inkluderas.

Några förslag?

Tack!

Medlem sedan feb. 20034 441 inlägg
#2

Kan tillägga att jag sitter och testar det här på min laptop med Windows7 och Apache2. Ser nu att session.save_path har no value i min php.ini.

Kan det spela in?

Medlem sedan jan. 2005953 inlägg
#3

session.save_path tror jag inte ska spela någon roll i detta.
Vad står det vid session.cookie_path?

Medlem sedan feb. 20034 441 inlägg
#4

metalboy skrev:

Vad står det vid session.cookie_path?

Bara /. Så det bör funka, eller?
Kan tillägga att sessionen från början sätts i Katalog 1 men den finns inte när Katalog 2/ajax.php körs.

Medlem sedan feb. 20034 441 inlägg
#5

Nu testade jag att flytta över Katalog 1/script1.php till den andra mappen, så att allt ligger på samma ställe.

Men samma sak, när ajaxscriptet körs så finns ingen session där. Sjukt ju..

Medlem sedan jan. 2005953 inlägg
#6

Och session_start() körs verkligen i samtliga filer som är inblandade?
Testade själv att lägga filer i två olika mappar i webbroten, och hade inga problem med sessioner.

Medlem sedan feb. 20034 441 inlägg
#7

Japp, det vet jag. Lägger jag till session_start() så får jag ett fel att den redan startars, med hjälp av de inkluderade klasserna.

Jag tror at jag gör om det här lite och struntar i sessioner helt, det är nämligen inte nödvändigt, men var den enklaste lösningen.

/R

Läste på lite också ang. hur object "länkas", eller ärvs, med hjälp av &new ... men som jag förstått det på det jag läst så gäller det bara PHP4, i 5'an så skapas alltid ett alias av det "förra" objektet. Har testat med var_dump() och samma klasser finns på båda sidorna.

Medlem sedan feb. 20034 441 inlägg
#8

Har listat ut nu att det blir såhär såfort man använder ajax från en sida till en annan. På "ajaxsidan" tappar sessionerna alla värden.

Det jag fått göra är att skicka med mina session-värden i den POST-DATA jag skickar till servern.

267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)