devotionMedlem sedan jan. 20013 582 inlägg :)
Håller på och gör en inloggning till min sida!
Har gjort följande kod:
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=IntranetSydostel"
objConn.Open
strSQL = "SELECT * FROM tblUser WHERE userName = '" & replace(Request.Form("User"), "'", "''") & "' AND passWord = '" & Replace (Request.Form("Password"), "'", "''") & "'"
set objRS = objConn.Execute(strSQL)
If objRS.eof then
Response.Write "Du är inte inloggad!<br>"
Response.Write "Ej inloggad-meny"
Response.Write "<form action=""leftFrame.asp"" method=""post"" name=""loginForm"" id=""loginForm"">"
Response.Write "<p>Användarnamn: <input name=""User"" type=""text"" id=""User"" size=""15""></p><p>Lösenord:<input name=""Password"" type=""password"" id=""Password"" size=""15""></p><p><input type=""submit"" name=""Submit"" value=""Login""></p>"
Response.Write "</form>"
else
Session("User") = Request.Form("User")
Response.Write "Du är inloggad!<br>"
Response.Write "Inloggad-meny"
end if
Session.Timeout = 10
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
Tanken är att jag vill ha en leftFrame som innehåller menyn. Är man inte inloggad ska en "grundmeny" visas samtidigt som det finns ett inloggningsformulär under menyn. Över menyn ska det stå "Du är inte inloggad"
När Man sedan loggar in ska en annan meny laddas innehållet i den beror på vilken behörighetsnivå man tillhör. Över menyn skall det stå: "Du är inloggad som N N" och under ska det finnas en knapp "logga ut"
Det jag inte får till är utloggningsförfarandet. Då ska man återgå till "grundmenyn" texten "Du är inte inloggad" ska visas.
I tblUser finns all information om användaren. Hur visar jag namnet när användaren är inloggad?
Vad ska jag lagra i session?? Räcker det med användarid? Måste jag lagra behörighetsnivån i en session?
Nu har jag skrivit:
Session("User") = Request.Form("User")
Kan jag skriva:
Session("UserId") = objRS("UserId")
Mvh
devotionMedlem sedan jan. 20013 582 inlägg :)
Här händer det inte mycket idag...
;)
SicoMedlem sedan maj 20002 597 inlägg Re: Inloggning och sessions
devotion skrev:
Kan jag skriva:
Session("UserId") = objRS("UserId")
Oja
Du kan tex ange:
Session("User") = "Yes"
Sedan dra en If-sats runt inloggningsformuläret och logga ut knappen.
If Session("User") = "Yes" Then
'logga ut knapp
Else
'Inloggningsformulär
End if
Om du ska ha olika behörigheter kan du tex göra såhär:
Session("Admin") = objRS("admin")
Sen göra en check om man har rätt värde i "admin" för att se den administrativa informationen eller inte.
devotionMedlem sedan jan. 20013 582 inlägg :)
Hur många sessioner skall jag då ha?
mvh
PoffeMedlem sedan apr. 20022 743 inlägg Så många som du själv anser att du behöver för att täcka dina behov :)
devotionMedlem sedan jan. 20013 582 inlägg Jo, det är klart, men jag har läst att man ska begränsa antalet....
Är det inte så??
mvh
PoffeMedlem sedan apr. 20022 743 inlägg Tja, ju mer du använder ju mer får ju servern jobba så klart. Man ska ju försöka göra så mycket som möjligt med så lite kod som möjligt för att potimera det på bästa sätt.
Det räcker egentligen med endast en session även om du vill ha fler värden. Spara t.ex. alla värden i sessionen separerade med komma eller något och sen kör du en split på sessionen för att få ut varje värde för sig.
Men handlar det om typ två, tre sessions så spelar det ingen större roll.
devotionMedlem sedan jan. 20013 582 inlägg Inga fler ideér på detta??
Mvh
OveRRidEMedlem sedan feb. 200112 078 inlägg
Poffe skrev:
Det räcker egentligen med endast en session även om du vill ha fler värden. Spara t.ex. alla värden i sessionen separerade med komma eller något och sen kör du en split på sessionen för att få ut varje värde för sig.
Frågan är ifall det är bättre, eftersom det fortfarande blir samma mängd data som finns i minnet, plus skiljetecken för att separera datat åt. Dessutom blir det inte skalbart för fem öre.
Att ha lite strängdata i session dör inte servern av. Det man kan tänka sig är väl att lagra enbart det som är absolut nödvändigt i session, som t.ex. inloggningsstatus och användarid för att sedan med dessa se till att hämta från databasen när man väl behöver datat istället för att ha det släpande i session hela tiden.
PoffeMedlem sedan apr. 20022 743 inlägg
OveRRidE skrev:
Frågan är ifall det är bättre, eftersom det fortfarande blir samma mängd data som finns i minnet, plus skiljetecken för att separera datat åt. Dessutom blir det inte skalbart för fem öre.
Att ha lite strängdata i session dör inte servern av. Det man kan tänka sig är väl att lagra enbart det som är absolut nödvändigt i session, som t.ex. inloggningsstatus och användarid för att sedan med dessa se till att hämta från databasen när man väl behöver datat istället för att ha det släpande i session hela tiden.
Det är frågan ja, och personligen så kör jag hellre med fler och som du sa endast de nödvändigaste uppgifterna. Det blir enklare och vad jag märkt ingen större skillnad, om ens någon, prestanda mässigt.
Det vara bara ett förslag på hur man kan göra det. Men min rekomenda tion är som Sicos och, som jag uppfattade det, OveRRidEs. Alltså spara endast relevant data men spara i olika sessions för enkelhetens skull.
devotionMedlem sedan jan. 20013 582 inlägg :)
Ingen som kan hjälpa mig med lite kod för utloggningen. Får inte ihop det eftersom allt ska vara på "en sida"
Hur används session.abandon i det här fallet?
Och hur gör amn för att vid fel inloggning komma tillbaka till inloggningsformuläret men under det står det "Fel användarnamn eller lösenord, försök igen"
Mvh
SicoMedlem sedan maj 20002 597 inlägg Om jag nu fattade rätt så...
Tillbaka-knapp:
<a href='javascript:history.go(-1)'>Tillbaka</a>
Logga ut:
If Request.QueryString("logoff") = "check" Then
Session.Abandon
Response.Redirect "index.asp"
End If
Eller menade du funktionen hur man skriver ut att någor är fel med inloggningen?
tex..
SQL = "Select * from MEMBERS Where USER='" & Request.Form("Username") & "'"
set rs = Connect.Execute(SQL)
If rs.EOF Then
'Användaren finns inte
ElseIf rs("PASSWORD") <> Request.Form("Password") Then
'Lösenordet är fel
Else
'Sätt dina sessions och vidareskicka användaren till rätt sida
End If
rs.close
Du måste lägga If-satser runt det mesta och jobba mycket med querystrings när allt ska vara på samma sida. Inkluderar du inga sidor? Det är svårt att svara när man inte vet hur sidan är upplagd.
devotionMedlem sedan jan. 20013 582 inlägg :)
Hej!
Tack alla som svarat...
Ska nog reda ut det nu!
Annars återkommer jag.... :)
mvh