08. december 2009 - 18:41Der er
11 kommentarer og 1 løsning
Mister Sessions hele tiden
Hejsa.
Jeg har et system, som kræver login, og ved korrekt login sættes en sessionvariabel. Når en side efterfølgende skal vises, så tjekkes der for om sessionvariablen er sat, og hvis ikke, så dirigeres til login-form - ellers vises siden (vist nok meget traditionel løsning). Systemet har kørt upåklageligt med forskellige browsere, men jeg har en kunde, som hele tiden bliver bedt om at blive logget på. Pålogning lykkedes hver gang, men når der skal vælges en ny side, så er session mistet og der skal logges ind igen.
Nogen forslag til hvad problemet kan være. Kunden anvender IE 8. Jeg har selv IE 8, og har ingen problemer. Heller ikke i tidligere versioner, FF og Crome. Nogle gange lykkedes det dog for kunden at anvende systemet uden problemer.
Det er med stor sandsynlighed en fejl 40 fra din kundes side.
Vi havde en kunde, som ringede til os og fortalte at vores system ikke virkede. Trods forskellige forsøg henover telefonen, hvor jeg mente at vi havde fulgt hinanden gennem hele processen, inviterede vi kunden ind, så vi kunne fastslå problemet.
Det reelle problem var så at vi indledningsvis ikke gjorde det samme ved loginformen, på trods af at vi mente kommunikationen var i orden. Det viste sig kunden havde valgt at lave en 'genvej' på skrivebordet til vores loginform - eller - han havde gemt en lokal kopi af siden på sit skrivebord og derfor virkede skidtet ikke for ham.
Så overvej om kunden ikke alligevel gør noget som ikke er helt ens i forhold til dig.
Har kunden sat "Funktioner - internetindstillinger - beskyttelse af personlige oplysninger" for højt ? Prøv evt. lige at bede kunden nulstille derinde og evt. skrue lidt ned, hvis den er skruet helt op.
... men ovenstående kan nok ikke være problemet hvis "Nogle gange lykkedes det dog for kunden at anvende systemet uden problemer." er tilfældet - medmindre kunden sidder og skruer op og ned uden at vide hvad han/hun selv laver selvfølgelig... :-/
Nu har jeg her til aften været på kundens PC via en slags fjernskrivebord (teamviewer.dk), og jeg er ret sikker på, at problemet skal søges hos ham. Jeg prøvede at logge på med mit eget brugerlogin, og mistede sessionen hele tiden, og lidt senere, havde jeg ikke problemet. Jeg tjekkede sikkerhedsindstillingerne, som stod til mellem - i øvrigt det samme som hos mig selv.
Vi prøver nu at installere FireFox - det kan være at det løser problemet. Alternativt laver jeg noget debug-kode, så jeg kan tjekke om der skiftes session_id().
Hvis ikke firefox hjælper - så hvis session tilknytningen i programmeringen er ip betinget så check også lige om hans ip er konstant - eller om den hopper ofte (i perioder)... evt. fordi han har flere ip adresser tilgængelig til hans router og routeren kaster rundt med dem, da de ikke er låst til hans pc.
Mit login-script tjekker ikke ip. Det tjekker om indtastet brugernavn og tilhørende password findes i MySQL-DB, og hvis tilfældet, så sættes forskellige Sessionsvariabler.
Nu har jeg smidt en Debug-kode øverst på hver side, for at tjekke sessionsid:
echo 'DEBUG : ' . session_id();
Herved kan jeg tjekke om browseren skifter id. Men det bliver først i morgen.
Efter installation af FireFox, fungerer det uden problemer, men så snart IE8 anvendes (på samme PC), smider den sessions hele tiden. Jeg kan også se, at selvom der er logget på, så sender IE8 forskellige sessions_id'er. Måske noget med sessions-cockies har jeg ladet mig fortælle.
Status: Systemet virker fint under FF, men ikke under IE på den pågældende PC'er. Og systemet virker fint i alle browsere på andre PC'ere. Problemet med IE løses nok ved en geninstallering af IE eller måske helle styresystemet. Tak for jeres bidrag - jeg fordeler pointene blandt jer, der lægger et svar. Venligst sende svar!
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.