Avatar billede totalpc Seniormester
26. januar 2008 - 08:00 Der er 10 kommentarer og
1 løsning

Link til nyhed forbi login

Hej
Lidt kryptisk overskrift måske, men jeg har en nyhedsside for familien. Hvis man prøver at gå direkte ind på en vilkårlig side bliver man smidt over til en loginside. Det er jo smart. Men jeg sender så en mail ud når der er en nyhed eller kommentarer til en nyhed. Indtil videre har jeg har smidt et link til siden og overskriften på den nyhed der er tilføjet eller kommet kommentar til. Så må folk selv logge på og finde den nyhed der var tale om. Nu kunne jeg godt tænke mig at sende linket direkte til den nyhed der er tale om. Men jeg kan ikke gennemskue hvordan jeg kommer forbi login-siden. For når jeg linker direkte til nyhedsid=12 fx bliver jeg jo smidt om til min login-side.

Hvordan gør man det smartest? Sig til hvis I skal se noget kode?
Avatar billede nielle Nybegynder
26. januar 2008 - 08:31 #1
Hvad med at lave en løsning med auto-login?

Altså en hel generelt løsning hvor dine "kunder" kan bede sitet om at huske dem. Så behøver de slet ikke at gå igennem login proceduren hver gang de vil ind på siden. Og så selvfølgelig heller ikke hvis de kommer fra via linket fra en mail.

Normalt laves autologin vha. cookies.
Avatar billede totalpc Seniormester
26. januar 2008 - 09:19 #2
ja det var en ide.... kan du beskrive hvordan det gøres?
Har ikke arbejde med cookies før
Avatar billede nielle Nybegynder
26. januar 2008 - 09:56 #3
Du kan jo starte med at læse denne her:

http://www.w3schools.com/asp/asp_cookies.asp

Så kan vi tage den derfra bagefter. :^)
Avatar billede tdimhcs Nybegynder
26. januar 2008 - 11:41 #4
Du kunne overføre et uigennemskueligt ID i dit link, som du så i dit login tester for.

/Kurt
Avatar billede totalpc Seniormester
26. januar 2008 - 12:20 #5
nielle> Kom til at tænke på ... hvad nu hvis en af mine bruger logger på fra en skole eller arbejdesplads. Så vil andre der logger på derfra jo også have direkte adgang ik?

kurt-ss> Som både indeholder det rigtige id og et uigennemskueligt ID til at teste på?
Avatar billede nielle Nybegynder
26. januar 2008 - 12:29 #6
En auto login feature skal altid have en "husk mig" option som folk kan vælge at hakke af eller ej. På denne måde har dine brugere mulighed for at lokke på uden at der bliver gemt en husk-mig cookie på den specifikke maskine.
Avatar billede totalpc Seniormester
26. januar 2008 - 16:49 #7
Okay...jeg prøver med en autologin. Det lyder fornuftigt når jeg nu lige har tænkt det igennem :)

Det jeg gemmer i deres cookie, det skal vel være samme oplysninger som de skal logge ind med ikke?

Lige nu tjekker jeg således når de logger ind:

<%
Option Explicit

if Request.ServerVariables("REQUEST_METHOD") = "POST" then

dim strBrugernavn, strKodeord
dim rs, strSQL, Conn, DSN

strBrugernavn = replace(request.form("brugernavn"), "'", "")
strKodeord = replace(request.form("kodeord"), "'", "")

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

strSQL = "Select * from brugerdata where brugernavn = '" & strBrugernavn & "' and kodeord = '" & strKodeord & "'"

set rs = conn.execute(strSQL)

  if (not rs.bof) or (not rs.eof) then
    session("userID") = strBrugernavn
    session("email") = rs("email")
    if rs("admin") = true then
      session("admin") = "ja"
    End if
    response.redirect "../../admin/setdato.asp"

  else
    Response.Redirect "logadmin.asp?msg=" & Server.URLEncode ("Kodeord forkert!")
  end if

Conn.Close
Set Conn = Nothing
end if

%>

Jeg skal vel på en eller anden måde finde ud af om autologin er sat inden ik..
Hmm kan ikke lige gennemskue det
Avatar billede nielle Nybegynder
27. januar 2008 - 13:33 #8
Noget i denne stil:

<%
Option Explicit

Sub CheckLogin(strBrugernavn, strKodeord)
    Dim Conn, DSN, strSQL, rs

    strBrugernavn = Replace(strBrugernavn, "'", "")
    strKodeord = Replace(strKodeord, "'", "")

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

    strSQL = "SELECT * FROM brugerdata WHERE brugernavn = '" & strBrugernavn & "' AND kodeord = '" & strKodeord & "'"

    Set rs = Conn.Execute(strSQL)

    If Not rs.eof Then
        Session("userID") = strBrugernavn
        Session("email") = rs("email")
        If rs("admin") = True Then
            Session("admin") = "ja"
        End if
        Response.Redirect "../../admin/setdato.asp"
    Else
        Response.Redirect "logadmin.asp?msg=" & Server.URLEncode("Kodeord forkert!")
    End If

    Conn.Close
    Set Conn = Nothing
End Sub

Dim strBrugernavn, strKodeord

strBrugernavn = "" & Request.Cookies("brugernavn")
strKodeord = "" & Request.Cookies("kodeord")

If strBrugernavn <> "" And strKodeord <> "" Then
    CheckLogin(strBrugernavn, strKodeord)
Else
    If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
        strBrugernavn = Request.Form("brugernavn")
        strKodeord = Request.Form("kodeord")

        CheckLogin(strBrugernavn, strKodeord)
    End If
End If
%>
Avatar billede totalpc Seniormester
27. januar 2008 - 22:48 #9
Ja ok
Jeg tror jeg er med nu.
Smid et svar og så går jeg igen.
Hvis der går noget galt smider jeg et nyt spgm!
Avatar billede nielle Nybegynder
27. januar 2008 - 22:55 #10
Svar :^)

(du er nu velkommen til at smide yderligere spørgmål om det her)
Avatar billede totalpc Seniormester
28. januar 2008 - 11:01 #11
Ok...det finder jeg lige ud af! Takker
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