Just nu i M3-nätverket
Jump to content

Session-problem


Starre

Recommended Posts

Har lite problem med en session.

 

Jag har:

En sida med inloggninsformulär (login.asp)

En sida som kontrollerar detta (confirm.asp)

En sida som man via vanligt länk kan nå som inloggad (sida.asp)

 

Om jag nu loggar in och från confirm.aspklickar mig till sida.asp och klickar på browserns Bakåt-knapp är det inga problem. Jag kan uppdatera confirm.asp och jag är fortfarande inloggad. Fine. Men...

 

Om jag på sida.asp har en LÄNK tillbaka till confirm.asp och klickar på den så är jag plötsligt utloggad.

 

Varför?

 

Tack på förhand!

 

[inlägget ändrat 2002-09-29 16:40:44 av Starre]

Link to comment
Share on other sites

confirm.asp

<% Response.Expires = "0" %>
<html>

<% Session("username") = Request.Form("user")
  Session("password") = Request.Form("pass")

  If Session("username") = "stajag" AND Session("password") = "qwerty" Then

  Response.Write "Du &auml;r nu inloggad!<br>"
  Response.Write "Vill du se den aktuella tidpunkten? Klicka <a href=sida.asp>h&auml;r</a><br>"

  Else

  Response.Write "<h1>Felaktigt l&ouml;senord eller anv&auml;ndarnamn!</h1>"
  Response.Write "<h3><a href=login.asp>Var god försök igen</a></h3>"

  End If %>

</html>

 

Vill du ha de andra koderna också?

 

Link to comment
Share on other sites

Nä, det behövs inte.

 

Session("username") = Request.Form("user")

Session("password") = Request.Form("pass")

 

Innebär ju att du tar emot värden från ett formulär och lägger in i session-variablerna. Länkar du då till sidan från en annan sida utan att skicka med formulärdata så sätts ju sessionvariablerna till tomma strängar. Alltså kommer ditt IF-villkor inte att slå in utan du kommer till ELSE-delen.

 

/Niklas

 

 

Link to comment
Share on other sites

Jo, det låter ju väldigt logiskt men vet du hur man kan göra för att det här ska fungera i stället?

 

Annars känns ju hela grejen lite meningslös...

 

[inlägget ändrat 2002-09-29 20:55:01 av Starre]

Link to comment
Share on other sites

Varför ska du tillbaka till confirm.asp överhuvudtaget? Men du kan göra så här:

 

1. Lägg till ett hidden-fält på login.asp:

<input type="hidden" name="posted" value="1">

 

2. Kontrollera om den finns:

if request.form("posted") = 1 then

Session("username") = Request.Form("user")

Session("password") = Request.Form("pass")

end if

 

3. Lägg till din resterande kod därefter:

If Session("username") = "stajag" AND Session("password") = "qwerty" Then

 

Response.Write "Du &auml;r nu inloggad!<br>"

Response.Write "Vill du se den aktuella tidpunkten? Klicka <a href=sida.asp>h&auml;r</a><br>"

 

Else

 

Response.Write "<h1>Felaktigt l&ouml;senord eller anv&auml;ndarnamn!</h1>"

Response.Write "<h3><a href=login.asp>Var god försök igen</a></h3>"

 

End If %>

 

</html>

 

/Niklas

 

Link to comment
Share on other sites

Varför ska du tillbaka till confirm.asp överhuvudtaget?

 

Det är väl inte så konstigt. Om du som medlem loggar in kan du ju ha olika tjänster på olika sidor tillgängliga. Sedan måste du ju kunna ta dig tillbaka till förstasidan utan att bli utloggad.

 

Tack för koden. Det fungerade alldeles utmärkt!

 

Link to comment
Share on other sites

Jo, det är klart. Men jag brukar ha inloggningen på en egen sida utan andra funktioner än just att jämföra inloggningsuppgifterna med exempelvis en databas. När det är gjort slussas användaren vidare till en annan sida (typ startsida). Därför fattade jag det som att du skulle göra likadant ;o)

 

/Niklas

 

 

Link to comment
Share on other sites

Jo, det är ju naturligtvis det bästa.

 

Anledningen till att jag gjorde som jag gjorde vara att det var taget från en ASP-skola =)

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...