07. oktober 2007 - 02:34Der er
14 kommentarer og 1 løsning
PHP (eller IIS) issues mht. sessions
Det kan godt være at dette spørgsmål hører bedst hjemme under IIS kategorien, idet erikjakobsen påpegede at dette problem sandssynligvis lå i IIS, men jeg prøver alligevel idet andre her kunne have erfaring på dette punkt.
Problemet er at sessioner ikke gemmer data på tværs af siderne. Jeg har faktisk lavet en tråd på det før, men der havde jeg ikke rigtig nogen indgangsvinkel til problemet før nu hvor erik mente at det sandssynligvis er IIS, som laver kage i sessionerne.
Ved en Googling blev jeg anbefalet at lave en ini_set("session.use_cookies", false); men dette hjalp ingenting.
if ( isset ($username) ) echo $username; else echo "Not authenticated!"; // her ender vi uanset hvad ?>
Jeg rykker PHP over på en Unix server for det er for bøvlet med alle de underlige problemer - dette skulle gerne ultimativt løse problemet. Men det kræver at jeg får købt ind til en maskine der kan køre de ting jeg har brug for. Indtil da ville jeg gerne se om jeg kunne få fundet en løsning for at få det til at virke.
Er der nogle af jer som har erfaring med dette mystiske problem? Jeg ved godt at det er begrænset, den information jeg umiddelbart kan give, og det beklager jeg naturligvis.
I dit tidligere spørgsmål brugte du et link ( echo "<a href=\"session2.php\">Se side 2</a>"; ), her laver du en redirect. IIS har (haft?) problemer med at sætte cookies på samme side som man laver en redirect. Det med linket bør derimod også virke, selv på IIS/PHP.
Og ja, der ligger forskelle filer i sessions-dir'et. Eks: sess_3bgt3gevu91ffd1mk1fbe0n2q7
Jeg har forsøgt at ændre upload samt session dir'et til f.eks. mit PHP installdir og så lave en session og upload folder og opdateret php.ini filen tilsvarende, men det hjælper intet, ej heller efter reboot af server. Jeg har også forsøgt at skrive det direkte link istedet for forkortelserne, for det ved jeg at ISS godt kan blive negativ over.
Dvs. at jeg også har forsøgt således: upload_tmp_dir="C:\Documents and Settings\Administrator\Local Settings\Temp\PHP\upload" session.save_path="C:\Documents and Settings\Administrator\Local Settings\Temp\PHP\session"
Hvis du tømmer dit session-dir og prøver at oprette en ny session. Oprettes så en session-fil med det forventede navn - og indholder den, hvad du forventer?
Hmm godt spørgsmål. Jeg har netop tømt dir'et for alle filerne, men ingen nye oprettes, på trods af at min php fil tildeles et sessions id (okp3ib8vflknqm1fn6ijiaj7f0). Hvis man søger på dette, burde der tilsvarende oprettes en "sess_okp3ib8vflknqm1fn6ijiaj7f0" fil, men den findes ikke. Besynderligt. Vi må altså umiddelbart konkluderes at de ikke oprettes.
Det er korrekt sti, og der er read/write-permissions til dir'et.
Med filemon kan du se hvilke filer et program tilgår på harddisken. At se hvad et program rent faktisk laver på harddisken, kan sommetider løse nogle sjove problemer
Lav et nyt katalog, C:\sessions, giv rettigheder til alt og alle - selv naboens hankat må skrive i det. Sæt det ind i din rigtige PHP. Og læn dig tilbage, og se hvad der sker. Men brug et link, og vent med redirect.
Jeg beklager det sene svar. Det ser ud til at det hjalp at lave et tomt dir og give fuldstændig adgang. Nu virker det sgu :) Det var spot-on, Erik. Men tusind tak til alle for bidrag, det har bestemt hjulpet mig til at fejlsøge på det en anden gang.
Erik, jeg går ikke ud fra at du er begyndt at samle på point, men skulle det være tilfældet skal du naturligvis have dem :)
Hej med jer, Denne tråd har vist været åben alt, alt for længe. Har desværre glemt alt om det da jeg ikke har været logget på i det sidste lange stykke tid.
Maskinen fungerer iøvrigt perfekt - og har gjort det lige siden! Min dybeste tak skal lyde til jer alle.
Synes godt om
Ny brugerNybegynder
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.