20. juli 2002 - 14:57
Der er
76 kommentarer og 1 løsning
Online - Session("bruger") <> ""
Hvordan kan man vise hvem der er on-line i et community - altså hvem, hvis Session("bruger") <> "" (dem er er logget på)?
Annonceindlæg fra Deloitte
Du skal bruge en array i en application variable
Ja? Sagt med andre ord...? :o)
Ok, jeg har faktisk to spørgsmål: 1: Status (On-line/Off-line) 2: Sidst logget på (dato og tidspunkt) Jeg giver 50 point pr. spørgsmål.
Do while Session("bruger") <> "" Response.Write Session("bruger") Loop Ved ikke om det virker.. det er noget jeg lige fandt på !
Sidst logget på gemmer du vel i en DB ?
Hm, idéen var god nok, men det stopper fuldstændigt nu :o) Jeg har rem'et de sætninger ud
Hvad med dit andet spm ? Du gemmer vel hvornår brugeren sidst har logget ind ?
Nej, det har jeg ikke gjort. Hvordan gør jeg så det?
Det er jo aldrig helt til at sige, hvor meget spørgeren ved. Men når du selv lægger ud med session("bruger"), så forestillede jeg mig, at du godt kunne fange ideen i min kommentar. Det er helt med vilje jeg ikke sætter mig ned og laver løsningen for dig, for jeg ser eksperten som et sted, hvor man kan få et skub til selvhjælp, når man har brug for dét. Vil have nogen til at lave noget for sig - gratis eller betalt - så synes jeg man bør melde rent ud, at det er dét man ønsker.
20. juli 2002 - 15:31
#10
Hvis du ikke har gemt det i en DB, så kan du ikke gøre så meget !
20. juli 2002 - 15:37
#11
Jeg kender noget til ASP, men kan betegnes som alt andet end "en haj" til ASP. Jeg har brug for nogle eksempler på noget kode. Så ja - det er hjælp til selvhjælp. Jeg har fanget en masse ved at kigge kode igennem og se hvordan andre håndterer visse opgaver. Men det er ikke ensbetydende med, at jeg kan sætte mig ned og lave en løsning på en konkret opgave. Der er lige så mange metoder at håndtere en given opgave på, som der er udviklere, når vi taler ASP. Det er ihvertfald mit indtryk. Mit spørgsmål drejer sig lige så meget om at lære, for de to funktioner er egentlig ret ligegyldige i et community. De er bare fyld, men kan hjælpe mig til en hel del forståelse. Men derfor håber jeg stadig på noget hjælp. Hvis ikke I har lyst eller tid, eller synes det er for langt ude, er det selvfølgelig helt i orden. Så må jeg bare finde andre veje. Håber ikke jeg er en pestilens. Det er ikke min mening ar være dét.
20. juli 2002 - 15:39
#12
aqq-zeus: Jeg tror godt jeg ved hvordan man håndterer det at lægge dato og tidspunkt for på-logning ned i DB. Leger lidt med det.
20. juli 2002 - 15:42
#13
Jeg kan godt hjælpe dig med at logge det, hvis det er !? Du logger vel også IP ?
20. juli 2002 - 15:44
#14
Nej, jeg logger ikke IP. Men lige nøjagtig DEN funktion kunne være fed senere hen.
20. juli 2002 - 15:54
#15
Mht. Off-line/On-line, er det så ikke noget med If Session("bruger") <> "" then Response.Write "On-line" Else Response.Write "On-line" End if Men hvordan skal det så forbindes til den enkelte profil?
20. juli 2002 - 15:55
#16
Fejl! If Session("bruger") <> "" then Response.Write "On-line" Else Response.Write "Off-line" End if
20. juli 2002 - 15:56
#17
Der skal vel også noget RS("bruger") med ind i det?
20. juli 2002 - 15:59
#18
Ja, der skal noget RS("bruger") med i det! Kan jeg kigge en gang på scriptet så kan jeg se om jeg kan løse det ?
20. juli 2002 - 16:08
#19
Ok, allerførst vil jeg kort lige skitsere opbygningen: Over <html>: Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/fpdb/database.mdb") mode = Request.QueryString("mode") Herefter arbejder jeg i "modes" i det samme dokument: <% If mode = "DetEne" then %> <!--#include virtual="/includes/DetEne.asp <% End if %> <% If mode = "DetAndet" then %> <!--#include virtual="/includes/DetAndet.asp <% End if %> Jeg arbejder altså i det samme dokument, men inkluderer det ene eller det andet, afhængigt af hvilken mode. Hvilken mode afhænger af brugerens valg: <a href="/default.asp?mode=bruger_list" onFocus="this.blur()"><b>Brugerliste</b> Til sidst i dokumentet lukker jeg forbindelsen: <% Conn.Close Set Conn = Nothing %> Koden til det konkrete spørgsmål kommer her:
20. juli 2002 - 16:14
#20
<% 'Hiver alle brugere ud: Set RS = Conn.Execute("SELECT * FROM profiler ORDER BY bruger") %> <span class="o17">Liste over samtlige medlemmer af Community:</span><br><br> <table border="0" width="100%" cellpadding="0" cellspacing="0"> <tr> <td width="110"><span class="tekst11"><b>Brugernavn</b></span></td> <td width="130"><span class="tekst11"><b>E-mail</b></span></td> <td width="110"><span class="tekst11"><b>Status</b></span></td> <td width="110"><span class="tekst11"><b>Sidst logget ind</b></span></td> </tr> <tr> <td colspan="4"> <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000"> <tr> <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td> </tr> </table> </td> </tr> <% Do Until RS.EOF %> <tr> <td height="6" colspan="4"></td> </tr> <tr> <td width="<% Response.Write(TDWidthCell)%>"><a href="/default.asp?mode=profil&ID=<%=RS("brugerID")%>"><%=RS("bruger")%></a></td> <td><a href="mailto:<%=RS("brugerEmail")%>"><%=RS("brugerEmail")%></td> <td></td> <td></td> </tr> <% RS.MoveNext Loop RS.Close Set RS = Nothing %> <tr> <td height="6" colspan="4"></td> </tr> <tr> <td colspan="4"> <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000"> <tr> <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td> </tr> </table> </td> </tr> </table> <!--#include virtual="/includes/bund.asp"-->
20. juli 2002 - 16:22
#21
jeg har ikke så meget tid lige nu.. men jeg kigger på det senere !
20. juli 2002 - 16:23
#22
Det er 10-4 :o)
20. juli 2002 - 16:25
#23
koden er så uoverskuelig her ! kan du ikke sende det dokument som det skal laves i ?!
20. juli 2002 - 16:30
#24
Det ER dokumentet, som det skal laves i. Kan du ikke kopiere det over i f.eks. FP? Jeg har jo RS("bruger"): Set RS = Conn.Execute("SELECT * FROM profiler ORDER BY bruger") - og det skal sættes ind mellem <td width="110"><span class="tekst11"><b>Status</b></span></td> <td width="110"><span class="tekst11"><b>Sidst logget ind</b></span></td> <td>STATUS HER</td> <td>DATO OG TIDSPUNKT HER</td> Kan det ikke lade sig gøre?
20. juli 2002 - 16:38
#25
hmm... prøv følgende! Jeg har sat lidt ind, men jeg ved ikke om det virker! <% 'Hiver alle brugere ud: Set RS = Conn.Execute("SELECT * FROM profiler ORDER BY bruger") %> <span class="o17">Liste over samtlige medlemmer af Community:</span><br><br> <table border="0" width="100%" cellpadding="0" cellspacing="0"> <tr> <td width="110"><span class="tekst11"><b>Brugernavn</b></span></td> <td width="130"><span class="tekst11"><b>E-mail</b></span></td> <td width="110"><span class="tekst11"><b>Status</b></span></td> <td width="110"><span class="tekst11"><b>Sidst logget ind</b></span></td> </tr> <tr> <td colspan="4"> <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000"> <tr> <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td> </tr> </table> </td> </tr> <% Do Until RS.EOF %> <% Dim status If Session("bruger") <> "" Then If RS("bruger") = Session("bruger") Then status = "Online" Else status = "Offline" End If Else status = "Offline" End If %> <tr> <td height="6" colspan="4"></td> </tr> <tr> <td width="<% Response.Write(TDWidthCell)%>"><a href="/default.asp?mode=profil&ID=<%=RS("brugerID")%>"><%=RS("bruger")%></a></td> <td><a href="mailto:<%=RS("brugerEmail")%>"><%=RS("brugerEmail")%></td> <td><%=status%></td> <td></td> </tr> <% RS.MoveNext Loop RS.Close Set RS = Nothing %> <tr> <td height="6" colspan="4"></td> </tr> <tr> <td colspan="4"> <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000"> <tr> <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td> </tr> </table> </td> </tr> </table> <!--#include virtual="/includes/bund.asp"-->
20. juli 2002 - 16:39
#26
en løsning kunne også være at når brugeren loggede ind, så blev der i DB'en i et felt (status) skrevet Online! og når brugeren loggede ud eller lukkede vinduet, så blev der skrevet Offline i DB'en !
20. juli 2002 - 16:44
#27
Det virker perfekt! :o) Så er der det her med tidpunkt. Så skal du vel have login.asp?
20. juli 2002 - 16:47
#28
Det kunne også være en løsning, men jeg synes det ville være fint, hvis vi holdt de to ting adskilt. Eller er der fordele ved at bruge din sidstnævnte metode? Vil det ikke være at komplicere tingene?
20. juli 2002 - 17:16
#29
Virker det første ?!
20. juli 2002 - 17:17
#30
For at få tidspunktet så er du nødt til at indsætte tiden og dato når brugeren logger ind i DB'en !
20. juli 2002 - 17:25
#31
Ja, det første virker, de første 50 point er dine :o) Du skal vel se login.asp?
20. juli 2002 - 17:28
#32
ja, så vi kan lave så den indsætter dato og tid i DB'en ...
20. juli 2002 - 17:39
#33
<% 'Hvis brugeren har submittet login formen If Request.ServerVariables("REQUEST_METHOD") = "POST" then 'Kontrollerer om felterner er udfydlt If Request.Form("bruger") <> "" AND Request.Form("adgangskode") <> "" then SQL = "SELECT * FROM profiler WHERE bruger = '" & Request.Form("bruger") & "'" Set RS = Conn.Execute(SQL) 'Kontrollerer om brugeren eksisterer If RS.EOF or RS.BOF then Response.Write("<span class='tekst11r'><b>PROFILEN EKSISTERER IKKE!</b></span><br>") Else 'Kontrollerer om passwords matcher If RS("brugerkode") = Request.Form("adgangskode") then Session("bruger") = RS("bruger") Response.Redirect("/default.asp") Else Response.Write("<span class='tekst11r'><b>ADGANGSKODEN ER FORKERT!</b></span><br>") End if End if RS.Close set RS = nothing Else Response.Write("<span class='tekst11r'><b>DU HAR IKKE UDFYLDT ALLE FELTERNE!</b></span><br>") End if End if %> <table border="0" cellpadding="0" cellspacing="0" width="100%" span class="tekst11"> <tr> <td> <form method="post" action="/default.asp?mode=login"> <table cellspacing="0" cellpadding="0" class="tekst11"> <tr> <td colspan="3"><span class="o17">Log ind i Community:</span><br> <br> </td> </tr> <tr> <td width="100">Brugernavn:</td> <td width="6"></td> <td><input type="text" name="bruger" size="25" class="input" autocomplete="off"></td> </tr> <tr> <td colspan="3" height="6"></td> </tr> <tr> <td width="100">Adgangskode:</td> <td width="6"></td> <td><input type="password" onPaste="keyHandler();" name="adgangskode" size="25" class="input"></td> </tr> <tr> <td colspan="3" height="6"></td> </tr> <tr> <td></td> <td width="6"></td> <td><input type="submit" value="Log ind" class="input"></td> </tr> </table> </form> </td> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="100%"> <!--#include virtual="/includes/bund.asp"--> </td> </tr> </table>
20. juli 2002 - 18:27
#34
jeg bruger selv følgende: Dim username, password, tid, dato username = Session("brugernavn") password = Session("password") tid = formatdatetime(time,3) dato = formatdatetime(date,2) sql = "insert into log (brugernavn, adgangskode, dato, tid) values('" & username & "','" & password & "','" & dato & "','" & tid & "')" cn.execute sql cn.close set cn = nothing Session("password") = "" Response.Redirect("../default.asp?mode=admin") Der sætter den brugernavn, adgangskode, tid og dato ind... Håber det kan bruges...
20. juli 2002 - 18:29
#35
og s¨træk det ud således : Dim tid If Session("bruger") <> "" Then If RS("bruger") = Session("bruger") Then tid = "Online" Else tid = RS("dato")&RS("tid") End If Else tid = RS("dato")&RS("tid") End If så det ser sådan ud: <% 'Hiver alle brugere ud: Set RS = Conn.Execute("SELECT * FROM profiler ORDER BY bruger") %> <span class="o17">Liste over samtlige medlemmer af Community:</span><br><br> <table border="0" width="100%" cellpadding="0" cellspacing="0"> <tr> <td width="110"><span class="tekst11"><b>Brugernavn</b></span></td> <td width="130"><span class="tekst11"><b>E-mail</b></span></td> <td width="110"><span class="tekst11"><b>Status</b></span></td> <td width="110"><span class="tekst11"><b>Sidst logget ind</b></span></td> </tr> <tr> <td colspan="4"> <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000"> <tr> <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td> </tr> </table> </td> </tr> <% Do Until RS.EOF %> <% Dim status If Session("bruger") <> "" Then If RS("bruger") = Session("bruger") Then status = "Online" Else status = "Offline" End If Else status = "Offline" End If Dim tid If Session("bruger") <> "" Then If RS("bruger") = Session("bruger") Then tid = "Online" Else tid = RS("dato")&RS("tid") End If Else tid = RS("dato")&RS("tid") End If %> <tr> <td height="6" colspan="4"></td> </tr> <tr> <td width="<% Response.Write(TDWidthCell)%>"><a href="/default.asp?mode=profil&ID=<%=RS("brugerID")%>"><%=RS("bruger")%></a></td> <td><a href="mailto:<%=RS("brugerEmail")%>"><%=RS("brugerEmail")%></td> <td><%=status%></td> <td></td> </tr> <% RS.MoveNext Loop RS.Close Set RS = Nothing %> <tr> <td height="6" colspan="4"></td> </tr> <tr> <td colspan="4"> <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000"> <tr> <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td> </tr> </table> </td> </tr> </table> <!--#include virtual="/includes/bund.asp"-->
20. juli 2002 - 18:29
#36
ups... sådan: <% 'Hiver alle brugere ud: Set RS = Conn.Execute("SELECT * FROM profiler ORDER BY bruger") %> <span class="o17">Liste over samtlige medlemmer af Community:</span><br><br> <table border="0" width="100%" cellpadding="0" cellspacing="0"> <tr> <td width="110"><span class="tekst11"><b>Brugernavn</b></span></td> <td width="130"><span class="tekst11"><b>E-mail</b></span></td> <td width="110"><span class="tekst11"><b>Status</b></span></td> <td width="110"><span class="tekst11"><b>Sidst logget ind</b></span></td> </tr> <tr> <td colspan="4"> <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000"> <tr> <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td> </tr> </table> </td> </tr> <% Do Until RS.EOF %> <% Dim status If Session("bruger") <> "" Then If RS("bruger") = Session("bruger") Then status = "Online" Else status = "Offline" End If Else status = "Offline" End If Dim tid If Session("bruger") <> "" Then If RS("bruger") = Session("bruger") Then tid = "Online" Else tid = RS("dato")&RS("tid") End If Else tid = RS("dato")&RS("tid") End If %> <tr> <td height="6" colspan="4"></td> </tr> <tr> <td width="<% Response.Write(TDWidthCell)%>"><a href="/default.asp?mode=profil&ID=<%=RS("brugerID")%>"><%=RS("bruger")%></a></td> <td><a href="mailto:<%=RS("brugerEmail")%>"><%=RS("brugerEmail")%></td> <td><%=status%></td> <td><%=tid%></td> </tr> <% RS.MoveNext Loop RS.Close Set RS = Nothing %> <tr> <td height="6" colspan="4"></td> </tr> <tr> <td colspan="4"> <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000"> <tr> <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td> </tr> </table> </td> </tr> </table> <!--#include virtual="/includes/bund.asp"-->
20. juli 2002 - 18:30
#37
og så lige et svar, hvis det skulle virke :) Jeg lukker ned nu og kommer først online i morgen... Så fortvivl ikke....
20. juli 2002 - 20:49
#38
agg-zeus, on-line scriptet viser, at den enkelte bruger (som har logget ind) er on-line, men ikke hvem der ellers er. Alle andre står til at være off-line? Vi snakkes ved i morgen :o)
21. juli 2002 - 11:34
#40
Jeg har leget lidt med det og har fået det til at virke! Du skal have en global.asa som skal se således ud: <Script Language=VBScript Runat=Server> Sub Session_OnStart End Sub Sub Session_OnEnd If Len(Session("bruger")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("brugernavn") & ",", "") Application.UnLock End If End Sub Sub Application_OnStart Application.Lock Application("OnlineUsers") = "," Application.UnLock End Sub Sub Application_OnEnd End Sub </SCRIPT> Og følgende skal du bare gemme i en fil som bliver included på de sider hvor brugerene skal vises OG på login-siden ' --- procedure til at tilføje en online bruger --- Sub AddOnlineUser() Application.Lock Application("OnlineUsers") = Application("Onlineusers") & Session("brugernavn") & "," Application.UnLock End Sub ' --- funktion som retunerer antallet af online brugere --- Function CountOnLineUsers() Dim arrUsers ' --- lav et array med online brugere --- arrUsers = Split(Application("Onlineusers"), ",") ' --- antallet af online brugere er altid størrelsen på arrayet -1 --- CountOnLineUsers = UBound(arrUsers) - 1 End Function ' --- procedure til at udskrive online brugere --- Sub WriteOnLineUsers() Dim arrUsers Dim n ' --- lav et array med online brugere --- arrUsers = Split(Application("Onlineusers"), ",") ' --- udskriv liste --- For n = 1 To UBound(arrUsers) -1 Response.Write(arrUsers(n) & "<br>") Next End Sub På login siden SKAL du sætte AddOnlineUser ind ! Og hvor onlinebrugere skal stå skal du sætte WriteOnLineUsers ind ! På din logout side skal du huske at skrive Session.Abandon ! Det skulle virke! hvis ikke du kan få det til at funke så skriv...
21. juli 2002 - 17:55
#42
Det er MEGET fornemt, men jeg har lige et spørgsmål: Hvordan skal det her rettes til? Jeg Dim username, password, tid, dato username = user ' Brugernavn bliver logget! password = pass ' Adgangskode bliver logget! tid = formatdatetime(time,3) ' Klokken dato = formatdatetime(date,2) ' Datoen SQL = "INSERT INTO profiler (brugernavn, adgangskode, dato, tid) values('" & username & "','" & password & "','" & dato & "','" & tid & "')" Conn.Execute SQL AddOnlineUser Jeg får denne fejl: Microsoft VBScript compilation error '800a0411' Name redefined /dcu/includes/brugerprofil.asp, line 37 Dim tid ----^
21. juli 2002 - 17:57
#43
Jeg har oprettet to felter ekstra i profiler, som hedder "tid" og "dato". Begge er af datatypen "Dato og klokkeslet".
21. juli 2002 - 18:02
#44
Så prøv at fjerne tid fra Dim... Og hvis den brokker sig over datatyperne i felterne, så ændr dato og tid til tekst! Det kører jeg med, for jeg kan aldrig få det andet til at funke :o) Og ved nærmere eftertanke skal SQL-sætningen nok hedde: SQL = "UPDATE profiler set brugernavn = '"& username &"', adgangskode = '"& password &"', dato = '"& dato &"', tid = '"& tid &"' WHERE brugernavn = '"& username &"' " så den opdaterer feltet hver gang der logges ind ! Hvis den skal virke skal du ændre dato/tid felterne til tekst...
21. juli 2002 - 20:10
#45
Hm, det giver denne fejl: Microsoft VBScript compilation error '800a0401' Expected end of statement /includes/login.asp, line 28 SQL = "UPDATE profiler Set brugernavn = '"& username &"', adgangskode = '"& password &"', dato = '"& dato &"', tid = '"& tid &"' WHERE brugernavn = '"& username &"' " Conn.Execute SQL ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------^
21. juli 2002 - 20:15
#46
Ups, jeg glemte at fjerne tid fra Dim, ser ud til at virke...
21. juli 2002 - 20:20
#47
Når jeg prøver at logge ind, får jeg denne fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e10' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. /includes/login.asp, line 29 line 29: Conn.Execute SQL
21. juli 2002 - 21:12
#48
Mangler der ikke noget mellem profiler Set ?
21. juli 2002 - 22:52
#49
Det er mystisk! Jeg prøvede at rem'e denne: 'Conn.Execute SQL og prøvede at udskrive SQL'en: Response.Write(SQL) Jeg får ikke udskrevet SQL'en, men logger direkte ind uden problemer....?
21. juli 2002 - 23:10
#50
FEDEST! Det virker .... NÆSTEN :o) Under kolonnen "Sidst logget ind" har du sat "Online nu!" istedet for det sidste tidspunkt, brugeren er logget ind. Kan det fixes?
21. juli 2002 - 23:12
#51
Men problemet med, at man kun kan se at man selv er online, er der stadig :o(
22. juli 2002 - 09:11
#52
Jeg har sat den til "Online nu" hvis brugeren er logget ind ! Hmm... Ja, du har ret ! Den viser kun at man selv er online !
22. juli 2002 - 12:21
#53
Ja, man har næsten selv en idé om, hvornår man selv er online eller ej, så det er omsonst :o) Jeg så scriptet (elller næsten et identisk) hos Active Developer, men jeg kan ikke se hvad der skulle være galt?
22. juli 2002 - 12:23
#54
Det er hentet fra ActiveDeveloper... :o) jeg ved ikke helt hvad der er galt ! Jeg har en spm her på Eksperten og på Netcoders om det... Så nu er det bare at vente på at nogen svarer !
22. juli 2002 - 12:24
#55
men virker det andet ?
22. juli 2002 - 12:31
#56
Den tæller fint antal brugere og kan også sagtens udskrive hvem der er online... Men det skal vi jo ikke bruge! Det er her det glipper: If Session("brugernavn") = rs.fields("brugernavn") Then Status = "Online" Else Status = "Offline" End If men hvad der skal stå i stedet for Session("brugernavn") aner jeg ikke ! Jeg har prøvet nogle ting, men uden held !
22. juli 2002 - 14:39
#57
Ja, så vidt jeg kan forstå, er Session("brugernavn") kun oprettet på egen maskine. Hm? Det er pænt af dig ligefrem at oprette spørgsmål :o)
22. juli 2002 - 14:50
#58
Når du logger ind, bliver din Session("brugernavn") aktiv på din egen maskine, men der står vel ingen steder på siden, at du ER logget ind? If Len(Session("brugernavn")) > 0 Then Frit oversat: Hvis ens egen Session("brugernavn") <> "" så .... Det er den jo, når man logger på. Men det er jo kun lokalt på ens egen maskine, at sessionen er aktiv?
22. juli 2002 - 14:51
#59
Glem det sidste, det er noget vrøvl :o) Håber du kan finde ud af noget, jeg leder også.
22. juli 2002 - 21:20
#60
Mht. logning af brugerens IP-adresse, så har jeg fundet frem til flg.: brugerIP = Request.ServerVariables("REMOTE_ADDR") Response.Write brugerIP For at logge den, har jeg prøvet flg.: brugerIP = Request.ServerVariables("REMOTE_ADDR") RS.AddNew RS("brugernavn") = Server.HTMLEncode(Request("brugernavn")) RS("brugerkode") = Server.HTMLEncode(Request("adgangskode")) RS("brugernavnEmail") = Server.HTMLEncode(Request("email")) RS("brugernavnHjemmeside") = Server.HTMLEncode(Request("hjemmeside")) RS("brugernavnTekst") = Server.HTMLEncode(Request("fri_tekst")) RS("brugerIP") = Server.HTMLEncode(Request("brugerIP")) RS.Update Men det giver en fejl: Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver]Error in row /dcu/includes/opret.asp, line 41
22. juli 2002 - 21:31
#61
I stedet for RS("brugerIP") = Server.HTMLEncode(Request("brugerIP")) prøv RS("brugerIP") = Request("brugerIP") Og har du tjekket at feltet i DB'en er tekst ?
22. juli 2002 - 21:53
#63
prøv RS("brugerIP") = brugerIP Det synes jeg ikke giver så meget mening (spm'et!) ...
22. juli 2002 - 21:54
#64
22. juli 2002 - 22:01
#65
Hm, der er vist lange udsigter :o( Det her med IP-logging virker ikke. Nogen forslag? Jeg afsætter 20 point til det spørgsmål. Jeg har dårlige erfaringer med at oprette andre spørgsmål, som er en fortsættelse af andre. Så vi venter lige lidt med at afvikle det. Er det ok? Du HAR rigeligt fortjent pointene allerede nu :o)
22. juli 2002 - 22:23
#66
JEg bruger følgende til at logge IP: sql = "Select * from users Where brugernavn='"& user & "' And pw='" & pass & "';" rs.open sql, cn If Not rs.eof Then Session.contents("crew") = True Session("brugernavn") = rs.fields("brugernavn") Session("password") = rs.fields("pw") Session("crewID") = rs.fields("crewID") Session("userID") = rs.fields("userID") Session("adminlevel") = rs.fields("adminlevel") Session("IP") = Request.ServerVariables("REMOTE_ADDR") Session("dato") = formatdatetime(date,1) End If ovenstående bliver sat hvis brugeren er godkendt! Nedenstående skulle så sætte IP'en ind i databasen.. Det virker hos mig! Sql = "Insert Into logon (Bruger, Dato, Ip) Values('" & Replace(Session("brugernavn"),"'","''") & "', '" & Session("dato") & "', '" & Replace(Session("IP"),"'","''") & "')" Hvad er det for et site du et ved at lave community til ?
22. juli 2002 - 22:39
#67
Hvad er din e-mail adr?
22. juli 2002 - 22:54
#68
Det er meget nemmere at gøre sådan her: RS.AddNew RS("strIP") = Request.ServerVariables("REMOTE_ADDR") RS.Update ... og ikke andet. Så logger den IP-adressen :o)
22. juli 2002 - 23:41
#69
min email er smartdog@tiscali.dk
22. juli 2002 - 23:42
#70
Jeg ved godt at det jeg skrev er indviklet, men det er heller ikke skrevet fornylig... Det er gammel kode :o)
23. juli 2002 - 00:24
#71
Skidt med koden, den er pingeling nu :o) Jeg har noget objRegExp, som formatterer tekst. Alt hvad der er www i, bliver lavet om til et aktivt link, som åbner i et nyt vindue, alt hvad der er et "@" bliver lavet om til an aktiv e-mail adresse, der er e-mailvalidering, linieskift (str = Replace(str, vbcrlf, "<br>")) etc. Men det fungerer ikke med Server.HTMLEncode. Hvad gør Server.HTMLEncode helt nøjagtigt? Hvis jeg fjerner Server.HTMLEncode fra koden: RS.AddNew 'RS("brugernavn") = Server.HTMLEncode(Request("brugernavn")) RS("brugernavn") = Request("brugernavn") - så virker det perfekt. Men der er jo ingen idé i at fjerne det, hvis det på et senere tidspunkt giver mig problemer. Hvad gør det helt nøjagtigt?
23. juli 2002 - 00:32
#72
hmm... det kan jeg ikke helt svare dig på nu... Jeg er ikke helt klar over om du har brug for den... Men hvis det virker uden Server.HTMLEncode, så drop det ;o)
23. juli 2002 - 00:38
#73
Det er planen :o) Du har ikke fundet ud af noget om On-line/Off-line?
23. juli 2002 - 00:48
#74
Okay.. :) Nej, jeg har ikke fået noget svar... Jeg har et indlæg her på Eksperten, på NetCoders og på ActiveDeveloper! :o) Hvad skulle du forresten med min mail ? Og til hvilket site er det community til ?
23. juli 2002 - 00:57
#75
Jeg sender dig en mail nu.
23. juli 2002 - 18:22
#76
Tak for hjælpen, agg-zeus :o) Lægger koden ud til andre senere
23. juli 2002 - 18:48
#77
Vi er ikke færdige ;o)
Kurser inden for grundlæggende programmering