Avatar billede starf Nybegynder
26. april 2006 - 09:19 Der er 14 kommentarer og
1 løsning

session login der gemmer data

Jeg har brug for et ha et login system, der gemmer user ID og Rolle, så jeg altid kan kalde det.

Går ud fra man skal lave noget session sjov?

mit login db ser sådan her ud:

--name--user--pass--userid--role
mads--mads--mads--1--admin

vil gerne ha så man laver et login, der gemmer en session, eller noget hvor i man altid kan kalde userid og admin?

er det muligt? i så falde hvordan?
Avatar billede fennec Nybegynder
26. april 2006 - 09:28 #1
Noget i denne stil:

<%
if Request.querystring("mode") = "Login" then
    username = replace(Request.Form("user"),"'","''")
    password = replace(Request.Form("pass"),"'","''")
    set rs = Conn.execute("select * from userTabel where userName='"& username &"' and pass='"& password &"'")
    if not rs.eof then
        session("userID") = rs("id")
        session("rolle") = rs("rolle")
        response.redirect("enAndenSide.asp")
    else
        Response.write "Forkert brugernavn/pass"
    end if
end if

%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <title>Untitled</title>
</head>

<body>

<form name="myForm" method="post" action="denneSide.asp?mode=login">
<input type="Text" name="user" value=""><br>
<input type="Password" name="pass" value="">
<input type="Submit" value="Login">
</form>


</body>
</html>
Avatar billede fennec Nybegynder
26. april 2006 - 09:29 #2
Der var lige uoverensstemmelser med "login":
<form name="myForm" method="post" action="denneSide.asp?mode=Login">
Avatar billede fennec Nybegynder
26. april 2006 - 09:31 #3
Også skal database felterne også staves rigtigt :o)

  set rs = Conn.execute("select * from userTabel where user='"& username &"' and pass='"& password &"'")
  if not rs.eof then
    session("userID") = rs("userid")
    session("role") = rs("role")
    response.redirect("enAndenSide.asp")
else
Avatar billede starf Nybegynder
26. april 2006 - 09:37 #4
3 spørgsmål,

1: for at lave sessions skal der så ik være noget global.asa?
2: hvordan kalder jeg folks userid eller role til andre sider?
3: hvordan beskydter jeg så de sider man skal logge ind for at se?
Avatar billede fennec Nybegynder
26. april 2006 - 09:48 #5
1. Nej. Session er altid aktivt.

2. Du skal opfatte session som en almindelig variabel. Den er bare tilgængelig på alle sider:
på en side: session("navn") = "et eller andet"
på en anden side: response.write session("navn")

3: Du tjekker bare om en af dine sessionvariabler indeholder noget (ofte brugerID'et)
if not isNumeric(session("userID")&"") then
  response.write "Du har ikke adgang til siden"
  response.end
end if
Avatar billede starf Nybegynder
26. april 2006 - 11:00 #6
ok nu har jeg det næsten til at virke, tror jeg.. hvordan laver man så en log af del?
Avatar billede fennec Nybegynder
26. april 2006 - 11:10 #7
Der bruges session.abandon koden. Der er dog nogle ting du skal vide om den:

1. Den virker først efter siden er reloaded:
session.abandon
response.write session("name") '<-- Vil stadig udskrive navnet

Der skal altså være en redirect lige efter:
session.abandon
response.redirect("enSide.asp")

2. Jeg har oplevet at den ikke altid virker. Nulstil derfor de vigtige sessions selv (userID og måske role). Du du så sikre at logintjekket fejler og man ikke kan se beskyttet sider. Alle andre snuppes med abandon:

session("userID") = ""
session.abandon
response.redirect("enSide.asp")
Avatar billede fennec Nybegynder
26. april 2006 - 11:15 #8
Jeg har ikke ført statestik på hvor ofte abandon ikke virker, men mit bud er at det er omkring 2-5% af gangene, så det er ikke slemt :o)
Avatar billede starf Nybegynder
26. april 2006 - 11:17 #9
ok burde det her så ik virke?


<% if mode = "" then %>
<%
session("userID") = ""
session.abandon
response.redirect("logoff.asp?mode=off")
%>
<% end if %>
<% if mode = "off" then %>
you have logged of now!
<% end if %>

siden står bare og loader i 100 år når man går ind på den dog?
Avatar billede starf Nybegynder
26. april 2006 - 11:18 #10
fennec> ok tak, skader dog aldrig at være sikker :)
Avatar billede fennec Nybegynder
26. april 2006 - 11:22 #11
Jeps det burde virke.
Avatar billede starf Nybegynder
26. april 2006 - 11:23 #12
hmm gør det ikke hmmm
Avatar billede fennec Nybegynder
26. april 2006 - 11:28 #13
Kunne være fordi du ikke har fået mode requested:
mode = request.querystring("mode")
Avatar billede starf Nybegynder
26. april 2006 - 11:41 #14
tak for hjælpen!! og ja du havde ret manglede mode request.. doh... any wya mange tak
Avatar billede fennec Nybegynder
26. april 2006 - 11:48 #15
No prob
.o) <-- One Eyed Jack
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