Avatar billede steen_hansen Forsker
04. juni 2004 - 20:22 Der er 129 kommentarer og
1 løsning

Kan man have 2 logins og 2 cookies på samme domæne?

En bruger kommer ind på www.minside.dk og får mulighed for at logge ind 2 steder.

Så vidt jeg har forstået det, kan man ikke holde 2 cookies, der bruges til login, hvis de ligger på samme domæne. De skal enten ligge på hvert sit domæne, eller den ene på selve domænet, og den anden på et subdomæne.

Nu har jeg så set i Frontpage, at man kan oprette et nyt websted. Jeg har et ønske om, at brugeren skal logge ind på www.minside.dk eller på www.minside.dk/nyt_websted fra forsiden. Kan det lade sig gøre, eller vil cookien benytte samme informationer, når der logges på enten det ene eller det andet sted?

Den er lidt kringlet formuleret, jeg ved det. Men kan dette lade sig gøre, uden at informationerne fra de 2 cookies bliver de samme?

Forside:    Log ind på www.minside.dk
    Log ind på www.minside.dk/nyt_websted

Når man logger ind på www.minside.dk, kunne mine data se sådan her ud:

www.minside.dk
user: steen_hansen
pass: password

www.minside.dk/nyt_websted:
user: admin
pass: wasspord

Jeg skal prøve at besvare det bedre, hvis I ikke skulle forstå hvor jeg vil hen med mit spørgsmål :o)
Avatar billede powernodes Nybegynder
04. juni 2004 - 20:25 #1
Du bestemmer jo selv hvad de enkelte cookies både hedder og indeholder :)
Avatar billede steen_hansen Forsker
04. juni 2004 - 20:32 #2
Men hvis jeg lægger min dolog.asp ned i hhv. www.minside.dk og www.minside.dk/nyt_websted, så er jeg da bange for, at oplysningerne fra det ene sted, vil blive trukket frem i textfelterne det andet sted. Tror jeg da :o)
Avatar billede sukos Juniormester
04. juni 2004 - 20:35 #3
Kommer jo an på hvordan du definerer forskelligt "stuff"

Men i dag er browsere pr. default sat op til kun at acceptere cookies fra et domain ad gangen.

Og ellers helt som powerodes.
Avatar billede sukos Juniormester
04. juni 2004 - 20:38 #4
Og ellers, for at adskille forskellige sider som der logges ind fra, er der så ikke noget " $_SERVER["REQUEST_URI"] " i asp?
Altså som så vil være f.eks.
/spm/506180

( http://www.eksperten.dk/spm/506180 )

for på den måde at finde hvem som er hvor?
Avatar billede steen_hansen Forsker
04. juni 2004 - 20:40 #5
Hvis browseren kun er sat op til at hente cookies fra ét domæne ad gangen, kan jeg vel heller ikke lave det på sådan en måde, at brugeren benytter 2 seperate cookies til hvert sit websted, begge dannet fra forsiden?
Avatar billede sukos Juniormester
04. juni 2004 - 20:40 #6
hov, mangler et n i powernodes! (osse fordi jeg troede der stod powermodes)
Avatar billede powernodes Nybegynder
04. juni 2004 - 20:40 #7
usernavn på minside.dk

skrives som

Response.Cookies("sted1") = Request.Form("bruger")

og hentes som

Request.Cookies("sted1")

---

usernavn på minside.dk/nyt_websted

skrives som

Response.Cookies("sted2") = Request.Form("bruger")

og hentes som

Request.Cookies("sted2")

Og hvad indholdet så er, kommer jo an på hvad brugeren skriver i bruger feltet.
Men det er 2 forskellige cookies, med forskelligt indhold.
Avatar billede sukos Juniormester
04. juni 2004 - 20:40 #8
Jow, forsiden, fordi det er det samme domæne!
Avatar billede steen_hansen Forsker
04. juni 2004 - 20:41 #9
sukos, den er jeg ikke med på?
Avatar billede steen_hansen Forsker
04. juni 2004 - 20:43 #10
powernodes: Hvordan skal det flettes ind i dette?

Select Case Request("autologin")
    Case "autologin"
        Response.Cookies("LoginInfo").Expires = Now + 365
        Response.Cookies("LoginInfo")("autologin") = "true"
        Response.Cookies("LoginInfo")("username") = Session("username")
        Response.Cookies("LoginInfo")("password") = RS("pass")
    Case "remember"
        Response.Cookies("LoginInfo").Expires = Now + 365
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = Session("username")
        Response.Cookies("LoginInfo")("password") = RS("pass")
    Case Else
        Response.Cookies("LoginInfo").Expires = Now
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = ""
        Response.Cookies("LoginInfo")("password") = ""
End Select
Avatar billede sukos Juniormester
04. juni 2004 - 20:44 #11
"Men i dag er browsere pr. default sat op til kun at acceptere cookies fra et domain ad gangen."

Hvis jeg prøver på at sætte en cookie fra et domæne til et andet, bliver den pr. default ikke accepteret. (der skal mere kode bag, end blot at sætte en cookie)

Men vil du lave cookies for dit domæne og undermapper, så kan du sagtens gøre det,
Avatar billede steen_hansen Forsker
04. juni 2004 - 20:45 #12
Ok. Cookies er ikke min specielt stærke side :o(

Vil I se hele koden?
Avatar billede powernodes Nybegynder
04. juni 2004 - 20:45 #13
Steen>>Du skal blot lade være med at kalde dine cookies det samme, i alle scenarier.
Avatar billede powernodes Nybegynder
04. juni 2004 - 20:46 #14
Nu vil jeg hoppe ned fra stolen og hen om hjørnet for at æde en grillkylling.
Avatar billede sukos Juniormester
04. juni 2004 - 20:46 #15
Og jeg kikker lige forbi PHP kategorien! ;O)
Avatar billede steen_hansen Forsker
04. juni 2004 - 20:47 #16
Hm? Håber I får tid senere så :o)
Avatar billede steen_hansen Forsker
04. juni 2004 - 20:51 #17
I tilfælde af, at der skulle være andre, der har gode idéer, får I lige koden her:

<%
    Dim Conn, RS

    If Request("mode") = "login" Then

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & SQLEncode(Request("username")) & "'")

        If RS.EOF Then

            RS.Close
            Conn.Close
            Response.Redirect "/error.asp?msg=Brugeren+eksisterer+ikke!"

        Else

            If RS("pass") = Request("pass") Then

                Dim Dato
                Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time()

                Session("username") = RS("username")
                Session("userID") = RS("userID")
                Conn.Execute "UPDATE profiles SET lastseen='" & Dato & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

                Select Case Request("autologin")
                    Case "autologin"
                        Response.Cookies("LoginInfo").Expires = Now + 365
                        Response.Cookies("LoginInfo")("autologin") = "true"
                        Response.Cookies("LoginInfo")("username") = Session("username")
                        Response.Cookies("LoginInfo")("password") = RS("pass")
                    Case "remember"
                        Response.Cookies("LoginInfo").Expires = Now + 365
                        Response.Cookies("LoginInfo")("autologin") = ""
                        Response.Cookies("LoginInfo")("username") = Session("username")
                        Response.Cookies("LoginInfo")("password") = RS("pass")
                    Case Else
                        Response.Cookies("LoginInfo").Expires = Now
                        Response.Cookies("LoginInfo")("autologin") = ""
                        Response.Cookies("LoginInfo")("username") = ""
                        Response.Cookies("LoginInfo")("password") = ""
                End Select

                Application.Lock
                Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
                Application.UnLock

                If Request.QueryString("redir") = "" Then
                    Response.Redirect "/mappe1/"
                Else
                    Response.Redirect Request.QueryString("redir")
                End If

            Else

                Session.Abandon
                Response.Redirect "/error.asp?msg=Forkert+adgangskode"

            End If

        End If

    ElseIf Request.QueryString = "logout" Or Request.QueryString = "enduser" Then

        Session.Abandon
        Response.Cookies("LoginInfo").Expires = Now
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = ""
        Response.Cookies("LoginInfo")("password") = ""

        If Request.QueryString = "enduser" Then
            Response.Redirect "default.asp?msg=Din+profil+er+blevet+slettet."
        Else
            Response.Redirect "/default.asp"
        End If

    End If
%>
Avatar billede thesurfer Nybegynder
05. juni 2004 - 00:06 #18
Jeg ville sige, at det er en dårlig/bøvet måde at gøre det på..

Jeg ville ha' gjort sådan her:

--

    Dim Conn, RS
' normalt bruger jeg: if request.servervariables("request_method") = "POST" then
' som checker om man lige har submittet en form.. f.eks. en login-form

    If Request("mode") = "login" Then

dim strBruger, strKode
strBruger = replace(request.form("username"), "'", "''")
strKode = replace(request.form("password"), "'", "''")

Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE usernamedb = '" & strBruger & "' and passworddb = '" & strKode & "'"

if not(rs.bof or rs.eof) then
  ' brugeren er fundet..
else
  'brugernavn eller kodeord er forkert..
  response.write "brugnavn eller kodeord er forkert"
end if

' kode til at lukke forbindelsen til database, indsættes her.

--

Der er er 2 meget vigtige ting man skal huske, når man arbejder med login, og databaser:

1)
Erstat *altid* tegnet ' med enten ingenting, eller 2 gange ', som opfattes som et enkelt ' tegn..
Grunden til det er, at hvis man kender enten brugernavn, eller kodeord, kan man logge ind, bare ved at erstatte det ukendte med:
' or '' = '
Nu har du så godt nok, brugt noget jeg ikke har testet: SQLEncode(Request("username"))

2)
Fejlmeddelelsen.
Fortæl aldrig brugeren, om det er brugernavnet eller kodeordet der er forkert.. hvis brugeren finder et brugernavn, men ikke password, kan han/hun forsøge sig med punkt 1.
Derfor: response.write "brugnavn eller kodeord er forkert" (eller)
Avatar billede thesurfer Nybegynder
05. juni 2004 - 00:08 #19
rettelse:
strBruger = replace(request.form("username"), "'", "''")
strKode = replace(request.form("password"), "'", "''")

Disse linier skulle være:

strBruger = replace(request.form("username"), "'", "")
strKode = replace(request.form("password"), "'", "")

da jeg normalt ikke tillader ' tegnet, hverken i brugernavn eller kodeord. Det tillades kun ved indlæg, og andre beskeder (o.lign.)..
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:17 #20
Ok, men det bliver så også fjernet med en Replace. Hvad du ikke kan se er, at der er inkluderet en functions.asp øverst, som tager sig af det :o)

Det ser fornuftigt ud. Jeg prøver lige at sammenfatte det og smider resultatet her lige om lidt.

Jeg får ikke mulighed for at teste det af før om en uge eller to. Men jeg går ud fra, at det er ok. Ellers vender jeg tilbage :o)

Kan du ikke smide et svar? thesurfer får 100 for at levere løsningen, powernodes får 20, fordi han var inde på det rigtige. Så jeg mangler også lige et svar fra powernodes :o)
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:19 #21
1)
Function SQLEncode(strSQL)
    SQLEncode = Replace(strSQL,"'","''")
End Function

2) Det lyder jo logisk :o)

Kommer lige med den samlede kode ....
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:23 #22
Det var sådan her?


<%
    Dim Conn, RS

    If Request("mode") = "login" Then

dim strBruger, strKode
strBruger = replace(request.form("username"), "'", "")
strKode = replace(request.form("password"), "'", "")

Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE usernamedb = '" & strBruger & "' and passworddb = '" & strKode & "'"

if not(rs.bof or rs.eof) then
  ' brugeren er fundet..
else
  'brugernavn eller kodeord er forkert..
%>

  Brugernavn eller kodeord er forkert"

<%
end if

                Session("username") = RS("username")
                Session("userID") = RS("userID")
                Conn.Execute "UPDATE profiles SET lastseen='" & Dato & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

                Select Case Request("autologin")
                    Case "autologin"
                        Response.Cookies("LoginInfo").Expires = Now + 365
                        Response.Cookies("LoginInfo")("autologin") = "true"
                        Response.Cookies("LoginInfo")("username") = Session("username")
                        Response.Cookies("LoginInfo")("password") = RS("pass")
                    Case "remember"
                        Response.Cookies("LoginInfo").Expires = Now + 365
                        Response.Cookies("LoginInfo")("autologin") = ""
                        Response.Cookies("LoginInfo")("username") = Session("username")
                        Response.Cookies("LoginInfo")("password") = RS("pass")
                    Case Else
                        Response.Cookies("LoginInfo").Expires = Now
                        Response.Cookies("LoginInfo")("autologin") = ""
                        Response.Cookies("LoginInfo")("username") = ""
                        Response.Cookies("LoginInfo")("password") = ""
                End Select

                Application.Lock
                Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
                Application.UnLock

                If Request.QueryString("redir") = "" Then
                    Response.Redirect "/mappe1/"
                Else
                    Response.Redirect Request.QueryString("redir")
                End If

            Else

                Session.Abandon
                Response.Redirect "/error.asp?msg=Forkert+adgangskode"

            End If

        End If

    ElseIf Request.QueryString = "logout" Or Request.QueryString = "enduser" Then

        Session.Abandon
        Response.Cookies("LoginInfo").Expires = Now
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = ""
        Response.Cookies("LoginInfo")("password") = ""

        If Request.QueryString = "enduser" Then
            Response.Redirect "default.asp?msg=Din+profil+er+blevet+slettet."
        Else
            Response.Redirect "/default.asp"
        End If

    End If
%>
Avatar billede thesurfer Nybegynder
05. juni 2004 - 00:26 #23
resten af koden (helt ned til "ElseIf Request.QueryString", men skal ikke med), skal være ind for "brugeren er fundet"-koden..
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:30 #24
Sådan?

<%
    Dim Conn, RS

    If Request("mode") = "login" Then

dim strBruger, strKode
strBruger = replace(request.form("username"), "'", "")
strKode = replace(request.form("password"), "'", "")

Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE usernamedb = '" & strBruger & "' and passworddb = '" & strKode & "'"

if not(rs.bof or rs.eof) then
  ' brugeren er fundet..
else
  'brugernavn eller kodeord er forkert..
%>

  Brugernavn eller kodeord er forkert

<%
end if


                Session("username") = RS("username")
                Session("userID") = RS("userID")
                Conn.Execute "UPDATE profiles SET lastseen='" & Dato & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

                Select Case Request("autologin")
                    Case "autologin"
                        Response.Cookies("LoginInfo").Expires = Now + 365
                        Response.Cookies("LoginInfo")("autologin") = "true"
                        Response.Cookies("LoginInfo")("username") = Session("username")
                        Response.Cookies("LoginInfo")("password") = RS("pass")
                    Case "remember"
                        Response.Cookies("LoginInfo").Expires = Now + 365
                        Response.Cookies("LoginInfo")("autologin") = ""
                        Response.Cookies("LoginInfo")("username") = Session("username")
                        Response.Cookies("LoginInfo")("password") = RS("pass")
                    Case Else
                        Response.Cookies("LoginInfo").Expires = Now
                        Response.Cookies("LoginInfo")("autologin") = ""
                        Response.Cookies("LoginInfo")("username") = ""
                        Response.Cookies("LoginInfo")("password") = ""
                End Select

                Application.Lock
                Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
                Application.UnLock

                If Request.QueryString("redir") = "" Then
                    Response.Redirect "/mappe1/"
                Else
                    Response.Redirect Request.QueryString("redir")
                End If

            Else

                Session.Abandon
                Response.Redirect "/error.asp?msg=Forkert+adgangskode"

            End If

        End If
  ElseIf Request.QueryString = "logout" Or Request.QueryString = "enduser" Then

        Session.Abandon
        Response.Cookies("LoginInfo").Expires = Now
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = ""
        Response.Cookies("LoginInfo")("password") = ""

        If Request.QueryString = "enduser" Then
            Response.Redirect "default.asp?msg=Din+profil+er+blevet+slettet."
        Else
            Response.Redirect "/default.asp"
        End If

    End If
%>
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:30 #25
Nej, det var jo det samme, øjeblik ...
Avatar billede thesurfer Nybegynder
05. juni 2004 - 00:32 #26
Prøv det her:

<%
    Dim Conn, RS

If Request("mode") = "login" Then

    dim strBruger, strKode
    strBruger = replace(request.form("username"), "'", "")
    strKode = replace(request.form("password"), "'", "")

    Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE usernamedb = '" & strBruger & "' and passworddb = '" & strKode & "'"

    if not(rs.bof or rs.eof) then
        ' brugeren er fundet..


                Session("username") = RS("username")
                Session("userID") = RS("userID")
                Conn.Execute "UPDATE profiles SET lastseen='" & Dato & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

                Select Case Request("autologin")
                    Case "autologin"
                        Response.Cookies("LoginInfo").Expires = Now + 365
                        Response.Cookies("LoginInfo")("autologin") = "true"
                        Response.Cookies("LoginInfo")("username") = Session("username")
                        Response.Cookies("LoginInfo")("password") = RS("pass")
                    Case "remember"
                        Response.Cookies("LoginInfo").Expires = Now + 365
                        Response.Cookies("LoginInfo")("autologin") = ""
                        Response.Cookies("LoginInfo")("username") = Session("username")
                        Response.Cookies("LoginInfo")("password") = RS("pass")
                    Case Else
                        Response.Cookies("LoginInfo").Expires = Now
                        Response.Cookies("LoginInfo")("autologin") = ""
                        Response.Cookies("LoginInfo")("username") = ""
                        Response.Cookies("LoginInfo")("password") = ""
                End Select

                Application.Lock
                Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
                Application.UnLock

                If Request.QueryString("redir") = "" Then
                    Response.Redirect "/mappe1/"
                Else
                    Response.Redirect Request.QueryString("redir")
                End If

            Else

               
'''                Response.Redirect "/error.asp?msg=Forkert+adgangskode"

            End If
else
  'brugernavn eller kodeord er forkert..
  Session.Abandon ' slet sessionen
%>

  Brugernavn eller kodeord er forkert"

<%
End If

If Request.QueryString("mode") = "logout" Or Request.QueryString("mode") = "enduser" Then

        Session.Abandon
        Response.Cookies("LoginInfo").Expires = Now
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = ""
        Response.Cookies("LoginInfo")("password") = ""

        If Request.QueryString = "enduser" Then
            Response.Redirect "default.asp?msg=Din+profil+er+blevet+slettet."
        Else
            Response.Redirect "/default.asp"
        End If

    End If
%>

Du manglede 2x ("mode"), ved i: If Request.QueryString = "logout" Or Request.QueryString = "enduser" Then
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:38 #27
Ok, det kan jeg se :o)

Hvordan skal det så sættes op? Jeg mener: Jeg har en forside med 2 formularer (login). Koden, som jeg lagde ud med, har været brugt til ét login på samme domæne, og det lå ude i roden.

Nu har jeg oprettet et nyt websted, som forhåbentlig kan holde de to cookies adskilt. Hvordan skal det rent praktisk foregå? Kan jeg bruge dette ene script til begge logins, eller hvordan?

Husk lige at lægget et svar :o)
Avatar billede thesurfer Nybegynder
05. juni 2004 - 00:43 #28
Du kan godt lave 1 side, med login til 2 steder.. du skal bare checke hvilken side du er på..

Det kan f.eks. gøres med:

if InStr(LCase(request.servervariables("script_name")), "/nyt_websted") then
' koden/cookien til "/nyt_websted" indsættes her
else
' koden/cookien til "www.minside.dk" indsættes her
end if
Avatar billede thesurfer Nybegynder
05. juni 2004 - 00:44 #29
Måske skal der bare stå "nyt_websted" i stedet for "/nyt_websted"..
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:47 #30
Ok. Det var det, der var mit oprindelige problem. Jeg vil lige prøve at se, om jeg kan finde ud af det, øjeblik ...
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:48 #31
Du behøver ikke at blive hængende, hvis du er på vej i seng. Vi tager bare resten i morgen eller en anden dag, hvis det er :o)
Avatar billede thesurfer Nybegynder
05. juni 2004 - 00:49 #32
Alletiders :-)
smutter i seng.. godnat og sov godt :-)
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:51 #33
I lige måde :o)

Jeg lægger noget kode, når jeg tror jeg mener at have rigtigt fat i det :o)
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:52 #34
når jeg tror jeg mener .... du ved hvad jeg mener :o)
Avatar billede thesurfer Nybegynder
05. juni 2004 - 00:53 #35
:-)
Avatar billede steen_hansen Forsker
05. juni 2004 - 00:57 #36
usernamedb = navnet på databasen med user/pass?
Avatar billede thesurfer Nybegynder
05. juni 2004 - 01:00 #37
usernamedb = navnet på feltet, til brugernavn, i databasen
passworddb = navnet på feltet, til kodeord, i databasen
Avatar billede thesurfer Nybegynder
05. juni 2004 - 01:01 #38
Disse navne er ikke noget jeg plejer at bruge.. det var for at du kunne se, hvad det var.. :-)
Bare så man ikke forvekslede dem med input-felter, variabler, osv..
Avatar billede steen_hansen Forsker
05. juni 2004 - 01:03 #39
Altså RS("username") og RS("pass")?
Avatar billede thesurfer Nybegynder
05. juni 2004 - 01:03 #40
Ja, bortset fra at "rs" ikke eksisterer på det tidspunkt :-)
Avatar billede steen_hansen Forsker
05. juni 2004 - 01:05 #41
S'føli! :o)

Smut så i seng, jeg skal nok holde inde nu :o)
Avatar billede thesurfer Nybegynder
05. juni 2004 - 01:06 #42
DEAL! :-)
Avatar billede steen_hansen Forsker
05. juni 2004 - 08:54 #43
Hej surfer. Håber ikke jeg tog livet af dig :o)

Jeg har prøvet at rette koden lidt til. Håber du lige vil rende den igennem. Bagefter prøver jeg lige at se, om jeg kan få sat det rigtigt op til de to cookies.



<!-- #include virtual="/includes/functions.inc" -->

<%
    Dim Conn, RS

    If Request("mode") = "login" Then

        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Websider\resadmin\include.dk\include.dk\www\fpdb\includefamily.mdb"

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & SQLEncode(Request("username")) & "'")

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("password"), "'", "")

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & strBruger & "' and pass = '" & strKode & "'"

        ' Bruger er fundet
        If Not (RS.BOF OR RS.EOF) Then

            Dim Dato
            Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time()

            Session("username") = RS("username")
            Session("userID") = RS("userID")
            Conn.Execute "UPDATE profiles SET lastseen='" & Dato & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

            Select Case Request("autologin")
                Case "autologin"
                    Response.Cookies("LoginInfo").Expires = Now + 365
                    Response.Cookies("LoginInfo")("autologin") = "true"
                    Response.Cookies("LoginInfo")("username") = Session("username")
                    Response.Cookies("LoginInfo")("password") = RS("pass")
                Case "remember"
                    Response.Cookies("LoginInfo").Expires = Now + 365
                    Response.Cookies("LoginInfo")("autologin") = ""
                    Response.Cookies("LoginInfo")("username") = Session("username")
                    Response.Cookies("LoginInfo")("password") = RS("pass")
                Case Else
                    Response.Cookies("LoginInfo").Expires = Now
                    Response.Cookies("LoginInfo")("autologin") = ""
                    Response.Cookies("LoginInfo")("username") = ""
                    Response.Cookies("LoginInfo")("password") = ""
            End Select

            Application.Lock
            Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
            Application.UnLock

            If Request.QueryString("redir") = "" Then
                Response.Redirect "/default.asp"
            Else
                Response.Redirect Request.QueryString("redir")
            End If

        Else

            Response.Redirect "/error.asp?msg=Forkert+adgangskode"

        End If

    Else

    ' Brugernavn eller adgangskode er forkert
    Session.Abandon
%>

    Brugernavn eller kodeord er forkert

<%
    End If

    If Request.QueryString("mode") = "logout" Or Request.QueryString("mode") = "enduser" Then

        Session.Abandon
        Response.Cookies("LoginInfo").Expires = Now
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = ""
        Response.Cookies("LoginInfo")("password") = ""

        If Request.QueryString = "enduser" Then
            Response.Redirect "default.asp?msg=Din+profil+er+blevet+slettet."
        Else
            Response.Redirect "/"
        End If

    End If
%>
Avatar billede steen_hansen Forsker
05. juni 2004 - 08:59 #44
Er det ikke hele koden, der skal stå der 2 gange?

Hvis URL = URL1 Så

    kode til URL1 med Db.Conn1

Ellers

    kode til URL2 med Db.Conn2

Afslut hvis


Jeg prøver lige at smide hele koden:
Avatar billede steen_hansen Forsker
05. juni 2004 - 09:00 #45
<!-- #include virtual="/includes/functions.inc" -->

<%
If InStr(LCase(request.servervariables("SCRIPT_NAME")), "/include family") Then

    Dim Conn, RS

    If Request("mode") = "login" Then

        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Websider\resadmin\include.dk\include.dk\www\fpdb\includefamily.mdb"

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & SQLEncode(Request("username")) & "'")

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("password"), "'", "")

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & strBruger & "' and pass = '" & strKode & "'"

        ' Bruger er fundet
        If Not (RS.BOF OR RS.EOF) Then

            Dim Dato
            Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time()

            Session("username") = RS("username")
            Session("userID") = RS("userID")
            Conn.Execute "UPDATE profiles SET lastseen='" & Dato & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

            Select Case Request("autologin")
                Case "autologin"
                    Response.Cookies("LoginInfo").Expires = Now + 365
                    Response.Cookies("LoginInfo")("autologin") = "true"
                    Response.Cookies("LoginInfo")("username") = Session("username")
                    Response.Cookies("LoginInfo")("password") = RS("pass")
                Case "remember"
                    Response.Cookies("LoginInfo").Expires = Now + 365
                    Response.Cookies("LoginInfo")("autologin") = ""
                    Response.Cookies("LoginInfo")("username") = Session("username")
                    Response.Cookies("LoginInfo")("password") = RS("pass")
                Case Else
                    Response.Cookies("LoginInfo").Expires = Now
                    Response.Cookies("LoginInfo")("autologin") = ""
                    Response.Cookies("LoginInfo")("username") = ""
                    Response.Cookies("LoginInfo")("password") = ""
            End Select

            Application.Lock
            Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
            Application.UnLock

            If Request.QueryString("redir") = "" Then
                Response.Redirect "/default.asp"
            Else
                Response.Redirect Request.QueryString("redir")
            End If

        Else

            Response.Redirect "/error.asp?msg=Forkert+adgangskode"

        End If

    Else

    ' Brugernavn eller adgangskode er forkert
    Session.Abandon
%>

    Brugernavn eller kodeord er forkert

<%
    End If

    If Request.QueryString("mode") = "logout" Or Request.QueryString("mode") = "enduser" Then

        Session.Abandon
        Response.Cookies("LoginInfo").Expires = Now
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = ""
        Response.Cookies("LoginInfo")("password") = ""

        If Request.QueryString = "enduser" Then
            Response.Redirect "default.asp?msg=Din+profil+er+blevet+slettet."
        Else
            Response.Redirect "/"
        End If

    End If

Else

    Dim Conn, RS

    If Request("mode") = "login" Then

        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Websider\resadmin\include.dk\include.dk\www\fpdb\includeit.mdb"

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & SQLEncode(Request("username")) & "'")

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("password"), "'", "")

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & strBruger & "' and pass = '" & strKode & "'"

        ' Bruger er fundet
        If Not (RS.BOF OR RS.EOF) Then

            Dim Dato
            Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time()

            Session("username") = RS("username")
            Session("userID") = RS("userID")
            Conn.Execute "UPDATE profiles SET lastseen='" & Dato & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

            Select Case Request("autologin")
                Case "autologin"
                    Response.Cookies("LoginInfo").Expires = Now + 365
                    Response.Cookies("LoginInfo")("autologin") = "true"
                    Response.Cookies("LoginInfo")("username") = Session("username")
                    Response.Cookies("LoginInfo")("password") = RS("pass")
                Case "remember"
                    Response.Cookies("LoginInfo").Expires = Now + 365
                    Response.Cookies("LoginInfo")("autologin") = ""
                    Response.Cookies("LoginInfo")("username") = Session("username")
                    Response.Cookies("LoginInfo")("password") = RS("pass")
                Case Else
                    Response.Cookies("LoginInfo").Expires = Now
                    Response.Cookies("LoginInfo")("autologin") = ""
                    Response.Cookies("LoginInfo")("username") = ""
                    Response.Cookies("LoginInfo")("password") = ""
            End Select

            Application.Lock
            Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
            Application.UnLock

            If Request.QueryString("redir") = "" Then
                Response.Redirect "/default.asp"
            Else
                Response.Redirect Request.QueryString("redir")
            End If

        Else

            Response.Redirect "/error.asp?msg=Forkert+adgangskode"

        End If

    Else

    ' Brugernavn eller adgangskode er forkert
    Session.Abandon
%>

    Brugernavn eller kodeord er forkert

<%
    End If

    If Request.QueryString("mode") = "logout" Or Request.QueryString("mode") = "enduser" Then

        Session.Abandon
        Response.Cookies("LoginInfo").Expires = Now
        Response.Cookies("LoginInfo")("autologin") = ""
        Response.Cookies("LoginInfo")("username") = ""
        Response.Cookies("LoginInfo")("password") = ""

        If Request.QueryString = "enduser" Then
            Response.Redirect "default.asp?msg=Din+profil+er+blevet+slettet."
        Else
            Response.Redirect "/"
        End If

    End If

End If
%>
Avatar billede thesurfer Nybegynder
05. juni 2004 - 10:37 #46
Du har indsat koden forkert.. :-)
Det var meningen at, til ethvert kald, på en værdi fra formularen skulle der fixes ' tegn..

Så du kan godt se, at den her er forkert, ide den tager værdien fra formen, som den er:

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & SQLEncode(Request("username")) & "'")


Det var det der med at bruge strBruger og strKode. De skal indsættes i alle dine SQL-strenge, der sammenligner brugernavn og/eller kodeord.

Jeg kigger lige resten igennem.
Avatar billede thesurfer Nybegynder
05. juni 2004 - 10:42 #47
I fremtiden ville det være en god ide, at ersatte stien+navnet på databasen, med noget andet.. f.eks. "***".
Hvis du f.eks. har database filen liggende sammen med asp filen, kan database nemt downloades (man skriver bare navnet på databasefilen), og dine password ville afsløret..
Avatar billede thesurfer Nybegynder
05. juni 2004 - 10:53 #48
Jeg faldt lige over denne her:

If InStr(LCase(request.servervariables("SCRIPT_NAME")), "/include family") Then

Der betyder hvis "/include family" indgår i urlen til denne fil, skal den udføre noget kode..

Eksempler:
"http://www.minside.dk/nyt_websted/include family/index.asp"
"http://www.minside.dk/include family/index.asp"

Så jeg tror at du har misforstået det..
En anden ting: i urls (stier og filnavne) bruges ikke " " (mellemrum), "ø,æ,å", "STORE bogstaver"
det med "STORE bogstaver" gælder, hvis serveren er Linux, da der er forskel på store og små bogstaver..

Eksempel: "opret.asp" er *ikke* det samme som "oprEt.asp"! (samme bogstaver, men store/små)
Avatar billede thesurfer Nybegynder
05. juni 2004 - 11:02 #49
- By the way.. denne linie skal så fjernes, da du har den anden:

      Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & SQLEncode(Request("username")) & "'")


- Alle request*("et eller andet") skal fixes.

- Du mangler ("mode") her:
If Request.QueryString = "enduser" Then
Og du skriver godt nok "Din+profil+er+blevet+slettet", men du sletter ikke profilen.

- Jeg går ud fra, at "CutStr" er et objekt som oprettes..
Avatar billede steen_hansen Forsker
06. juni 2004 - 08:49 #50
Sorry, surfer! Jeg var udenfor hele dagen i går og male værkstedet. Det var jo lige vejr til det :o)

Jeg kigger dine indlæg igennem. Jeg er utrolig glad for at du gider :o)

powernodes: Kan jeg få et svar som tak for hjælpen?
Avatar billede steen_hansen Forsker
06. juni 2004 - 09:35 #51
Kommentar: thesurfer
05/06-2004 10:37:46:

"Det var det der med at bruge strBruger og strKode. De skal indsættes i alle dine SQL-strenge, der sammenligner brugernavn og/eller kodeord."

Det mener jeg helt bestemt, at denne funktion gør?

Function SQLEncode(strSQL)
    SQLEncode = Replace(strSQL,"'","''")
End Function



Kommentar: thesurfer
05/06-2004 10:42:08

Jeg er sikker på, at jeg helt forstår hvad du mener, for jeg mener ikke man kan se stiangivelsen til databasen via et VB-script? Desuden er det kun databaser, der bliver gemt i mappen, og jeg har forsøgt at downloade en DB via MSIE ved at angive navn og nøjagtig sti. Det kunne ikke lade sig gøre - heldigvis :o)
Grunden til at jeg lige satte denne linie ind:

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Websider\resadmin\mitdomæne.dk\mitdomæne.dk\www\fpdb\database.mdb"

var fordi jeg ikke lige kunne huske den man normalt bruger. Jeg bruger ikke STORE bogstaver, og jeg bruger ikke æ, ø og å. Jeg kan godt finde på at bruge mellemrum i et mappenavn, da mellemrum erstattes med %20 i adresselinien i browseren. Jeg anvender et script, som f.eks. udskriver

CONTEXT: \\ mitdomæne \ opret bruger

- lidt á la her på Eksperten:

Du er her : Eksperten : Spørgsmål & Svar : Programmering : Script : ASP : Kan man have 2 logins og 2 cookies på samme domæne? :

For at kunne udskrive "opret bruger", laver jeg mellemrum i navnet, da scriptet tager mappenavnet. Men har du en bedre idé, eller ligger du inde med noget færdigt, som kan det samme, kan jeg oprette et nyt spørgsmål med nye point :o)
Principielt har jeg heller ikke anvendt mellemrum, men nu faldt jeg over dette script :o)



Kommentar: thesurfer
05/06-2004 11:02:42

Jeg REM'er denne her ud :o)
Set RS = Conn.Execute("SELECT ......


Mht. enduser, så slettes profilen fra en deleteprofile.asp
Response.Redirect "/dolog.asp?enduser"
- så den skulle være ok :o)


Mht. CutStr, så er den også i functions.inc:

Function CutStr(str,vLength)
    If len(str) < vLength Then
        CutStr = str
    Else
        CutStr = Left(str,vLength - 3) & "..."
    End If
End Function

Det er for at komme det problem til livs, at hvis en bruger skriver mononatriumglutaminat i en celle, der er meget small, så kortes ordet ned, så det ikke forrykker hele tabellen. I det her tilfælde bliver det anvendt, hvis en bruger kommer fra en URL, der har en længde på mere end 150 karakterer.



Det var en ordentlig omgang :o) Jeg vil lige se, om jeg kan fixe alle Request("et-eller-andet"). Indtil videre har jeg KUN rem'et denne ud

'Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & strBruger & "' and pass = '" & strKode & "'"
Avatar billede steen_hansen Forsker
06. juni 2004 - 09:39 #52
Nu ved jeg hvad du mener med 05/06-2004 10:37:46

Jeg kigger på det :o)
Avatar billede steen_hansen Forsker
06. juni 2004 - 09:54 #53
Jeg er sikker på, at jeg = Jeg er ikke sikker på, at jeg

small = smal
Avatar billede steen_hansen Forsker
06. juni 2004 - 10:26 #54
'Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & strBruger & "' and pass = '" & strKode & "'"

skulle ikke fjernes, det var denne:

Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & SQLEncode(Request("username")) & "'")
Avatar billede steen_hansen Forsker
06. juni 2004 - 11:18 #55
Jeg har 2 problemer:

1: Jeg er ikke helt klar over hvor mere jeg skal fixe '

2: Jeg er ikke klar over, hvordan det skal deles op, så de cookies bliver dannet, så de kan tilknyttes URL1 eller URL2


Jeg har lovet naboen at hjælpe med deres pc, så jeg springer lige fra nogle timer. Koden , som den ser ud nu:


<!-- #include virtual="/includes/functions.inc" -->

<%
    Dim Conn, RS

    If Request("mode") = "login" Then

        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Websider\resadmin\mitdomæne.dk\mitdomæne.dk\www\fpdb\database.mdb"

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("password"), "'", "")

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & strBruger & "' and pass = '" & strKode & "'"

        If Not (RS.BOF OR RS.EOF) Then

            Dim Dato
            Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time()

            Session("username") = RS("username")
            Session("userID") = RS("userID")
            Conn.Execute "UPDATE profiles SET lastseen='" & Dato & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

            Select Case Request("autologin")
                Case "autologin"
                    Response.Cookies("LoginInfo").Expires = Now + 365
                    Response.Cookies("LoginInfo")("autologin") = "true"
                    Response.Cookies("LoginInfo")("username") = Session("username")
                    Response.Cookies("LoginInfo")("password") = RS("pass")
                Case "remember"
                    Response.Cookies("LoginInfo").Expires = Now + 365
                    Response.Cookies("LoginInfo")("autologin") = ""
                    Response.Cookies("LoginInfo")("username") = Session("username")
                    Response.Cookies("LoginInfo")("password") = RS("pass")
                Case Else
                    Response.Cookies("LoginInfo").Expires = Now
                    Response.Cookies("LoginInfo")("autologin") = ""
                    Response.Cookies("LoginInfo")("username") = ""
                    Response.Cookies("LoginInfo")("password") = ""
            End Select

            Application.Lock
            Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
            Application.UnLock

            If Request.QueryString("redir") = "" Then
                Response.Redirect "/default.asp"
            Else
                Response.Redirect Request.QueryString("redir")
            End If

        Else

            Response.Redirect "/error.asp?msg=Forkert+adgangskode"

        End If

    Else

    Session.Abandon
%>

    Brugernavn eller kodeord er forkert

<%
End If

If Request.QueryString("mode") = "logout" Or Request.QueryString("mode") = "enduser" Then

    Session.Abandon
    Response.Cookies("LoginInfo").Expires = Now
    Response.Cookies("LoginInfo")("autologin") = ""
    Response.Cookies("LoginInfo")("username") = ""
    Response.Cookies("LoginInfo")("password") = ""

    If Request.QueryString = "enduser" Then
        Response.Redirect "default.asp?msg=Din+profil+er+blevet+slettet."
    Else
        Response.Redirect "/default.asp"
    End If

End If
%>
Avatar billede thesurfer Nybegynder
06. juni 2004 - 14:15 #56
Ahh.. jeg vidste ikke hvad "SQLEncode" var for en funktion.. men det gør det samme som mine linier:

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("password"), "'", "")

Bortset fra at man kan have ' tegnet i brugernavn og password..

Jeg vil se om jeg får tid, til at kigge på din sidste kode.. jeg er lidt bagud, da jeg har flere projekter kørende.. og så er der noget In Real Life, der kræver opmærksomhed.. *suk* :-)
Avatar billede steen_hansen Forsker
06. juni 2004 - 17:19 #57
Ja, jeg vil prøve at rette SQLEncode til, så ' bliver replacet med "" (ingenting)

Det haster ikke, surfer. Jeg har selv lidt projekter, og så er konen også begyndt at kræve opmærksomhed. Jeg ved ikke hvad det ligner! :oD

Jeg vil se frem til, at du evt. finder ud af noget. Indtil da: Hygge! :o)
Avatar billede steen_hansen Forsker
07. juni 2004 - 13:31 #58
Jeg glemte noget væsentligt, og det er denne, som er på forsiden:

<%
If Session("username") = "" And Request.Cookies("LoginInfo")("autologin") = "true" Then
    Response.Redirect "/include family/dolog.asp?mode=login&username=" & Request.Cookies("LoginInfo")("username") & "&pass=" & Request.Cookies("LoginInfo")("password") & "&autologin=autologin"
End If
%>


Den anden skal vel se sådan her ud?

<%
If Session("username") = "" And Request.Cookies("LoginInfo")("autologin") = "true" Then
    Response.Redirect "/include/dolog.asp?mode=login&username=" & Request.Cookies("LoginInfo")("username") & "&pass=" & Request.Cookies("LoginInfo")("password") & "&autologin=autologin"
End If
%>
Avatar billede steen_hansen Forsker
07. juni 2004 - 13:54 #59
Når du engang får tid, håber jeg du vil gå ind på siden og se :o)

Hvis ikke du kan finde adressen, så læg en mail. Jeg vil helst ikke offentliggøre det endnu, det er slet ikke færdigt :o)
Avatar billede thesurfer Nybegynder
07. juni 2004 - 19:09 #60
Min email adresse, kan du finde på ebruger.dk, under profilen "thesurfer".
Avatar billede steen_hansen Forsker
07. juni 2004 - 23:33 #61
powernodes, lægger du et svar?
Avatar billede steen_hansen Forsker
08. juni 2004 - 21:42 #62
surfer, jeg har problemer med, at jeg hele tiden indtaster forkert password. Nærmest som om scriptet sammenligner det indtastede password med ingenting ....?

Der mangler en ) i denne linie

Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '"&strBruger&"' AND pass='"&strKode&"'"

Den skal vel stå til allersidst i linien?

Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '"&strBruger&"' AND pass='"&strKode&"'")
Avatar billede thesurfer Nybegynder
08. juni 2004 - 23:14 #63
Ja, ellers ville du få en fejl.
- Men hvordan ser koden til strBruger og strKode ud?
- Og hvor er den placeret? (udenfor en kodeblok, inde i en if, .. skriv koden)
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:16 #64
dolog.asp


<!-- #include virtual="/includes/_functions.asp" -->

<%
    Dim Conn, RS

    If Request("mode") = "login" Then

        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Websider\resadmin\mydomain.dk\mydomain.dk\www\fpdb\db.mdb"

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("password"), "'", "")

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & strBruger & "' AND pass='" & strKode & "'")

        If Not (RS.BOF OR RS.EOF) Then

            Dim Dato
            Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time()

            Session("username") = RS("username")
            Session("userID") = RS("userID")
            Conn.Execute "UPDATE profiles SET lastseen='" & Dato & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

            Select Case Request("autologin")
                Case "autologin"
                    Response.Cookies("LoginInfo").Expires = Now + 365
                    Response.Cookies("LoginInfo")("autologin") = "true"
                    Response.Cookies("LoginInfo")("username") = Session("username")
                    Response.Cookies("LoginInfo")("password") = RS("pass")
                Case "remember"
                    Response.Cookies("LoginInfo").Expires = Now + 365
                    Response.Cookies("LoginInfo")("autologin") = ""
                    Response.Cookies("LoginInfo")("username") = Session("username")
                    Response.Cookies("LoginInfo")("password") = RS("pass")
                Case Else
                    Response.Cookies("LoginInfo").Expires = Now
                    Response.Cookies("LoginInfo")("autologin") = ""
                    Response.Cookies("LoginInfo")("username") = ""
                    Response.Cookies("LoginInfo")("password") = ""
            End Select

            Application.Lock
            Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
            Application.UnLock

            If Request.QueryString("redir") = "" Then
                Response.Redirect "/default.asp"
            Else
                Response.Redirect Request.QueryString("redir")
            End If

        Else

            Response.Redirect "/error.asp?msg=Du+har+indtastet+forkert+brugernavn+eller+adgangskode!"

        End If

    Else

    Session.Abandon
%>

    Brugernavn eller kodeord er forkert

<%
End If

If Request.QueryString("mode") = "logout" Or Request.QueryString("mode") = "enduser" Then

    Session.Abandon
    Response.Cookies("LoginInfo").Expires = Now
    Response.Cookies("LoginInfo")("autologin") = ""
    Response.Cookies("LoginInfo")("username") = ""
    Response.Cookies("LoginInfo")("password") = ""

    If Request.QueryString = "enduser" Then
        Response.Redirect "default.asp?msg=Din+profil+er+blevet+slettet."
    Else
        Response.Redirect "/default.asp"
    End If

End If
%>
Avatar billede thesurfer Nybegynder
08. juni 2004 - 23:21 #65
Din ASP kode ser rigtig ud. Hvordan ser din form ud?
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:23 #66
Den er inkluderet, så koden er rykket noget ud. Men hvis du kopierer det over i et tomt dokument, burde det være til at se :o)

                                    <form name="frmLogin" action="/dolog.asp?redir=<%=Request.QueryString("redir")%>" method="post">
                                    <input type="hidden" name="mode" value="login">
                                        <td valign="top" align="left" style="width: 295px;" class="padding16"><span class="h22">include family</span><br><br>
                                            Brugernavn:<br>
                                            <input type="text" name="username" value="<% If Request.Cookies("LoginInfo")("autologin") <> "true" Then Response.Write(Request.Cookies("LoginInfo")("username"))%>" class="input1" size="<%=Size%>"><br>
                                            Adgangskode:<br>
                                            <input type="password" name="pass" value="<% If Request.Cookies("LoginInfo")("autologin") <> "true" Then Response.Write(Request.Cookies("LoginInfo")("password"))%>" class="input1" size="<%=Size%>"><br>
                                            <input type="radio" name="autologin" value="autologin" checked <%

                                            If Request.Cookies("logininfo")("autologin") = "true" Then _
                                                Response.Write "checked"

                                            %>> Log mig automatisk ind<br>
                                            <input type="radio" name="autologin" value="remember" <%

                                            If Request.Cookies("logininfo")("autologin") <> "true" AND _
                                                Request.Cookies("logininfo")("username") <> "" AND _
                                                Request.Cookies("logininfo")("password") <> "" Then _
                                                Response.Write "checked"

                                            %>> Husk mine indstillinger<br>
                                            <input type="radio" name="autologin" value="<%

                                            If Request.Cookies("logininfo")("autologin") <> "true" AND _
                                                Request.Cookies("logininfo")("username") = "" AND _
                                                Request.Cookies("logininfo")("password") = "" Then _
                                                Response.Write "checked"

                                            %>"> Vil ikke huskes
                                            <p><input type="submit" value="Luk mig ind!" class="input2"><br><br><br>
                                            <a href="/include family/adgangskode/" style="width: 100%; display: block;" title="Få tilsendt din adgangskode" onFocus="this.blur();"><b>Jeg har glemt min adgangskode!</b></a><br>
                                            <b>Endnu ikke registreret som bruger?</b><br>
                                            <a href="/include family/ny bruger/" style="width: 100%; display: block;" title="Registrer dig som bruger" onFocus="this.blur();"><b>Klik her!</b></a>
                                        </td>
                                    </form>
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:25 #67
Jeg tror ikke powernodes ser det her, så du får alle pointene.

powernodes, hvis du vil have dem, må du råbe højt. Så opretter jeg et nyt spørgsmål til dig.
Avatar billede thesurfer Nybegynder
08. juni 2004 - 23:27 #68
Jeg har kigget på din side.. du har kun 1x <form> og </form>.. men du har 2x login-felter..?
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:28 #69
Ja, men den anden login venter jeg med til der er styr på de 2 cookies :o)
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:29 #70
Dét, som det hele drejer sig om :o)
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:30 #71
Jeg kører bare lidt videre, mens det endnu ikke er på plads.
Avatar billede thesurfer Nybegynder
08. juni 2004 - 23:37 #72
Det ser rigtigt nok ud, så check lige brugernavn og kodeord i databasen..
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:40 #73
Det har jeg gjort nogle gange.

Prøv at oprette dig som bruger og log ind. Oprette-delen og send adgangskode burde virke :o)
Avatar billede thesurfer Nybegynder
08. juni 2004 - 23:47 #74
jeg har oprettet brugeren "theSurfer".. check databasen nu.. hvad er brugernavnet og passwordet?

Jeg har ikke skrevet korrekte oplysninger, så det gør ikke noget hvis man kan bruge mit login.
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:48 #75
user: theSurfer
pass: Ewdtypey
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:49 #76
Jeg vidste ikke du kom fra Tórshavn :o)
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:49 #77
Stemmer det?
Avatar billede thesurfer Nybegynder
08. juni 2004 - 23:52 #78
nope.. :-)
Ingen af oplysningerne er korrekte.. :-)
Det første postnummer (100) tilhører Tórshavn :-)

Jeg får besked på at brugernavn/kode er forkert..

Prøv det her:

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("password"), "'", "")
        response.write "user: *" & strBruger & "*<br>pass: *" & strKode & "*"
        response.end

Den skulle jo gerne skrive brugernavn og kodeord, omringet af "*" tegn..
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:55 #79
Og den skal ind i dolog.asp?
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:59 #80
'Dim strBruger, strKode
        'strBruger = Replace(Request.Form("username"), "'", "")
        'strKode = Replace(Request.Form("password"), "'", "")

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("password"), "'", "")
        response.write "user: *" & strBruger & "*<br>pass: *" & strKode & "*"
        response.end
Avatar billede steen_hansen Forsker
08. juni 2004 - 23:59 #81
pass er som jeg anede - tomt :o/
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:00 #82
Prøv: strKode = Replace(Request.Form("pass"), "'", "")
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:02 #83
Så er den der sq :o)
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:04 #84
For He..... password-feltet hedder "password", og det skal hedde "pass". UNDSKYLD :o)
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:05 #85
Næææ. Nu har jeg mistet overblikket. Håber du har det i behold :o)
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:05 #86
Du har kommet til at forveksle de 2 password felter, på din side :-)
Hvis brugernavn og kodeord ikke skal være case-sensitive (dvs, der skal ikke være forskel på store/små bogstaver):

strBruger = LCase(replace(request.form("username"), "'","''")
strKode = LCase(replace(request.form("pass"), "'","''")

Husk at gemme (ved oprettelse og ved opdatering) brugernavn og kodeord, med småt..
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:07 #87
Det skal netop være case-sensitive:

Function RandomString(vLength)
    Dim vChar
    Randomize

    For I = 1 To vLength
        vChar = Int(Rnd * 57) + 65

        If vChar < 65 Then vChar = 65
        If vChar > 122 Then vChar = 122

        If vChar < 91 Or vChar > 96 Then
            RandomString = RandomString & Chr(vChar)
        Else
            I = I - 1
        End If
    Next
End Function
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:08 #88
"minside.dk": password
"minside.dk/nyt websted": pass

mht til navne på mapperne.. erstat mellemrum med f.eks. "_" (underscore).. og når du skal udskrive navnet "\\mappe navn", bruger du bare:

response.write "\\" & replace(sti, "_", " ")

bare et eksempel..
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:08 #89
OK (til case-sensitive) :-)
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:08 #90
Scriptet genererer et password på 8 karakterer med en blanding af store og små bogstaver, som både bliver smidt ned i databasen og sendt med mailen ved oprettelse af profil.
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:10 #91
09/06-2004 00:08:18: Ok, det vil jeg prøve, det ser fornuftigt ud. Hvis du kigger på CONTEXT: \\ mydomain.dk \ .....

Dvs. jeg skal rette password til pass i login-scriptet?
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:12 #92
Ja, til "minside.dk/nyt websted".. der skal det hedde "pass"..
til "minside.dk" er det stadig "password"
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:12 #93
... til "minside.dk/nyt websted"
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:13 #94
For lige at få det rigtigt:

Request.Cookies("logininfo")("password") <> "" Then _

rettes til

Request.Cookies("logininfo")("pass") <> "" Then _

?
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:14 #95
Nu er det vist sådan med JavaScript, at et navn må kun gives 1 gang.. dvs, flere elementer må ikke have samme navn..
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:15 #96
Det har nu virket førhen.
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:15 #97
Jeg ville nok lave noget i stil med:

.Cookies("loginfo_root")... (til "minside.dk")

og

.Cookies("loginfo_nytwebsted")... (til "minside.dk/nyt websted")

Altså: 2 forskellige cookies..
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:17 #98
Ok, det er det jeg har ventet på :o)

Men jeg er som sagt lidt i tvivl om hvordan det skal stilles op.
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:20 #99
Nu er den der igen: Du har indtastet forkert ....

Jeg har byttet om på '

        'Dim strBruger, strKode
        'strBruger = Replace(Request.Form("username"), "'", "")
        'strKode = Replace(Request.Form("password"), "'", "")

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("password"), "'", "")
        response.write "user: *" & strBruger & "*<br>pass: *" & strKode & "*"
        response.end

Det ser nu ud som det hele tiden har gjort:

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("password"), "'", "")

        'Dim strBruger, strKode
        'strBruger = Replace(Request.Form("username"), "'", "")
        'strKode = Replace(Request.Form("password"), "'", "")
        'response.write "user: *" & strBruger & "*<br>pass: *" & strKode & "*"
        'response.end
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:21 #100
som jeg skrev i mit svar (05/06-2004 00:43:19, http://www.eksperten.dk/spm/506180#rid4657033 ):

if InStr(LCase(request.servervariables("script_name")), "/nyt_websted") then
' koden/cookien til "/nyt_websted" indsættes her
else
' koden/cookien til "www.minside.dk" indsættes her
end if

"koden/cookien" inkludere "loginfo_root" og "loginfo_nytwebsted"
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:21 #101
Du bruger "password".. igen.. :-)

strKode = Replace(Request.Form("password"), "'", "")
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:23 #102
Jeg så det, sorry :o)

Prøv at logge ind nu
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:24 #103
Jeg udskriver <%=Session("username")%> nu, og det virker fint :o)
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:25 #104
Yeps :-)
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:26 #105
Nu mangler der "kun" det med de 2 cookies til hvert login, men jeg er på vej i seng. Kan vi kigge på det i morgen/en anden dag?
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:28 #106
Du burde kunne se hvordan du skal gøre det, via indlægget 09/06-2004 00:21:18.
Men ja, vi kan godt tage det en anden dag :-)
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:29 #107
Ok, jeg prøver at kigge på indlægget. Kan jeg ikke finde ud af det, råber jeg højt. Er det ok? :o)

354534654543543778784543 tak for hjælpen :o)
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:31 #108
Det er helt iorden :-)
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:45 #109
Lige inden jeg vil studere øjenlågene indefra: Nu virker cookien til det ene sted. Den burde måske hedde "nyt_websted", og den anden "websted"?

thesurfer, du har gjort en fantastisk indsats, og det haster ikke mere end det jawer. Så når du en gang føler du opsat på at gå i krig med det, vil jeg bare være glad :o)
Avatar billede thesurfer Nybegynder
09. juni 2004 - 00:51 #110
Du kan kalde cookies'ne for det du vil.. mine navne "loginfo_root" (minside.dk) og "loginfo_nytwebsted" (minside.dk/nyt websted) var bare eksempler..

Det er dig der skal vide, hvad der er hvad.. :-)
Avatar billede steen_hansen Forsker
09. juni 2004 - 00:53 #111
Ok, men jeg har opdaget, at jeg meget gerne vil have hjælp. Men ikke nu. NU er det sengetid for mit vedkommende :o)

Vi snakkes!
Avatar billede steen_hansen Forsker
09. juni 2004 - 23:19 #112
thesurfer, du skrev

if InStr(LCase(request.servervariables("script_name")), "/nyt_websted") then
' koden/cookien til "/nyt_websted" indsættes her (Hvor starter og slutter koden?)
else
' koden/cookien til "www.minside.dk" indsættes her (Hvor starter og slutter koden?)
end if

Jeg er lidt lost. Håber du får tid :o)
Avatar billede steen_hansen Forsker
10. juni 2004 - 13:07 #113
113 indlæg! Imponerende! :o)

Jeg kom til at tænke på, at muligheden for automatisk login ikke skal være mulig. Ellers kan man jo kun logge ind i det ene forum, medmindre man logger af det andet først. Eller ...?
Avatar billede thesurfer Nybegynder
10. juni 2004 - 18:00 #114
Det med auto-login venter vi lige med.

Det der skal stå i IF-blokken, er specifikt til det respektive område. Alt andet skal stå uden for IF-blokken. "Områder" er "mindside.dk" og "minside.dk/nyt websted"

Eksempel:
' Disse koder er globale koder, da begge områder skal bruge dem:
' Hvis
Dim Conn, RS

    If Request("mode") = "login" Then

        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Websider\resadmin\mydomain.dk\mydomain.dk\www\fpdb\db.mdb"

        Dim strBruger, strKode




if InStr(LCase(request.servervariables("script_name")), "/nyt_websted") then

' kode specifikt til "minside.dk/nyt_websted" indsættes her:
'...
<kode>.Cookies("loginfo_nytwebsted") = ... ' cookie sættes

else

' kode specifikt til "minside.dk" indsættes her:
'...
<kode>.Cookies("loginfo_root") = ... ' cookie sættes
'osv

end if


Kan du se det smarte i det? Ellers sig til..
Avatar billede steen_hansen Forsker
10. juni 2004 - 19:55 #115
Jeg kan sagtens se det smarte i det, det var det jeg gerne ville opnå. Det jeg helt nøjagtigt vil vide er, om det kun er

Select Case Request("autologin")

- jeg skal have fat i?

Nu prøver jeg at omskrive det lidt:




If InStr(LCase(Request.Servervariables("SCRIPT_NAME")), "/nyt websted") Then

    Select Case Request("autologin")
        Case "autologin"
            Response.Cookies("LoginInfo/nyt websted/") = .........?
            Response.Cookies("LoginInfo").Expires = Now + 365
            Response.Cookies("LoginInfo")("autologin") = "true"
            Response.Cookies("LoginInfo")("username") = Session("username")
            Response.Cookies("LoginInfo")("pass") = RS("pass")
        Case "remember"
            Response.Cookies("LoginInfo").Expires = Now + 365
            Response.Cookies("LoginInfo")("autologin") = ""
            Response.Cookies("LoginInfo")("username") = Session("username")
            Response.Cookies("LoginInfo")("pass") = RS("pass")
        Case Else
            Response.Cookies("LoginInfo").Expires = Now
            Response.Cookies("LoginInfo")("autologin") = ""
            Response.Cookies("LoginInfo")("username") = ""
            Response.Cookies("LoginInfo")("pass") = ""
    End Select

Else

    Select Case Request("autologin")
        Case "autologin"
            Response.Cookies("LoginInfo_root") = ...........?
            Response.Cookies("LoginInfo").Expires = Now + 365
            Response.Cookies("LoginInfo")("autologin") = "true"
            Response.Cookies("LoginInfo")("username") = Session("username")
            Response.Cookies("LoginInfo")("pass") = RS("pass")
        Case "remember"
            Response.Cookies("LoginInfo").Expires = Now + 365
            Response.Cookies("LoginInfo")("autologin") = ""
            Response.Cookies("LoginInfo")("username") = Session("username")
            Response.Cookies("LoginInfo")("pass") = RS("pass")
        Case Else
            Response.Cookies("LoginInfo").Expires = Now
            Response.Cookies("LoginInfo")("autologin") = ""
            Response.Cookies("LoginInfo")("username") = ""
            Response.Cookies("LoginInfo")("pass") = ""
    End Select

End If



Nej, jeg er ikke helt med. Jeg kan sagtens se proncippet i det, og ved hvordan det teoretisk skal hænge sammen. Men at omsætte det i reel kode, den kniber sq noget.

Jeg ved jeg er tung at danse med, men jeg vil gerne kunne lave denne mulighed med 2 logins med tilhørende cookies :o(
Avatar billede thesurfer Nybegynder
10. juni 2004 - 23:31 #116
hmm..
1) er der kun 1 database fil?
2) kan brugerene fra "/" komme ind på "/nyt.." ?
Avatar billede steen_hansen Forsker
10. juni 2004 - 23:35 #117
1) Nej, der er 2 databaser, da jeg gerne vil have delt Access-databaserne så meget op som muligt. Har desværre ikke råd til MS SQL 2000-server :o)

2) Kun hvis man logger ud. Ellers skal man lukke browservinduet, gå ind på siden og logge sig ind det andet sted.
Avatar billede thesurfer Nybegynder
10. juni 2004 - 23:38 #118
Jeg mente, om brugeren kan logge ind begge steder..
Avatar billede steen_hansen Forsker
10. juni 2004 - 23:39 #119
Jeg kan dog ikke komme ind på siden lige nu:

Technical Information (for support personnel)


Background:
The request cannot be processed at this time. The amount of traffic exceeds the Web site's configured capacity.

Tror snart jeg skifter fra StruerNet
Avatar billede steen_hansen Forsker
10. juni 2004 - 23:43 #120
10/06-2004 23:38:18: Ok. Nej, man skal ikke kunne logge ind begge steder på samme brugernavn. Grunden til det er, at der skal foregå ét det ene sted, noget andet det andet sted. Og så skal man have muligheden for at kunne være anonym forstået på den måde, at er man aktiv det ene sted, skal man ikke kunne sættes i forbindelse med andre aktiviteter det andet sted.

Jeg ved ikke om det er nødvendigt at sammenligne profilnavne fra begge databaser. Der er vel ikke noget i vejen for, at der er en steen_hansen begge steder, hvis folk på forhånd ved, at det nødvendigvis ikke er den samme?
Avatar billede thesurfer Nybegynder
10. juni 2004 - 23:49 #121
Når der er 2 database, skal denne linie jo rettes til, inde i IF-blokken:

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Websider\resadmin\mydomain.dk\mydomain.dk\www\fpdb\db.mdb"

Og hvis du ikke har, den samme struktur i databaserne, skal denne linie også rettes til, i IF-blokken:

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & strBruger & "' AND pass='" & strKode & "'")
Avatar billede steen_hansen Forsker
10. juni 2004 - 23:57 #122
Den er jeg med på. Men jeg aner intet om hvordan man navngiver de 2 cookies m.m. Prøv at se 10/06-2004 19:55:19
Avatar billede thesurfer Nybegynder
11. juni 2004 - 00:26 #123
Cookies: http://html.dk/tutorials/asp/lektion13.asp

syntax:
Response.Cookie("navnet på cookien")("specielt identifikationsnøgle") = "værdi"

"navnet på cookien" skal du bruge, i samme område indenfor IF-blokken.
Dvs, blokken med .Cookies("LoginInfo_root"), skal der være .Cookies("LoginInfo_root") hele vejen ned.. og i den anden blok, skal der være .Cookies("LoginInfo_nytwebsted")


Jeg tror ikke at det er tilladt, at bruge "/" i navnet på cookien.. brug derfor ovennævnte eksempel.
Avatar billede steen_hansen Forsker
11. juni 2004 - 00:30 #124
Fedest, jeg kigger på det i morgen/senere i dag. Jeg synes efterhånden jeg er i konstant mangel på søvn, så jeg daffer for i aften :o)
Avatar billede steen_hansen Forsker
14. juni 2004 - 23:25 #125
Nu kan jeg oprette en cookie til Family, som får det rigtige navn osv. Det virker perfekt.

Så skal IT på, og det gør jeg sådan her, men jeg får at vide, at jeg har indtastet forkert brugernavn eller adgangskode:

If InStr(LCase(Request.Servervariables("SCRIPT_NAME")), "/nyt websted") Then
    ' Kode til Family
Else
    ' Kode til IT
End If



Jeg lægger HELE scriptet herunder, håber du får tid til at kigge det igennem :o)




<!-- #include virtual="/includes/_functions.asp" -->

<%
Dim Conn, RS

If Request("mode") = "login" Then

    If InStr(LCase(Request.Servervariables("SCRIPT_NAME")), "/includefamily/") Then

        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Websider\resadmin\mydomain.dk\mydomain.dk\www\fpdb\database1.mdb"

        Dim strBruger, strKode
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("pass"), "'", "")

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & strBruger & "' AND pass='" & strKode & "'")

        If Not (RS.BOF OR RS.EOF) Then

            Dim Dato
            Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time()

            Session("username") = RS("username")
            Session("userID") = RS("userID")
            Conn.Execute "UPDATE profiles SET lastseen='" & Dato & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

            Select Case Request("autologin")
                Case "autologin"
                    Response.Cookies("LoginInfo_IncludeFamily")("username") = Session("username")
                    Response.Cookies("LoginInfo_IncludeFamily").Path = "/includefamily/"
                    Response.Cookies("LoginInfo_IncludeFamily").Expires = Now + 365
                    Response.Cookies("LoginInfo_IncludeFamily")("autologin") = "true"
                    Response.Cookies("LoginInfo_IncludeFamily")("username") = Session("username")
                    Response.Cookies("LoginInfo_IncludeFamily")("pass") = RS("pass")
                Case "remember"
                    Response.Cookies("LoginInfo_IncludeFamily")("username") = Session("username")
                    Response.Cookies("LoginInfo_IncludeFamily").Path = "/includefamily/"
                    Response.Cookies("LoginInfo_IncludeFamily").Expires = Now + 365
                    Response.Cookies("LoginInfo_IncludeFamily")("autologin") = ""
                    Response.Cookies("LoginInfo_IncludeFamily")("username") = Session("username")
                    Response.Cookies("LoginInfo_IncludeFamily")("pass") = RS("pass")
                Case Else
                    Response.Cookies("LoginInfo_IncludeFamily").Expires = Now
                    Response.Cookies("LoginInfo_IncludeFamily")("autologin") = ""
                    Response.Cookies("LoginInfo_IncludeFamily")("username") = ""
                    Response.Cookies("LoginInfo_IncludeFamily")("pass") = ""
            End Select

            Application.Lock
            Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
            Application.UnLock

            If Request.QueryString("redir") = "" Then
                Response.Redirect "/includefamily/minstartside/"
            Else
                Response.Redirect Request.QueryString("redir")
            End If

        Else
            Response.Redirect "/error.asp?msg=Du+har+indtastet+forkert+brugernavn+eller+adgangskode!"
        End If

    Else

        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Websider\resadmin\mydomain.dk\mydomain.dk\www\fpdb\database2.mdb"

        Dim strBrugerIT, strKodeIT
        strBruger = Replace(Request.Form("username"), "'", "")
        strKode = Replace(Request.Form("pass"), "'", "")

        Set RS = Conn.Execute("SELECT userID, username, pass FROM profiles WHERE username = '" & strBrugerIT & "' AND pass='" & strKodeIT & "'")

        If Not (RS.BOF OR RS.EOF) Then

            Dim DatoIT
            DatoIT = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time()

            Session("username") = RS("username")
            Session("userID") = RS("userID")
            Conn.Execute "UPDATE profiles SET lastseen='" & DatoIT & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "', url='" & SQLEncode(CutStr(Request.ServerVariables("HTTP_REFERER"),150)) & "' WHERE username='" & SQLEncode(Session("username")) & "'"

            Select Case Request("autologin")
                Case "autologin"
                    Response.Cookies("LoginInfo_Root")("username") = Session("username")
                    Response.Cookies("LoginInfo_Root").Path = "/"
                    Response.Cookies("LoginInfo_Root").Expires = Now + 365
                    Response.Cookies("LoginInfo_Root")("autologin") = "true"
                    Response.Cookies("LoginInfo_Root")("username") = Session("username")
                    Response.Cookies("LoginInfo_Root")("pass") = RS("pass")
                Case "remember"
                    Response.Cookies("LoginInfo_Root").Path = "/"
                    Response.Cookies("LoginInfo_Root").Expires = Now + 365
                    Response.Cookies("LoginInfo_Root")("autologin") = ""
                    Response.Cookies("LoginInfo_Root")("username") = Session("username")
                    Response.Cookies("LoginInfo_Root")("pass") = RS("pass")
                Case Else
                    Response.Cookies("LoginInfo_Root").Expires = Now
                    Response.Cookies("LoginInfo_Root")("autologin") = ""
                    Response.Cookies("LoginInfo_Root")("username") = ""
                    Response.Cookies("LoginInfo_Root")("pass") = ""
            End Select

            Application.Lock
            Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
            Application.UnLock

            If Request.QueryString("redir") = "" Then
                Response.Redirect "/minstartside/"
            Else
                Response.Redirect Request.QueryString("redir")
            End If

        Else
            Response.Redirect "/error.asp?msg=Du+har+indtastet+forkert+brugernavn+eller+adgangskode!"
        End If

    End If

Else

Session.Abandon
%>

Brugernavn eller kodeord er forkert

<%
End If

If Request.QueryString("mode") = "logout" Or Request.QueryString("mode") = "enduser" Then

    Session.Abandon
    Response.Cookies("LoginInfo").Expires = Now
    Response.Cookies("LoginInfo")("autologin") = ""
    Response.Cookies("LoginInfo")("username") = ""
    Response.Cookies("LoginInfo")("password") = ""

    If Request.QueryString = "enduser" Then
        Response.Redirect "default.asp?msg=Din+profil+er+blevet+slettet."
    Else
        Response.Redirect "/default.asp"
    End If

End If
%>
Avatar billede steen_hansen Forsker
14. juni 2004 - 23:28 #126
Den nederste:

If Request.QueryString("mode") = "logout" Or Request.QueryString("mode") = "enduser" Then
................

- skal jo sådan set også inden for hver If-blok, da man logger ud eller sletter sin profil fra det respektive sted, skal det ikke?
Avatar billede steen_hansen Forsker
15. juni 2004 - 20:23 #127
Jeg har føjet det nederste ind i If-blokkene. Vil du have den nye, eller kan det ovenstående bruges? Der er efterhånden postet meget i dette spørgsmål :o)
Avatar billede steen_hansen Forsker
17. juni 2004 - 23:29 #128
YO, surfer!

Jeg har lavet formularen om til det, den skal se ud som. Hvis du ikke orker mere, er det 10-4, så opretter jeg bare et nyt spørgsmål. Skal jeg det, eller har du nogle gode idéer?
Avatar billede thesurfer Nybegynder
18. juni 2004 - 20:22 #129
Jeg synes at du skulle oprette et nyt spm.. 129 indlæg i 1 spm er vist lidt for meget :-)
Dette spm fylder omkring 200 kb! :-)
Avatar billede steen_hansen Forsker
18. juni 2004 - 21:47 #130
Det vil jeg gøre senere :o) Jeg skal ned at se Enemy of the state. Snakkes :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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging