Avatar billede sneumann Novice
03. juni 2004 - 18:05 Der er 10 kommentarer og
2 løsninger

Logfil i ASP

På min hjemmeside, har jeg et punkt hvor man skal være oprettet som bruger, for at komme ind og læse det.

Jeg vil gerne i en logfil kunne se, hvem der har været logget ind, og hvornår.

Jeg har en Access database, med brugernavne og adgangskoder. Jeg har fra min udbyder hvor min hjemmeside er, fået flg. kode:

Dim Fobj
  Set Fobj = Server.CreateObject("Scripting.FileSystemObject")
  Dim Fstat
  Set Fstat = Fobj.OpenTextFile(server.mappath("logon.log"), 8)
  Fstat.WriteLine(now & " Name:[" & sname")
  Fstat.Close
  Set Fstat = Nothing
  Set Fobj = Nothing

De har fortalt mig, at koden skal være i min login.asp fil men jeg ved bare ikke hvor i koden, og jeg kan ikke forstå koden, for hvor laver den logfilen?, hvordan jeg skulle kunne læse i logfilen? og hvad hedder filen?.

Håber nogen her kan hjælpe mig.
Avatar billede vbcoder Nybegynder
03. juni 2004 - 18:23 #1
i roden af dit website med navnet logon.log
Avatar billede vbcoder Nybegynder
03. juni 2004 - 18:26 #2
om igen

koden lægges i starten af din login.asp som den første kode efter at brugeren er godkendt.

filen bliver dannet i roden af den mappen hvor din login.asp befinder sig

du kan åbne filen med notepad

filen heder logon.log
Avatar billede sneumann Novice
03. juni 2004 - 18:32 #3
Tak for hurtigt svar.

Da jeg ikke er helt stiv i ASP, kunne jeg så ikke få din mail adr., så jeg kunne maile login.asp til dig, og du så ville sætte koden ind det rigtige sted?

Håber at høre fra dig igen vbcoder.
Avatar billede vbcoder Nybegynder
04. juni 2004 - 07:33 #4
du kan bare lægge koden her
Avatar billede sneumann Novice
04. juni 2004 - 16:54 #5
OK her er koden fra login.asp

Håber du kan hjælpe mig, med at få koden ind det rigtige sted.

<html>
<head>
<title>Sneumann - Login/Logout Script</title>
</head>

<body bgcolor="#8080FF" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">

<font face="verdana" size="2">

<%
'Her definere vi at LoginMessage skal hente sin tekst fra querystringen (adresselinjen)
LoginMessage = Request.querystring("LoginMessage")

'Og hvis altså loginmessage er større eller mindre end ingenting, så skal den skrive det.
if LoginMessage <> "" Then
    Response.Write(LoginMessage&"<br>")
end if
%>   

<%
'Her starter vi med at spørge om vores session loginOk er større eller mindre end True (altså ingenting), og hvis ja,
' så skal den vise det som står på de efterfølgende linjer...
if Session("LoginOK") <> "True" Then
%>
<form name="LoginForm" action="Login.asp?login=in" method="post">
<b>Indtast brugernavn : </b><br>
<input type="text" name="feltBrugernavn" size="30">
<br><br>

<b>Indtast adgangskode : </b><br>
<input type="password" name="feltAdgangskode" size="30">
<br><br>

<input type="submit" name="login" value="Login"> <input type="button" value="Luk" onclick="self.close();">
</form>
<%
'Hvis session loginOK er true, så skal den skrive det på de efterfølgende linjer...
else
%>
<p><b>Velkommen</b></p>

Her har du mulighed for at logge ud.
<input type="button" onclick="location.href='Login.asp?login=out'" name="logout" value="Logout">


<%
'Så slutter vi med at spørge om noget som helst :P
end if
%>

</font>

</body>
</html>
Avatar billede vbcoder Nybegynder
04. juni 2004 - 19:10 #6
Tja - det er jo ikke meget ? og langt fra nok i forhold til dit spørgsmål som  går på en logfil over bruger som bliver logget ind.

Du skal starte fra bunden ;-) med en database og validering af de indtastede værdier i brugernavn og adgangskode

der findes temmelig mange eksempler her på eksperten - prøv at søge på login
Avatar billede sneumann Novice
05. juni 2004 - 17:34 #7
Det kan jeg så ikke forstå, for det er min login.asp fil.

Men det hele er her hvis det kan hjælpe mere:

<%
'Her siger jeg: Hvis der er noget data i en post-form og login-formen ikke er tom, så skal den begynde at indlæse dette.
if Request.ServerVariables("REQUEST_METHOD") = "POST" AND Request.form("login") <> "" then

'Her åbner jeg database forbindelsen (husk at erstatte ******** med din adgangskode til databasen, under PWD=)
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database/database.mdb") & "; PWD=appelsin"
Conn.Open DSN

'Her trimmer og erstatter vores qourt med &#39; og '' sammentidig med at form-dataerne bliver lagt i variabler.
Dim strBrugernavn, strAdgangskode
strBrugernavn = Trim(Replace(request.form("feltBrugernavn"),"'","&#39;" ))
strAdgangskode = Trim(Replace(request.form("feltAdgangskode"),"'","''" ))

'På de følgende to linjer (under kommentaren) bliver rs defineret, og vi spørger om der er et brugernavn og en
'adgangskode passer sammen med noget af vores data i databasen.
SQL = "SELECT * FROM [Brugere] where Brugernavn = '" & strBrugernavn & "' AND Adgangskode = '" & strAdgangskode & "'"
Set rs = Conn.Execute(SQL)

'Her spørger vi; Hvis brugernavn og adgangskoden ikke findes i databasen, så...
if rs.eof then

    'Bliver brugeren sendt tilbage, med en lille besked i røven (LoginMessage)
    response.redirect "Login.asp?LoginMessage=Brugernavn eller adgangskode var forkert"

'Her siger vi så; Ellers hvis ikke databasen er tom for det brugernavn og den adgangskode, så..
elseif Not (rs.BOF Or rs.EOF) Then
   
    'Lav en session der hedder Login, og den skal være True.
    Session("LoginOK") = "True"
    'Her sætter vi en tid på til hvornår vores session skal udløbe. Her er den sat til 10 minutter
    Session.Timeout = 10
    'Og så skal du brugeren lige sendes til vagtplan/hjalper.asp
    response.redirect "vagtplan/hjalper.asp"
   
'så afslutter vi lige vores bruger pjat ;-)
end if

'Og lukker databasen...
conn.close
set conn = nothing

'Her afslutter vi lige at vi har spurgt om der er blevet sendt et login forsøg (3. linje)
end if

'Så er vi klar til at spørge om der er blevet trykket på vores >log ud< knap...
if Request("login") = "out" then

'Hvis der er blevet trykket på knappen, så bliver ens session lukket.
Session.Abandon
'Og man bliver sendt videre til login siden, med en kommentar i røven...
response.redirect "Login.asp?LoginMessage=Du er nu logget ud!"

'Så slutter vi spørgsmålet om, om der blev trykket på logud knappen.
end if
%>
<!--
Så starter vi på vores htmlkode
-->
<html>
<head>
<title>Sneumann - Login/Logout Script</title>
</head>

<body bgcolor="#8080FF" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">

<font face="verdana" size="2">

<%
'Her definere vi at LoginMessage skal hente sin tekst fra querystringen (adresselinjen)
LoginMessage = Request.querystring("LoginMessage")

'Og hvis altså loginmessage er større eller mindre end ingenting, så skal den skrive det.
if LoginMessage <> "" Then
    Response.Write(LoginMessage&"<br>")
end if
%>   

<%
'Her starter vi med at spørge om vores session loginOk er større eller mindre end True (altså ingenting), og hvis ja,
' så skal den vise det som står på de efterfølgende linjer...
if Session("LoginOK") <> "True" Then
%>
<form name="LoginForm" action="Login.asp?login=in" method="post">
<b>Indtast brugernavn : </b><br>
<input type="text" name="feltBrugernavn" size="30">
<br><br>

<b>Indtast adgangskode : </b><br>
<input type="password" name="feltAdgangskode" size="30">
<br><br>

<input type="submit" name="login" value="Login"> <input type="button" value="Luk" onclick="self.close();">
</form>
<%
'Hvis session loginOK er true, så skal den skrive det på de efterfølgende linjer...
else
%>
<p><b>Velkommen</b></p>

Her har du mulighed for at logge ud.
<input type="button" onclick="location.href='Login.asp?login=out'" name="logout" value="Logout">


<%
'Så slutter vi med at spørge om noget som helst :P
end if
%>

</font>

</body>
</html>

Min udbyder siger jo, at for at lave en logfil, skal flg. i min login.asp

Dim Fobj
  Set Fobj = Server.CreateObject("Scripting.FileSystemObject")
  Dim Fstat
  Set Fstat = Fobj.OpenTextFile(server.mappath("logon.log"), 8)
  Fstat.WriteLine(now & " Name:[" & sname")
  Fstat.Close
  Set Fstat = Nothing
  Set Fobj = Nothing

men jeg ved bare IKKE hvor!!!

Jeg har jo en Access database, med brugernavn og adgangskode.

Håber du kan hjælpe.
Avatar billede vbcoder Nybegynder
06. juni 2004 - 08:44 #8
<%
'********************************************************
'oprettet en funktion - det er nemmest
'kald den når du vil skrive i loggen
'1 paramter - navnet på brugeren
function writeLog(sname)
Dim Fobj
  Set Fobj = Server.CreateObject("Scripting.FileSystemObject")
  Dim Fstat
  Set Fstat = Fobj.OpenTextFile(server.mappath("logon.log"), 8)
  Fstat.WriteLine(now & " Name:[" & sname")
  Fstat.Close
  Set Fstat = Nothing
  Set Fobj = Nothing

end function
'*********************************************************

'Her siger jeg: Hvis der er noget data i en post-form og login-formen ikke er tom, så skal den begynde at indlæse dette.
if Request.ServerVariables("REQUEST_METHOD") = "POST" AND Request.form("login") <> "" then

'Her åbner jeg database forbindelsen (husk at erstatte ******** med din adgangskode til databasen, under PWD=)
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database/database.mdb") & "; PWD=appelsin"
Conn.Open DSN

'Her trimmer og erstatter vores qourt med &#39; og '' sammentidig med at form-dataerne bliver lagt i variabler.
Dim strBrugernavn, strAdgangskode
strBrugernavn = Trim(Replace(request.form("feltBrugernavn"),"'","&#39;" ))
strAdgangskode = Trim(Replace(request.form("feltAdgangskode"),"'","''" ))

'På de følgende to linjer (under kommentaren) bliver rs defineret, og vi spørger om der er et brugernavn og en
'adgangskode passer sammen med noget af vores data i databasen.
SQL = "SELECT * FROM [Brugere] where Brugernavn = '" & strBrugernavn & "' AND Adgangskode = '" & strAdgangskode & "'"
Set rs = Conn.Execute(SQL)

'Her spørger vi; Hvis brugernavn og adgangskoden ikke findes i databasen, så...
if rs.eof then

    'Bliver brugeren sendt tilbage, med en lille besked i røven (LoginMessage)
    response.redirect "Login.asp?LoginMessage=Brugernavn eller adgangskode var forkert"

'Her siger vi så; Ellers hvis ikke databasen er tom for det brugernavn og den adgangskode, så..
elseif Not (rs.BOF Or rs.EOF) Then
   
    'Lav en session der hedder Login, og den skal være True.
    Session("LoginOK") = "True"
    'Her sætter vi en tid på til hvornår vores session skal udløbe. Her er den sat til 10 minutter
    Session.Timeout = 10
    'Og så skal du brugeren lige sendes til vagtplan/hjalper.asp
    response.redirect "vagtplan/hjalper.asp"
   
'***********************************************
    'skriv logfil
    writeLog(strBrugernavn)
'***********************************************

'så afslutter vi lige vores bruger pjat ;-)
end if

'Og lukker databasen...
conn.close
set conn = nothing

'Her afslutter vi lige at vi har spurgt om der er blevet sendt et login forsøg (3. linje)
end if

'Så er vi klar til at spørge om der er blevet trykket på vores >log ud< knap...
if Request("login") = "out" then

'Hvis der er blevet trykket på knappen, så bliver ens session lukket.
Session.Abandon
'Og man bliver sendt videre til login siden, med en kommentar i røven...
response.redirect "Login.asp?LoginMessage=Du er nu logget ud!"

'Så slutter vi spørgsmålet om, om der blev trykket på logud knappen.
end if
%>
<!--
Så starter vi på vores htmlkode
-->
<html>
<head>
<title>Sneumann - Login/Logout Script</title>
</head>

<body bgcolor="#8080FF" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">

<font face="verdana" size="2">

<%
'Her definere vi at LoginMessage skal hente sin tekst fra querystringen (adresselinjen)
LoginMessage = Request.querystring("LoginMessage")

'Og hvis altså loginmessage er større eller mindre end ingenting, så skal den skrive det.
if LoginMessage <> "" Then
    Response.Write(LoginMessage&"<br>")
end if
%>   

<%
'Her starter vi med at spørge om vores session loginOk er større eller mindre end True (altså ingenting), og hvis ja,
' så skal den vise det som står på de efterfølgende linjer...
if Session("LoginOK") <> "True" Then
%>
<form name="LoginForm" action="Login.asp?login=in" method="post">
<b>Indtast brugernavn : </b><br>
<input type="text" name="feltBrugernavn" size="30">
<br><br>

<b>Indtast adgangskode : </b><br>
<input type="password" name="feltAdgangskode" size="30">
<br><br>

<input type="submit" name="login" value="Login"> <input type="button" value="Luk" onclick="self.close();">
</form>
<%
'Hvis session loginOK er true, så skal den skrive det på de efterfølgende linjer...
else
%>
<p><b>Velkommen</b></p>

Her har du mulighed for at logge ud.
<input type="button" onclick="location.href='Login.asp?login=out'" name="logout" value="Logout">


<%
'Så slutter vi med at spørge om noget som helst :P
end if
%>

</font>

</body>
</html>
Avatar billede vbcoder Nybegynder
06. juni 2004 - 09:22 #9
den skal være sådan istedet

<%
'********************************************************
'oprettet en funktion - det er nemmest
'kald den når du vil skrive i loggen
'1 paramter - navnet på brugeren
function writeLog(sname)
Dim Fobj
  Set Fobj = Server.CreateObject("Scripting.FileSystemObject")
  Dim Fstat
  Set Fstat = Fobj.OpenTextFile(server.mappath("logon.log"), 8)
  Fstat.WriteLine(now & " Name:[" & sname")
  Fstat.Close
  Set Fstat = Nothing
  Set Fobj = Nothing

end function
'*********************************************************

'Her siger jeg: Hvis der er noget data i en post-form og login-formen ikke er tom, så skal den begynde at indlæse dette.
if Request.ServerVariables("REQUEST_METHOD") = "POST" AND Request.form("login") <> "" then

'Her åbner jeg database forbindelsen (husk at erstatte ******** med din adgangskode til databasen, under PWD=)
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database/database.mdb") & "; PWD=appelsin"
Conn.Open DSN

'Her trimmer og erstatter vores qourt med &#39; og '' sammentidig med at form-dataerne bliver lagt i variabler.
Dim strBrugernavn, strAdgangskode
strBrugernavn = Trim(Replace(request.form("feltBrugernavn"),"'","&#39;" ))
strAdgangskode = Trim(Replace(request.form("feltAdgangskode"),"'","''" ))

'På de følgende to linjer (under kommentaren) bliver rs defineret, og vi spørger om der er et brugernavn og en
'adgangskode passer sammen med noget af vores data i databasen.
SQL = "SELECT * FROM [Brugere] where Brugernavn = '" & strBrugernavn & "' AND Adgangskode = '" & strAdgangskode & "'"
Set rs = Conn.Execute(SQL)

'Her spørger vi; Hvis brugernavn og adgangskoden ikke findes i databasen, så...
if rs.eof then

    'Bliver brugeren sendt tilbage, med en lille besked i røven (LoginMessage)
    response.redirect "Login.asp?LoginMessage=Brugernavn eller adgangskode var forkert"

'Her siger vi så; Ellers hvis ikke databasen er tom for det brugernavn og den adgangskode, så..
elseif Not (rs.BOF Or rs.EOF) Then
   
    'Lav en session der hedder Login, og den skal være True.
    Session("LoginOK") = "True"
    'Her sætter vi en tid på til hvornår vores session skal udløbe. Her er den sat til 10 minutter
    Session.Timeout = 10

'***********************************************
    'skriv logfil
    'inden brugeren sendes til den næste side
    writeLog(strBrugernavn)
'***********************************************


    'Og så skal du brugeren lige sendes til vagtplan/hjalper.asp
    response.redirect "vagtplan/hjalper.asp"
   

'så afslutter vi lige vores bruger pjat ;-)
end if

'Og lukker databasen...
conn.close
set conn = nothing

'Her afslutter vi lige at vi har spurgt om der er blevet sendt et login forsøg (3. linje)
end if

'Så er vi klar til at spørge om der er blevet trykket på vores >log ud< knap...
if Request("login") = "out" then

'Hvis der er blevet trykket på knappen, så bliver ens session lukket.
Session.Abandon
'Og man bliver sendt videre til login siden, med en kommentar i røven...
response.redirect "Login.asp?LoginMessage=Du er nu logget ud!"

'Så slutter vi spørgsmålet om, om der blev trykket på logud knappen.
end if
%>
<!--
Så starter vi på vores htmlkode
-->
<html>
<head>
<title>Sneumann - Login/Logout Script</title>
</head>

<body bgcolor="#8080FF" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">

<font face="verdana" size="2">

<%
'Her definere vi at LoginMessage skal hente sin tekst fra querystringen (adresselinjen)
LoginMessage = Request.querystring("LoginMessage")

'Og hvis altså loginmessage er større eller mindre end ingenting, så skal den skrive det.
if LoginMessage <> "" Then
    Response.Write(LoginMessage&"<br>")
end if
%>   

<%
'Her starter vi med at spørge om vores session loginOk er større eller mindre end True (altså ingenting), og hvis ja,
' så skal den vise det som står på de efterfølgende linjer...
if Session("LoginOK") <> "True" Then
%>
<form name="LoginForm" action="Login.asp?login=in" method="post">
<b>Indtast brugernavn : </b><br>
<input type="text" name="feltBrugernavn" size="30">
<br><br>

<b>Indtast adgangskode : </b><br>
<input type="password" name="feltAdgangskode" size="30">
<br><br>

<input type="submit" name="login" value="Login"> <input type="button" value="Luk" onclick="self.close();">
</form>
<%
'Hvis session loginOK er true, så skal den skrive det på de efterfølgende linjer...
else
%>
<p><b>Velkommen</b></p>

Her har du mulighed for at logge ud.
<input type="button" onclick="location.href='Login.asp?login=out'" name="logout" value="Logout">


<%
'Så slutter vi med at spørge om noget som helst :P
end if
%>

</font>

</body>
</html>
Avatar billede sneumann Novice
06. juni 2004 - 16:16 #10
Skulle jeg nu bare kunne kopiere den sidste kode ind i min login.asp og så skulle det hele virke?, med logfil osv.?
Avatar billede vbcoder Nybegynder
06. juni 2004 - 20:33 #11
tja - det burde det - det eneste der kan generere en fejl er manglende skriverettigheder og det er din udbyders afdeling ;o)

Men da det iflg. dit spm er udbyder der har givet dig koden så burde spille
Avatar billede sneumann Novice
07. juni 2004 - 18:53 #12
Jeg kan ikke få det til at virke, når jeg kopiere det ind i min login.asp fil kommer den ud, og siger siden kan ikke vises.

Godt nok fortalte min udbyder mig, at koden skulle være i login.asp filen, men jeg har også en fil, som hedder checklogin.asp som indeholder flg.:

<%
Response.Buffer    = true
Response.Expires = 0

If Session("LoginOK") = "" Then
    Response.redirect("login.asp")
    Response.end
End If
%>

Tror du koden skal være der, i stedet for i login.asp?

Håber at høre fra dig igen.
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 går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819: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