Un ejemplo de producción estadística que puede numerar visitantes y registrar el número de visitas, IP y tiempo. Los amigos que lo necesiten pueden consultarlo.
Hice un sitio web y, por supuesto, como todos, también le puse un contador. Seguí leyendo el contador todos los días, lo que me hizo muy feliz, pero luego pensé, ¿quién diablos vio mi sitio web? ¿Amigos o viejos amigos? No sé cuántas veces han venido, pero todavía quería enumerarlos todos, así que solicité estadísticas gratuitas, pero todavía no estaba satisfecho después de cambiar N números seguidos. Por desgracia, parece que es la única manera. Tener suficiente comida y ropa es hacerlo yo mismo. Todavía espero que los expertos se rían de ello y no pidan consejo.
Tomé la biblioteca ACCESS como ejemplo. De hecho, para usar la biblioteca SQL SERVER, solo necesita cambiar la declaración de la biblioteca de enlaces.
La estructura de la biblioteca es la siguiente.
Nombre del archivo de la biblioteca: CONT.ASP Originalmente era CONT.MDB, pero después de su creación, la extensión se cambió a ASP para evitar que se descargara la biblioteca.
Nombre de la tabla: pestaña
Descripción del tipo de datos del nombre del campo
ID Numerar automáticamente el número del visitante
El texto de IP se utiliza para registrar la IP del visitante.
dat1 fecha y hora se utilizan para registrar la última vez que visitó el visitante
Esta fecha y hora se utilizan para registrar la hora de la primera visita del visitante.
Número CS, número entero utilizado para registrar el número de visitas de visitantes
El programa es muy simple, con solo dos archivos, dispcont.asp se usa para mostrar resultados estadísticos y contpage.asp se usa para información estadística.
Primero veamos las estadísticas de CONTPAGE.ASP. El código es el siguiente:
- <%SetConn=Servidor.CrearObjeto(ADODB.Conexión)
- Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};
- Conn.Openconnstr'***** La declaración anterior se utiliza para conectarse a la biblioteca y cont.asp es el nombre del archivo de la biblioteca.
- keren=request.cookies(keren)'Leer cookies, el nombre de las cookies es: keren, jaja. . La E de Ah Yu es una mala palabra literaria y solo sabe usar pinyin.
- ifkeren=then' determina si cookes está vacío. Si está vacío, entonces debe ser un nuevo amigo; de lo contrario, es un viejo amigo.
- sql=SELECCIONAR*DESDEtabwhereid=-1
- setrs=servidor.createobject(ADODB.Recordset)
- rs.Opensql,conexión,1,3
- rs.addnew'Si es un visitante nuevo, agregue un nuevo registro en la biblioteca.
- rs(cs)=1'registrar el número de visitas como 1
- rs(ip)=request.servervariables(remote_addr)' anote la IP,
- rs(dat)=now'Recordar la fecha y hora actuales,
- rs(dat1)=date'Recuerde la fecha actual y utilícela como la fecha de la primera visita en el futuro.
- Response.cookies(keren)=rs(id)'Escribe una cookie, el contenido es el mismo que el ID.
- Response.cookies(keren).expires=date+365'Establece la fecha de validez de las cookies a partir de ahora, 365 días,
- else'Lo anterior es cómo lidiar con nuevos amigos. ¿Qué debemos hacer con viejos amigos? Míralo a continuación:
- sql=SELECT*FROMtabwhereid=&keren'Vaya a la biblioteca para encontrar el registro de nuestro viejo amigo
- setrs=servidor.createobject(ADODB.Recordset)
- rs.Opensql,conexión,1,3
- rs(cs)=rs(cs)+1'Está bien, lo encontré, suma 1 al número de visitas
- rs(ip)=request.servervariables(remote_addr)'Vea cuál es su IP y anótela.
- rs(dat)=now'Recuerda la hora actual, que es la hora de la última visita,
- Response.cookies(keren)=rs(id)' y luego escribe cookies. No sé si esta oración es redundante, no la he probado.
- Response.cookies(keren).expires=date+365'Establezca el tiempo de vencimiento de las cookies para que no las reconozca después de un año.
- endif
- rs.update' He anotado todo lo que debería anotarse, actualicemos la biblioteca.
- rs.close'Cerrar el objeto del conjunto de registros.
- setconn=nada' libera conn. Sigo pensando que la conexión debe abrirse y cerrarse en cualquier momento. Creo que es muy indeseable ponerla en SESSION. 4%〉
Bien, el registro está hecho. Tiene más de veinte líneas de código y es un programa pequeño muy simple.
Una vez escrito el programa, ¿cómo colocarlo en la página? Es muy simple. Simplemente busque un lugar en la página de inicio y agregue esta línea de código: <img src=contpage.asp width=0 height=0>.
El siguiente paso es mostrar los registros. Hay muchas personas que pueden hacerlo mejor que Ayu, pero todavía quiero mostrar mi fealdad.
Nombre del archivo: dispcont.asp, consulte el código:
- <%
- SetConn=Servidor.CrearObjeto(ADODB.Conexión)
- Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};
- Conn.Openconnstr'***** La declaración anterior se utiliza para conectarse a la biblioteca y cont.asp es el nombre del archivo de la biblioteca.
- pagina3=solicitud(pagina)
- ifpage3=thenpage3=session(contpag)'Número de páginas, página actual
- si página3=entoncespágina3=1
- pa=solicitud(pa)
- ifpa=thenpa=session(contpa)'Número de visualizaciones por página
- ifpa=thenpa=15' muestra 15 elementos por página de forma predeterminada, que se pueden cambiar arbitrariamente
- sesión(contpag)=página3
- sesión(contpa)=pa
- páginas=pa'Mostrar número por página******************El programa anterior se utiliza para implementar la función de paginación
- SQL=SELECCIONAR*DESDEtaborderby-dat,-id
- atenuar
- Setrs=Servidor.CreateObject(ADODB.RecordSet)
- rs.Opensql,conexión,1,1
- csi=0
- cs1=0
- cs100=0
- csdat1=0
- do whilenotrs.eof
- csi=csi+rs(cs)
- ifrs(cs)=1entonces1=cs1+1
- ifrs(cs)〉=100thencs100+1
- si valor de fecha (rs (dat)) = fecha entonces
- csdat1=csdat1+1
- endif
- rs.movenext
- bucle
- ZS=RS.RECORDCOUNT
- '************************************************ * ***8El siguiente programa se utiliza para la visualización de paginación.
- %〉
- <cabeza>
- 〈título〉Excelentes estadísticas informáticas〈/título〉
- </cabeza>
- 〈estilo de cuerpo=tamaño de fuente:9ptbgcolor=#D8EDF8〉
- Hay registros 〈%Response.Writezs%〉 en total. La página actual es 〈%Response.Writepage3%〉. Cada página muestra: [〈ahref=dispcont.asp?pag=〈%=page3%〉&pa=15〉15. ], [<ahref=dispcont. asp?pag=〈%=page3%〉&pa=20〉20] elementos, [〈ahref=dispcont.asp?pag=〈%=page3%〉&pa=30〉30] elementos, [〈ahref=dispcont.asp? página=〈%=página3%〉&pa=40〉40]
- [〈ahref=dispcont.asp〉Actualizar]
- 〈divalign=izquierda〉
- 〈tableborder=0cellpadding=0style=font-size:9pt〉
- 〈tr〉〈td〉Número de página〈/td〉〈%página2=1
- fori=1tozspasospáginas
- si página3=cstr(página2)entonces
- %〉〈td〉[〈%Respuesta.Writepage2%〉]〈/td〉
- <%demás%>
- 〈td〉〈ahref=dispcont.asp?pag=〈%Response.Writepage2%〉〉[〈%Response.Writepage2%〉]〈/td〉
- <%endif
- página2=página2+1
- próximo
- sn=páginas*(página3-1)'Número de registro actual=número mostrado por página*número de páginas-número mostrado por página
- ifsn〉zsthensn=0
- rs.movesn,1
- '************************************El párrafo anterior se utiliza para paginar
- %〉〈/tr〉〈/tabla〉
- 〈/div〉〈tablestyle=font-size:9ptwidth=100%bordercolorlight=#000000border=1bordercolordark=#FFFFFFbgcolor=#A4D1E8cellspacing=0cellpadding=3〉
- 〈tr〉〈td〉Número〈/td〉〈td〉Última página de inicio visitada〈/td〉〈td〉Última IP visitada〈/td〉〈td〉Número de páginas de inicio〈/td〉〈td〉Fecha de primera visita〈/td 〉 〈/tr〉〈%
- fori=1topáginas
- Respuesta.Escribir〈/tr〉
- Respuesta.Escribir〈td〉&rs(ID)&〈/td〉
- Respuesta.Escribir〈td〉&rs(dat)&〈/td〉
- Respuesta.Escribir〈td〉&rs(IP)&〈/td〉
- Respuesta.Escribir〈td〉&rs(CS)&〈/td〉
- Respuesta.Escribir〈td〉&rs(DAT1)&〈/td〉
- Respuesta.Escribir〈/tr〉
- rs.movenext
- ifrs.eofthenexitfor
- próximo
- rs.cerrar
- %〉
- 〈tr〉〈td〉Total〈%=zs%〉〈/td〉〈td〉Hay quienes han visitado más de 100 veces〈%=cs100%〉〈/td〉〈td〉Hay quienes han visitado 1 : 〈%=cs1%〉〈/td〉〈td〉Número total de visitas 〈%=csi%〉〈/td〉〈td〉Visitas de hoy: 〈%=csdat1%〉〈/td〉〈/tr〉
- </mesa>
Lo anterior es una pantalla de paginación completa que se puede copiar y usar (nota: no se considera la situación en la que no hay registro, solo si lo hace usted mismo podrá tener suficiente comida y ropa, así que apúrate y). ¡pruébalo!