Just nu i M3-nätverket
Gå till innehåll

session till frame


LiveNdie

Rekommendera Poster

Jag har en inloggnings sida som skapar några sessionsvariabler, och sedan skickar vidare användaren till en huvudsida som är uppbyggs med frames.

 

Problemet kommer när jag försöker komma åt sessionsvariablerna från någon frame, då finns dom inte.

Dom finns dock i mitt frameset där jag t.ex kan sätta titeln med dom.

 

Någon som kan säga hur man kan lösa detta och vad det beror på?

 

Länk till kommentar
Dela på andra webbplatser

I framesetet måste du "skicka vidare" variablerna med tex:

 

<frameset cols="50,*">
<frame src="http://url?variabel=varde&variabel2=v2">
<frame src="http://url?variabel=varde&variabel2=v2">
</frameset>

 

 

.dune.

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

push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A

 

Länk till kommentar
Dela på andra webbplatser

Men om det är användarnamn och lösenord man ska skicka vidare, så är det väll lite väll osäkert att göra så, eller?

 

Länk till kommentar
Dela på andra webbplatser

Men om det är användarnamn och lösenord man ska skicka vidare, så är det väll lite väll osäkert att göra så, eller?

 

 

Jepp, då är det inte att rekommendera. Om det är själva inloggningen du arbetar med så föreslår jag att du låter inloggningen gå till en icke frames-baserad sida och sedan när användaren är autentiserad skickas till en sida med frames och användarnamn och session-id för att identifieras. :)

 

 

.dune.

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

push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A

 

Länk till kommentar
Dela på andra webbplatser

Användaren kontrolleras på inloggningssidan, men man får ju göra en kontroll på alla sidor!? eller hur menar du att jag ska göra, förstod inte hur du menade.

 

Tilllägg:

Ska man spara sessionsID:n i en databas, och läsa av den på varje sida? finns sessionsID:t kvar i varje frame?

 

[inlägget ändrat 2003-03-10 20:24:19 av LiveNdie]

Länk till kommentar
Dela på andra webbplatser

Användaren kontrolleras på inloggningssidan, men man får ju göra en kontroll på alla sidor!? eller hur menar du att jag ska göra, förstod inte hur du menade.

 

En kontroll ja, men den gör du väl mot sessions-idt och användarnamnet? Då slipper du ju lägga med lösenordet i get/post-strängen.

 

Ytterligare ett förslag på lösning är såklart att arbeta med frames även på inloggningssidan. :)

 

 

.dune.

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

push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A

 

Länk till kommentar
Dela på andra webbplatser

Nu börjar jag hänga med, men som jag skrev innan då, man får på något sätt spara det sessionsID användaren får, men finns det kvar i alla frames sedan? för det hjälper ju inte att skicka med det?!

 

Länk till kommentar
Dela på andra webbplatser

Nu börjar jag hänga med, men som jag skrev innan då, man får på något sätt spara det sessionsID användaren får, men finns det kvar i alla frames sedan? för det hjälper ju inte att skicka med det?!

 

 

Jo, när du gör länkar så kan du tex lägga med "?session=session-id" för att lyckas ta med dig sessionen till nästa sida.

 

Naturligtvis kan du också arbeta med cookies tex. :)

 

 

.dune.

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

push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A

 

Länk till kommentar
Dela på andra webbplatser

Jo, men om jag då skriver:

 

main.asp?session=ID&user=Name

 

Hur kan jag då kontrollera att det är rätt person som verkligen kommer dit?

Vad skriver jag i main.asp för att verifiera att det är rätt användare.

Då måste jag ha sparat ID från loginsidan i en databas eller så och jämföra med det! Är det så du menar?

 

Låter vettigt, men näste person som kommer till datorn och ser "main.asp?session=ID&user=Name" kan ju bara skriva in det och komma in på sidan i alla fall, eller?

 

Länk till kommentar
Dela på andra webbplatser

dvs, om man inte tar bort ID:t från databasen så fort användaren har kommit dit.

 

Jag har inte riktigt lösningen klar för mig än, men förstår ungefäre hur man ska gå tillväga tror jag.

 

Jag måste gå nu, får kolla in i mon och se om du skrivit något mer. Du får i alla fall poäng! Tack för hjälpen och tålamodet!

 

Länk till kommentar
Dela på andra webbplatser

Hur kan jag då kontrollera att det är rätt person som verkligen kommer dit?

Vad skriver jag i main.asp för att verifiera att det är rätt användare.

Då måste jag ha sparat ID från loginsidan i en databas eller så och jämföra med det! Är det så du menar?

 

Lättast är väl att kontrollera att IP-adressen stämmer med en som du tidigare sparat.

 

Låter vettigt, men näste person som kommer till datorn och ser "main.asp?session=ID&user=Name" kan ju bara skriva in det och komma in på sidan i alla fall, eller?

 

I samma veva som du sparar ip-nummer vid inloggning så sparar du också tiden. Varje gång du kontrollerar användaren så uppdaterar du också tiden som användaren senast var aktiv.

 

Om den tiden överstiger ett visst förutbestämt värde så är användaren inaktiv.

 

På samma sätt knyter du "logga ut"-funktionen till en sats som tar bort sessionen från databasen.

 

 

---

Not: Det finns säkerligen redan automatiserat i ASP. Någon som är bättre än mig på ASP vet säkert.

 

 

.dune.

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

push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A

 

Länk till kommentar
Dela på andra webbplatser

I klassiska ASP används endast cookies för session hantering, det spelar ingen roll om du skickar Sessions ID i querystring såvida du inte tänkt skapa en helt egen sessions hantering.

 

Jag förstår inte riktigt ditt problem, om du har en inloggning får du ju se till att du laddar om hela framesetet eller de sidor som behöver laddas om efter inloggningen.

 

[inlägget ändrat 2003-03-10 21:03:11 av qwerty99]

Länk till kommentar
Dela på andra webbplatser

Problemet är att jag först har en inloggningssida helt utan frames, som sedan skickar vidare användaren till en sida med frames, då finns inte längre sessionen kvar i de olika frame:en, utan bara i framesetet. Därför kan jag inte kontrolera att ingen inte skriver in adressen direkt till en av sidorna som ligger i framesetet.

 

Men jag har fått en ganska bra lösning på det hela nu, om det inte är någon annan som har än ännu bättre!

 

Länk till kommentar
Dela på andra webbplatser

Varför skulle inte sessionen "finnas" i framen ?

 

Det är klart de gör det om du gör på det sättet du säger, har en inloggnings sida och sedan skickar dem till frame sidan.

 

Får du något annat resultat så är det fel, antingen för att du har cookies avslaget eller för att du stängt av sessionshanteringen i IIS.

 

Eller naturligtvis att du skickar vidare till en annan applikation, sessioner gäller ju bara inom samma applikation i klassiska ASP.

 

[inlägget ändrat 2003-03-10 21:44:22 av qwerty99]

Länk till kommentar
Dela på andra webbplatser

Jag har ingen aning varför sessionerna inte hittas i varje frame, och jag tycker att de borde finnas, men det gör dom inte!!!

Så länge som jag inte har frames på sidan så fungerar det alderles utmärkt att använda sessioner, så därför tror jag knappast att det är blockerade cookies eller att något avslaget i IIS som är problemet.

Och jag skickar inte på något sätt iväg det till en annan applikation.

 

Har du prövat själv om det fungerar, för i så fall kanske det är jag som har något problem med min IIS och får installera om den eller något. Men jag tro knappast att så är fallet.

 

Länk till kommentar
Dela på andra webbplatser

Ja, sessions funkar utmärkt i frames, varför skulle det göra någon skillnad ?

 

Jag kan inte ge dig något annat råd än att läsa på hur sessions fungerar.

 

Länk till kommentar
Dela på andra webbplatser

Det är möjligt att jag får läsa på på det!

 

Men du kanske kan hjälpa mig nu?!

 

Om jag på min inloggnings sida skriver:

 

Session("user") = "pelle"

 

så borde jag ju i någon utav framesen kunna skriva

 

user = Session("user")

 

och få att user = pelle, eller?

Det fungerar hur som hällst inte, utan user har inget värde.

Har jag missförstått något, eller borde det fungera?

 

Och om det inte stämmer, hur borde jag skriva istället?

 

Sedan så kontrollerade jag om sessionsID:t var samma i framesetet och i en frame (vilket det ju borde vara om det är samma användare, och sessionen gäller vart man än är), men det var de inte.

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...