Avatar billede Slettet bruger
17. maj 2006 - 16:01 Der er 17 kommentarer og
2 løsninger

Vis brugerens brugernavn

Hej.

Hvordan gør man at når man er logget ind vil man kunne gå ind på en side hvor man kan se sit brugernavn. Hvordan gør man det. At man logget ind og viser ens brugernavn?
Avatar billede keysersoze Ekspert
17. maj 2006 - 16:04 #1
det kommer lidt an på hvad du har på nuværende tidspunkt og hvad det skal bruges til. Er det bare brugernavnet der skal vises er det nok mest hensigtsmæssigt at gemme i en session du laver ved login - og ellers kan du måske hente det fra databasen hvis du gemmer brugerid eller lignende i en session.
Avatar billede Slettet bruger
17. maj 2006 - 16:06 #2
Det skal være fra databasen.
Har bare sat brugernavn fordi at så kan man jo bare genbruge koden bagefter ( Hvor man så har rettet noget. )
Avatar billede keysersoze Ekspert
17. maj 2006 - 16:16 #3
men hvad har du nu der genkender at en bruger er logget ind?
Avatar billede Slettet bruger
17. maj 2006 - 16:18 #4
OK!

Nu antager jeg at din session som du laver ved login hedder "session("id")" og at din database hedder "data.mdb" og at din tabel hedder "users" og at kollonnen med brugernavne hedder "username" og at din id i tabellen hedder "id"...

- så skal vi jo bare lave et opslag i databasen...

list a la det her:
<%
if session("id") <> "" then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("data.mdb")
set rs = Conn.execute("select * from users WHERE id=" & session("id") & "")
if NOT rs.EOF then
response.write rs("username")
end if
rs.close
set rs=nothing
Conn.close
set Conn=nothing
end if
%>

\Dan
Avatar billede Slettet bruger
17. maj 2006 - 16:20 #5
Min login form:
<%
' Hvis der er blevet trykket på knappen "Login"
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
  ' Her forberedes de indtastede værdier til validering
  strUID = Trim(Replace(Request.Form("Brugernavn"),"'",""))
  strPWD = Trim(Replace(Request.Form("Kodeord"),"'",""))

  ' Hvis der er skrevet noget i både brugernavn og adgangskode
  If Len(strUID) > 0 And Len(strPWD) > 0 Then

    ' DSNLess forbindelse til databasen
    Set myConn = Server.CreateObject("ADODB.Connection")
    myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/db/brugersystem.mdb")

    ' Opbygning af SQL streng
    strSQL = "SELECT * FROM bruger WHERE (Brugernavn = '" & strUID & "') AND (Kodeord = '" & strPWD & "')"
    Set rs = myConn.Execute(strSQL)
    If Not (rs.BOF Or rs.EOF) Then
      ' Hvis brugeren fandtes i databasen
      intUID = rs("id")
    Else
      ' Hvis brugeren ikke fandtes i databasen
      strERR = "Du blev ikke godkendt af systemet"
    End If

    ' Rydder op i vores connection objekt
    myConn.Close
    Set myConn = Nothing

    If Len(intUID) Then
      ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre
      Session("UserID") = intUID
      Response.Redirect("index.asp")
    End If
  Else
    ' Hvis der ikke var angivet brugernavn og adgangskode
    strErr = "Du skal skrive både brugernavn og adgangskode"
  End If

  If Len(strErr) > 0 Then
    ' Her laves fejlmeddelsen om til rød skrift
    strErr = "<p><font color=red>" & strErr & "</font></p>"
  End If
End If
%>
<font color="red" style="font-size:12px;"><b><%=strErr%></b></font>
<form method="POST" style="margin-bottom:0px;" action="indhold.asp"><font  color="#FFFFFF" style="font-size:12px;">Brugernavn: <input name="Brugernavn" id="loginform"> Adgangskode: <input type="password" name="Kodeord" id="loginform"> <input type="submit" tabindex="4" src="http://images.leol.dk/BG.PNG" value="Login" name="Action" value="Logon" style="height: 20px;font-size: 12px;color: green;width:100px;font-weight: bold;font-family:tunga;"></font></form>
Avatar billede Slettet bruger
17. maj 2006 - 16:22 #6
dannielsen

Hvor vil du have jeg skal ligge den kode du har skrevet ind henne?
Avatar billede keysersoze Ekspert
17. maj 2006 - 16:23 #7
i så fald er dannielsens forslag næsten korrekt;

<%
if session("UserID") <> "" then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("data.mdb")
set rs = Conn.execute("select * from users WHERE id=" & session("UserID") & "")
if NOT rs.EOF then
response.write rs("username")
end if
rs.close
set rs=nothing
Conn.close
set Conn=nothing
end if
%>

hvor bare selvfølgelig stien til databasen og måske navne/kolonner også skal tilpasses... men jeg tror nu nu at jeg ville foretrække at gemme det i en session fremfor et database-opslag kun til det.
Avatar billede Slettet bruger
17. maj 2006 - 16:26 #8
Jamen jeg forstår ikke hvor jeg skal sætte den der kode ind hennne
Avatar billede Slettet bruger
17. maj 2006 - 16:31 #9
- Du skal sætte den kode jeg skrev ind på den side hvor pågældende brugernavn skal vises... En profilside eller sådan noget...

og egentlig så skal den se sådan her ud - tilpasset til dit system og navne...:
<%
if session("UserID") <> "" then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/db/brugersystem.mdb")
set rs = Conn.execute("select * from bruger WHERE id=" & session("UserID") & "")
if NOT rs.EOF then
response.write rs("Brugernavn")
end if
rs.close
set rs=nothing
Conn.close
set Conn=nothing
end if
%>

\Dan
Avatar billede Slettet bruger
17. maj 2006 - 16:33 #10
Weeee........................ Det virker fint..
Avatar billede Slettet bruger
17. maj 2006 - 16:33 #11
OK! Jamen det er jeg glad for at høre!
Avatar billede Slettet bruger
17. maj 2006 - 16:34 #12
Jeg ved ikke om i gider men kan i sige mig hvordan man kan rette ting i sin database.. Altså hvor man skriver sit nye brugernavn også bliver der rettet i databasen..?
Avatar billede keysersoze Ekspert
17. maj 2006 - 16:36 #13
Avatar billede Slettet bruger
17. maj 2006 - 16:42 #14
- Jada! Men så bliver tingene lidt mere komplicerede... men nok lidt som det her:
<%
if session("UserID") <> "" then
    if request.querystring("act") = "save" then
Const adOpenDynamic = 2
Const adLockOptimistic = 3   
Const adCmdTable = &H0002   
Set rs = Server.CreateObject("ADODB.RecordSet")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("/db/brugersystem.mdb")
rs.Open "bruger", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable
rs.find "id=" & session("UserID") & ""
rs("Brugernavn") = request.form("brugernavn")
rs.update
rs.close
set rs = Nothing
response.redirect request.servervariables("script_name")
    end if
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/db/brugersystem.mdb")
set rs = Conn.execute("select * from bruger WHERE id=" & session("UserID") & "")
if NOT rs.EOF then
brugernavn = rs("Brugernavn")
%>
<form action="<%=request.servervariables("script_name")%>?act=save" method="post">
<input type="text" name="brugernavn" value="<%=brugernavn%>">
<input type="submit" value="Opdater" name="submit">
</form>
<%
end if
rs.close
set rs=nothing
Conn.close
set Conn=nothing
end if
%>

\Dan
Avatar billede Slettet bruger
17. maj 2006 - 16:46 #15
Dannielsen post et svar. Så får i begge to 15 point
Avatar billede Slettet bruger
17. maj 2006 - 16:51 #16
OK - takker!

- fik du opdateringen til at virke også?

\Dan
Avatar billede Slettet bruger
17. maj 2006 - 17:36 #17
Ja.. ik det til at virke
Avatar billede Slettet bruger
17. maj 2006 - 17:37 #18
fik*
Avatar billede Slettet bruger
17. maj 2006 - 17:50 #19
FINT! Og tak for point!

\Dan
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