Avatar billede kimborg Nybegynder
25. april 2006 - 17:51 Der er 9 kommentarer og
1 løsning

session brugernavn, hvordan??

Hej, jeg har et loginsystem som funker fint, men jeg mangler at mine brugeres sessions er forskellige, evt. kunne jeg bruge brugernavnet, det skal laves så brugerne selv kan rette deres profil. Nogle forslag?

Min loginbox:

<%
Dim Varuser,Varpassword
%>
<div class="login_box">
<form method="post">
<%
Session("kommerFra") = Request.Servervariables("HTTP_REFERER")
Session("pw") = Request.form("password")
If (Request.form("huskmig") = "ja") Then
  'Gem cookien
  Response.Cookies("brugernavn") = Request.Form("brugernavn")
  Response.Cookies("brugernavn").Expires = DateAdd("y", 1, Now())
  Response.Cookies("password") = Request.Form("password")
  Response.Cookies("password").Expires = DateAdd("y", 1, Now())
End if
If Request.Cookies("brugernavn") <> "" Then
  varuser = Request.cookies("brugernavn")
  varpassword = Request.cookies("password")
Else
  varuser = ""
  Varpassword = ""
End if
If (Request.form("nulstil") = "Nulstil") Then
  varuser = ""
  Varpassword = ""
  Response.Cookies("brugernavn") = ""
  Response.Cookies("password") = ""
End if
If (Request.form("login") = "Login") Then
  Session("pw") = Request.form("password")
  Response.Redirect "login/login_kontrol.asp?un=" & request.form("brugernavn")
End if
%>
<table style="font-size:10px;color:#FFFFFF" border="0">
<tr>
  <td>Brugernavn:</td>
</tr>
<tr>
  <td width="170px"><input type="text" size="15" name="brugernavn" value="<%=varuser%>"></td>
</tr>
<tr>
  <td>Password:</td>
</tr>
<tr>
  <td width="170px"><input type="password" size="15" name="password" value="<%=varpassword%>"></td>
</tr>
<tr>
  <td><input type="submit" name="login" value="Login">&nbsp;&nbsp;<input type="submit" name="nulstil" value="Nulstil"></td>
</tr>
<tr>
  <td><input type="checkbox" name="huskmig" value="ja">&nbsp;<i>Husk login</i></td>
</tr>
</table>
</form>
Avatar billede weis Nybegynder
25. april 2006 - 18:16 #1
Når du logger ind tjekker du vel i en database om brugernavn og password stemmer overens med en bruger i databasen?
så kan du jo sætte din session = brugerens id og derigennem får du en session der kun tilhører den ene bruger...!
Avatar billede kimborg Nybegynder
25. april 2006 - 18:47 #2
Ja men hvordan gør jeg det?

Mit logintjek ser sådan her ud:

if not rs.BOF OR rs.EOF then
  if rs("password") = session("pw") then
    loginTjek = true
  else
    loginTjek = false
  end if
else
  loginTjek = false
end if

if loginTjek = true AND rs("Admin") = "1" then
  Session("login_admin") = "JA"
  Session.Timeout = 30
  Response.redirect Session("kommerFra")
elseif loginTjek = true AND rs("Admin") = "0" then
  Session("login") = "JA"
  Session.Timeout = 30
  Response.redirect Session("kommerFra")
else
  Session("login") = "NEJ"
  Session.Timeout = 30
  Response.redirect Session("kommerFra")
end if
Avatar billede weis Nybegynder
25. april 2006 - 19:32 #3
Jeg har et eksempel her der tjekker om brugeren er i databasen og hvis han er det bliver der lavet en session med hans id og en levelkode (fx. 1 = admin og 2 = subadmin) og så videre:

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

Dim strBruger, strPass
strBruger = Trim(Replace(request.form("bruger"),"'","''" ))
strPass = Trim(Replace(request.form("password"),"'","''" ))

SQL = "SELECT * FROM user where bruger = '" & strBruger & "' AND pass = '" & strPass & "'"
Set rs = ConnLog.Execute(SQL)

If Not (rs.BOF Or rs.EOF) Then
   
    Session("id") = rs ("id")
    Session("level") = rs ("level")
    Session.Timeout=20

    Response.Redirect("admin.asp")
else
    Response.Redirect("login.asp")
end if

Conn.Close
Set Conn = Nothing
Avatar billede kimborg Nybegynder
25. april 2006 - 19:56 #4
Der var sørme lige det jeg manglede, lavede mit logintjek om til:

strSQL = "Select * From brugere WHERE brugernavn = '" & request("un") & "'"
Set rs = Conn.Execute(strSQL)

if not rs.BOF OR rs.EOF then
  if rs("password") = session("pw") then
    loginTjek = true
  else
    loginTjek = false
  end if
else
  loginTjek = false
end if

BRUGER = rs("Fornavn") & "&nbsp;" & rs("Efternavn")

if loginTjek = true AND rs("Admin") = "1" then
  Session("login_admin") = "JA"
  Session("bruger") = BRUGER
  Session.Timeout = 30
  Response.redirect Session("kommerFra")
elseif loginTjek = true AND rs("Admin") = "0" then
  Session("login") = "JA"
  Session("bruger") = BRUGER
  Session.Timeout = 30
  Response.redirect Session("kommerFra")
else
  Session("login") = "NEJ"
  Session.Timeout = 30
  Response.redirect Session("kommerFra")
end if


Tak for hjælpen, smider du lige et svar?
Avatar billede weis Nybegynder
25. april 2006 - 20:03 #5
Så skidt da ;-)
Avatar billede kimborg Nybegynder
25. april 2006 - 20:12 #6
Ved du forresten hvordan følgende skal se ud for at det også virker ;o)

strSQL = "Select * From brugere Where brugernavn = " & Request.session("bruger")
Set rs = Conn.Execute(strSQL)

Vh

kimborg
Avatar billede weis Nybegynder
25. april 2006 - 20:15 #7
prøv med:

strSQL = "Select * From brugere Where brugernavn = " & session("bruger")
Set rs = Conn.Execute(strSQL)

Men jeg vil nu forslå dig at du under dit login laver en session der hedder: session("id") = rs("id") så når brugerne skal have sine egne oplysninger findes det igennem brugerens id
Avatar billede kimborg Nybegynder
25. april 2006 - 20:18 #8
Ok, hvor mange sessions kan jeg lave i mit login, kunne nemlig godt bruge 3
Avatar billede weis Nybegynder
25. april 2006 - 20:20 #9
du kan lave alle dem du har brug for, men man kan også overdrive - men der er intet problem i at have en 3-5 stykker
Avatar billede kimborg Nybegynder
25. april 2006 - 20:24 #10
Fik det til at virke med:

strSQL = "Select * From brugere Where (brugernavn ='" & session("bruger") & "')"

Men ændrer det så jeg bruger ID istedet.

Mange tak for supporten :O)
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