Avatar billede fuzzy2 Nybegynder
29. december 2001 - 18:16 Der er 9 kommentarer og
1 løsning

Opretholder en \"Session\" i et nyt vindue!?!

Hvordan beholder man den oprettede \"Session\" når man f.eks. skal åbne en side i et nyt vindue???

Jeg har en side der opretter en Session når man har logget korrekt ind men den Session bliver lukket igen hvis jeg åbner en side i et ny vindue.

Kan jeg gøre noget for at beholde den Session og overfører den til det nye vindue i linket?

Med venlig hilsen
Troels
Avatar billede krisbjoern Nybegynder
29. december 2001 - 18:22 #1
Det forstår jeg ikke...
En Session dør først når den når sin timeout(hvis denne ingen værdi har fået er det 60 min.) eller hvis den bliver nulstillet.

Jeg junglere uden problemmer med Sessions fra en siden til en anden...

Ku\' du ikke checke din Session øverst i dit nye vindue ved at prøve at skrive den ud og se om det måske er noget andet der er galt?

Venligst
Kristian Bjørn
Avatar billede krisbjoern Nybegynder
29. december 2001 - 18:23 #2
Prøv evt. at lægge noget kode herud... Så er det lidt nemmere at se om der er noget galt :-)

Kristian Bjørn
Avatar billede fuzzy2 Nybegynder
29. december 2001 - 18:32 #3
Først hvordan har du tænkt jeg skulle udskrive den og se om der var noget galt?

Jeg har disse to scripts der tjekker om session\'en er okay:

<%
    if not Session(\"godkendt\") = true then
    Response.Redirect \"login.asp\"
    end if   
%>
<%
    if not ((Session(\"sikkerhedslevel\") = 2) or (Session(\"sikkerhedslevel\") = 1)) then
    Response.Redirect \"login.asp\"
    end if   
%>

------------

Det du siger med at blive nulstillet... Hvordan det?

Det der sker er at jeg logger ind, og så har jeg nogle beskyttede sider som jeg har linket til efter logind. De er beskyttet med de to scripts/session-tjekkere. Hvis jeg så højre-klikker og trykker \"Åbn i et nyt vindue\" så virker Sessionen ikke mere på den nye åbnede side (altså man bliver automatisk stillet til login.asp) men sessionen virker stadig på de andre sider hvis bare jeg ikke åbner dem i et nyt vindue.

Håber der er nogle der kan hjælpe!

Med venlig hilsen
Troels
Avatar billede krisbjoern Nybegynder
29. december 2001 - 18:48 #4
Først vil jeg bare lige nævne(det har du sikkert tænkt på\") at din Session(\"godkendt\") jo skal sættes til True for at dette kan virke.
Dvs. når du er kommet ind på din login-side skal du sørge for at melde Session(\"godkendt\")= \"True\"
Og så se\'føli spørge efter selvsamme i det nye vindue...

Hvorfor vil du åbne siden i et nyt vidue med højreklik?
Kunne du ikke lade linket åbne et nyt vidue for dig? med <A HREF=\"?.asp\" TARGET=\"BLANK\">link</A>
Avatar billede mrbarnes Nybegynder
29. december 2001 - 18:57 #5
Istedet for session skal du bruge aplications som virker på tværs af flere vinduer, bruges på samme måde som session.
Avatar billede fuzzy2 Nybegynder
29. december 2001 - 19:37 #6
Hvordan kunne sådan en aplication se ud? Har du et kode eksempel???

Jeg ved godt at Session godkendt skal være true, og sikkerhedslevel skal sættes til enten 1 eller 2. Og så når jeg åbner en side i et nytvindue spørg den efter de der session\'s men kan åbenbart ikke finde dem/eller en af dem for så stiller den jo om til login.asp.

Det jeg faktisk skal bruge det til er et pop-up vindue i Javascript, men den logger ud lige som når jeg åbner i et nyt vindue (med en af de andre sider).
Avatar billede mrbarnes Nybegynder
29. december 2001 - 19:52 #7
udskift alle Sessions med Application så skulle det virke se eks. neden under...

<%
    if not Application(\"godkendt\") = true then
    Response.Redirect \"login.asp\"
    end if   
%>
<%
    if not ((Application(\"sikkerhedslevel\") = 2) or (Application(\"sikkerhedslevel\") = 1)) then
    Response.Redirect \"login.asp\"
    end if   
%>


Avatar billede zaknafein Praktikant
30. december 2001 - 11:44 #8
Det med application duer ikke, hvis der er flere der skal kunne være logget ind samtidig!

Det er aldrig smart at lade flere brugere manipulere med de samme variabler.
Hvis en bruger først har sat Application(\"godkendt\") = true, så har alle andre jo også godkendt = true.

Du skal bruge session, så alle brugere har de samme værdier som udgangspunkt når de kommer ind på sitet.

Din session kører videre selvom du åbner et nyt vindue.

Du kan prøve at højreklikke på et link her på eksperten, og åbne et nyt vindue. I det nye vindue er du stadig logget ind.

Det der med at udskrive din session for at se om der er noget galt gør du sådan her

response.write(\"godkendt = \" & session(\"godkendt\"))
response.write(\"sikkerhedslevel = \" & session(\"sikkerhedslevel\"))


Det der eventuelt også kan gå galt, er caching. Prøv at sætte denne linie ind
response.expires = 0



Sæt også din browser (i internetinstillinger -> indstillinger) til at hente en ny side ved hvert besøg på siden....

Avatar billede fuzzy2 Nybegynder
02. januar 2002 - 19:53 #9
Hvad gør Response.Expires = 0???? Er det sådan at session\'en også lever efter de standard 60 min. eller hvad?

Men det undre mig bare at nogle gange så logger jeg ind og så bliver jeg logget ud når jeg åbner en side i et nyt vindue. Og nogle gange logger jeg ind og så bliver jeg ikke logget ud når jeg åbner n dise i et nyt vindue!

Mvh Troels
Avatar billede zaknafein Praktikant
03. januar 2002 - 08:44 #10
Response.expires fortæller hvornår klienten skal hente en ny side fra serveren istedet for at bruge den \"cached\" side. Dvs hvis expires = 0 minutter, vil den helt tiden hente en ny version. Og det er det der skal til, især hvis man sidder bag en proxy.

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
Kurser inden for grundlæggende programmering

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