22. september 2001 - 20:10Der er
154 kommentarer og 1 løsning
Hvem er online?
Jeg har lidt problemer med det her script, det er som om det er ustabilt. Nogen gange virker det, nogen gange ikke. Nor siden reloader vil den ikke virke, jeg får denne fejl: Error Type: (0x80020009) Exception occurred. /dev/whoson.asp, line 174
Browser Type: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
function OldstrToDate(strDateTime) if chkDateFormat(strDateTime) then StrToDate = cdate(\"\" & Mid(strDateTime, 5,2) & \"/\" & Mid(strDateTime, 7,2) & \"/\" & Mid(strDateTime, 1,4) & \" \" & Mid(strDateTime, 9,2) & \":\" & Mid(strDateTime, 11,2) & \":\" & Mid(strDateTime, 13,2) & \"\") else strToDate = \"\" & strForumTimeAdjust end if end function function doublenum(fNum) if fNum > 9 then doublenum = fNum else doublenum = \"0\" & fNum end if end function
function widenum(fNum) if fNum > 9 then widenum = \"\" else widenum = \" \" end if end function
function chked(fYN) if fYN = \"yes\" or fYN = \"1\" or fYN = 1 then \'** chked = \" Checked\" else chked = \"\" end if end function
\' FIND OUT IF THEY ARE A GUEST, OR A USER if session(\"devUserName\") = \"\" then strOnlineUser = \"Guest\" else strOnlineUser = Request.Cookies(\"devUserName\") end if
strSql = \"SELECT ONLINE.UserID,ONLINE.UserIP,ONLINE.LastChecked\" strSql = strSql & \" FROM ONLINE \" strSql = strSql & \" WHERE ONLINE.UserIP=\'\" & strOnlineUserIP & \"\' AND ONLINE.UserID=\'\" & strOnlineUser & \"\'\" set rsWho = my_Conn.Execute (strSql)
if rsWho.eof or rsWho.bof then \' THEY ARE A NEW USER SO INSERT THERE USERNAME
on error resume next Set objRS2 = Server.CreateObject(\"ADODB.Recordset\") strSQL = \"INSERT INTO ONLINE (UserID,UserIP,DateCreated,CheckedIn,LastChecked,M_BROWSE) VALUES (\'\" strSql = strSQL & strOnlineUser & \"\',\'\" & strOnlineUserIP & \"\',\'\" & strOnlineDate & \"\',\'\" & strOnlineCheckInTime & \"\',\'\" & strOnlineCheckInTime & \"\',\'\" & strOnlineLocation & \"\')\" my_Conn.Execute (strSql) if err.number <> 0 then response.write err.number & \"|\" & err.description else \' THEY ARE A ACTIVE USER strSql = \"SELECT ONLINE.UserID,ONLINE.UserIP,ONLINE.LastChecked\" strSql = strSql & \" FROM ONLINE \" strSql = strSql & \" WHERE ONLINE.UserID=\'\" & strOnlineUser & \"\' AND ONLINE.UserIP = \'\" & strOnlineUserIP & \"\'\" set rsLastChecked = my_Conn.Execute (strSql)
\' LETS UPDATE THE TABLE SO IT SHOWS THERE LAST ACTIVE VISIT strSql = \"UPDATE ONLINE SET M_BROWSE=\'\" & strOnlineLocation & \"\' , LastChecked=\'\" & strOnlineCheckInTime & \"\' WHERE UserID=\'\" & strOnlineUser & \"\' AND ONLINE.UserIP=\'\" & strOnlineUserIP & \"\'\" my_Conn.Execute (strSql) end if
\' LETS DELETE ALL INACTIVE USERS SQL = \"DELETE FROM ONLINE WHERE LastChecked < \'\" & strOnlineTimedOut & \"\'\" Sql = Sql & \" OR (ONLINE.UserIP=\'\" & strOnlineUserIP & \"\' AND ONLINE.UserID <> \'\" & strOnlineUser & \"\')\" objConn.Execute SQL
set rsOnline = Server.CreateObject(\"ADODB.Recordset\")
strSqL = \"SELECT count(UserID) AS [onlinecount] \"
Set rsMembers = my_Conn.Execute(strSql) Members = rsMembers(\"Members\") strOnlineMembersCount = rsMembers(\"Members\") \' END WHOS ONLINE SCRIPT %> line 174
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Jeg tror der er et problem med nogle do while eller for i=x to y .. der er 3 online lige nu og den viser 2 af dem. Den sidste fejler. Det kunne tyde på at det er en fejl i et index eller loop.
Prøv at sætte dette ind: if not (rsMember.BOF AND rsMember.EOF) then rsMember.Movefirst Response.Write(\"<a href=\"\"myDeV/users.asp?username=\" & rsMember(\"UserName\") & \"\"\">\") end if
userid ligger i en anden tabel der hedder ONLINE Username ligger i users. Der er en tabel editor med i det site du har fået det er smadder godt til at redigere i databaserne(hvis man kan finde ud af det). Den ligger i mappen dev/cm/te/
\'if not (rsMember.BOF AND rsMember.EOF) then \' rsMember.Movefirst Response.Write(\"<a href=\"\"myDeV/users.asp?username=\" & rs(\"UserID\") & \"\"\">\") \'end if
If strOnlineTotalTime > 60 then \' they must have been online for like an hour or so. strOnlineHours = 0 do until strOnlineTotalTime < 60 strOnlineTotalTime = (strOnlineTotalTime - 60) strOnlineHours = strOnlineHours + 1 loop strOnlineTotalTime = strOnlineHours & \" Hours \" & strOnlineTotalTime & \" Minutes\" Else strOnlineTotalTime = strOnlineTotalTime & \" Minutes\" End If
Stadig ingen navne :-( Når jeg tager det originale du har fået og kører det på min interne maskine er der ingen fejl???. Ligesåsnart jeg kommer \"udefra\" virker det ikke :-(
Jeg undre mig lidt for mit navn forsvat da jeg loggede ind igen??
Jeg prøvede godt nok også at slå Offentli fra og til... ?? jeg ved ikke om det har noget med det at gøre. Hvor opdateres ONLINE tabellen når man logger ind?
function OldstrToDate(strDateTime) if chkDateFormat(strDateTime) then StrToDate = cdate(\"\" & Mid(strDateTime, 5,2) & \"/\" & Mid(strDateTime, 7,2) & \"/\" & Mid(strDateTime, 1,4) & \" \" & Mid(strDateTime, 9,2) & \":\" & Mid(strDateTime, 11,2) & \":\" & Mid(strDateTime, 13,2) & \"\") else strToDate = \"\" & strForumTimeAdjust end if end function function doublenum(fNum) if fNum > 9 then doublenum = fNum else doublenum = \"0\" & fNum end if end function
function widenum(fNum) if fNum > 9 then widenum = \"\" else widenum = \" \" end if end function
function chked(fYN) if fYN = \"yes\" or fYN = \"1\" or fYN = 1 then \'** chked = \" Checked\" else chked = \"\" end if end function
\' LETS GET WHAT PAGE THEY ARE ON
strOnlinePathInfo = Request.ServerVariables(\"Path_Info\") strOnlineQueryString = Request.QueryString pagename = sPageTitle pagename = Replace(pagename,\"ASP DeV WorX - \",\"\") pagename = Replace(pagename,\"ASP DeV WorX -\",\"\") pagename = Replace(pagename,\"ASP DeV WorX \",\"\") pagename = Replace(pagename,\"ASP DeV WorX\",\"\") pagename = Replace(pagename,\"ASP DeV WorX - \",\"\") pagename = Replace(pagename,\"ASP DeV WorX -\",\"\") pagename = Replace(pagename,\"ASP DeV WorX \",\"\") pagename = Replace(pagename,\"ASP DeV WorX\",\"\")
\' FIND OUT IF THEY ARE A GUEST, OR A USER if session(\"devUserName\") = \"\" then strOnlineUser = \"Guest\" else strOnlineUser = Request.Cookies(\"devUserName\") end if
strSql = \"SELECT ONLINE.UserID,ONLINE.UserIP,ONLINE.LastChecked\" strSql = strSql & \" FROM ONLINE \" strSql = strSql & \" WHERE ONLINE.UserIP=\'\" & strOnlineUserIP & \"\' AND ONLINE.UserID=\'\" & strOnlineUser & \"\'\" set rsWho = my_Conn.Execute (strSql)
if rsWho.eof or rsWho.bof then \' THEY ARE A NEW USER SO INSERT THERE USERNAME
on error resume next Set objRS2 = Server.CreateObject(\"ADODB.Recordset\") strSQL = \"INSERT INTO ONLINE (UserID,UserIP,DateCreated,CheckedIn,LastChecked,M_BROWSE) VALUES (\'\" strSql = strSQL & strOnlineUser & \"\',\'\" & strOnlineUserIP & \"\',\'\" & strOnlineDate & \"\',\'\" & strOnlineCheckInTime & \"\',\'\" & strOnlineCheckInTime & \"\',\'\" & strOnlineLocation & \"\')\" my_Conn.Execute (strSql) if err.number <> 0 then response.write err.number & \"|\" & err.description else \' THEY ARE A ACTIVE USER strSql = \"SELECT ONLINE.UserID,ONLINE.UserIP,ONLINE.LastChecked\" strSql = strSql & \" FROM ONLINE \" strSql = strSql & \" WHERE ONLINE.UserID=\'\" & strOnlineUser & \"\' AND ONLINE.UserIP = \'\" & strOnlineUserIP & \"\'\" set rsLastChecked = my_Conn.Execute (strSql)
\' LETS UPDATE THE TABLE SO IT SHOWS THERE LAST ACTIVE VISIT strSql = \"UPDATE ONLINE SET M_BROWSE=\'\" & strOnlineLocation & \"\' , LastChecked=\'\" & strOnlineCheckInTime & \"\' WHERE UserID=\'\" & strOnlineUser & \"\' AND ONLINE.UserIP=\'\" & strOnlineUserIP & \"\'\" my_Conn.Execute (strSql) end if
\' LETS DELETE ALL INACTIVE USERS SQL = \"DELETE FROM ONLINE WHERE LastChecked < \'\" & strOnlineTimedOut & \"\'\" Sql = Sql & \" OR (ONLINE.UserIP=\'\" & strOnlineUserIP & \"\' AND ONLINE.UserID <> \'\" & strOnlineUser & \"\')\" objConn.Execute SQL
set rsOnline = Server.CreateObject(\"ADODB.Recordset\")
strSqL = \"SELECT count(UserID) AS [onlinecount] \"
Det er måske et skud i tågen men prøv at ændre denne if: if session(\"devUserName\") = \"\" then strOnlineUser = \"Guest\" else strOnlineUser = Request.Cookies(\"devUserName\") end if
TIL: if session(\"devUserName\") = \"\" then strOnlineUser = \"Guest\" else strOnlineUser = Request.Cookies(\"devUserName\") if strOnlineUser = \"\" then strOnlineUser = session(\"devUserName\") end if end if
SELECT Last(Users.UserName) AS LastOfUserName, Last(Users.CreateDate) AS LastOfCreateDate, Count(Users.eMail) AS CountOfeMail FROM Users; Sådan ser den ud
Jeg prøvede at lave den om til: SELECT Last(Users.UserName) AS LastOfUserName, Last(Users.CreateDate) AS LastOfCreateDate, Count(Users.eMail) AS CountOfeMail FROM Newest Users; Den gik ikke :-( Den forsvandt?
så nu har jeg lavet en anden der hedder newusers1 med denne query: SELECT Last(Users.UserName) AS LastOfUserName, Last(Users.CreateDate) AS LastOfCreateDate, Count(Users.eMail) AS CountOfeMail FROM Users; og den virker igen
Nej det går ikke. Så skal du havde en tabel som indeholder den sidste bruger. Her ligger alle brugere i tabellen user og man bruger query\'en newuser til at finde den sidst oprettet.
Error: You tried to execute a query that does not include the specified expression \'LastOfUserName\' as part of an aggregate function.
SQL : SELECT top 1 Users.UserName AS LastOfUserName, Users.CreateDate AS LastOfCreateDate, Count(Users.eMail) AS CountOfeMail FROM Users ORDER BY ID DESC;
SELECT top 1 Users.UserName AS LastOfUserName, Users.CreateDate AS LastOfCreateDate, Count(Users.eMail) AS CountOfeMail FROM Users ORDER BY CreateDate DESC;
Error: You tried to execute a query that does not include the specified expression \'LastOfUserName\' as part of an aggregate function.
SQL : SELECT top 1 Users.UserName AS LastOfUserName, Users.CreateDate AS LastOfCreateDate, Count(Users.eMail) AS CountOfeMail FROM Users ORDER BY CreateDate DESC;
Ja det skulle man tror men vi har jo kun lavet om to steder. Det ene hvor man hendter USerID fra en cookie og det andet hvor man laver et link tilen user.asp side. Der må være noget som snyder den last function. Ved du hvordan den virker?
Den minimessanger >> jeg har prøvet at sende Reply til dig men jeg ved ikke om du har fået nogle for vinduet bliver bare hængene og jeg kan trykke flere gange på send uden der tilsyneladne sker noget??
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.