Un ejemplo de producción estadística que puede numerar visitantes y registrar el número de visitas, IP y tiempo.
Creé un sitio web, www.zydn.net. Por supuesto, como todos los demás, también le puse un contador. Vi que el contador giraba todos los días y me sentí muy feliz. Pero luego pensé, ¿quién leyó? ¿Mi sitio web? ¿Son nuevos amigos o viejos amigos? No sé cuántas veces vinieron y quería enumerarlos todos, así que solicité estadísticas gratuitas, pero probé N números seguidos y todavía no quedé satisfecho. Por desgracia, parece que es la única forma de tenerlos. suficiente comida y ropa para hacerlo yo mismo. Simplemente hazlo. Está seco, el nivel huele mal, espero que los expertos se rían de ello y no pediré consejos.
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
La 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:
<%
Establecer conexión=Servidor.CrearObjeto(ADODB.Conexión)
Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={Controlador de Microsoft Access (*.mdb)};
Conn.Open connstr '*****La declaración anterior se utiliza para conectarse a la biblioteca, cont.asp es el nombre del archivo de la biblioteca.
keren=request.cookies(keren) 'Leer cookies, el nombre de las cookies es: keren, jaja. . El E de Ah Yu es un apestoso literario y solo sabe usar pinyin.
si keren = entonces '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 * DESDE la pestaña donde id=-1
establecer rs=servidor.createobject(ADODB.Recordset)
rs.Abrir sql,conn, 1, 3
rs.addnew 'Si es un visitante nuevo, agregue un nuevo registro en la biblioteca.
rs(cs)=1 'Recordar el número de visitas como 1
rs(ip)=request.servervariables(remote_addr) 'Recuerda la IP,
rs(dat)=now 'Recuerda la fecha y hora actuales,
rs(dat1)=date 'Recuerda la fecha actual y úsala como la fecha de la primera visita posterior.
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 * FROM pestaña donde id=&keren 'Ir a la base de datos para buscar los registros de nuestros viejos amigos
establecer rs=servidor.createobject(ADODB.Recordset)
rs.Abrir sql,conn, 1, 3
rs(cs)=rs(cs)+1 'Está bien, lo encontré, suma 1 al número de visitas
rs(ip)=request.servervariables(remote_addr) 'Mira su IP y anótala.
rs(dat)=now 'Recuerda la hora actual, que es la hora de la última visita,
Response.cookies(keren)=rs(id) 'Escribe cookies nuevamente. 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 cuando haya transcurrido un año.
terminar si
rs.update 'He anotado todo lo que se debe tener en cuenta, actualicemos la biblioteca.
rs.close 'Cierra el objeto del conjunto de registros.
set conn=nada 'Libera conn, sigo pensando que la conexión debe abrirse y cerrarse en cualquier momento. Creo que es muy indeseable ponerla en SESIÓN. 4
%>
Bien, el registro está listo. Hay más de 20 líneas de código. Es un programa pequeño muy simple, pero creo que los expertos deben tener trucos inteligentes. Los amigos que tienen trucos inteligentes no se olvidan de enseñarle a Ayu.
Una vez escrito el programa, ¿cómo lo pongo 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:
<%
Establecer conexión=Servidor.CrearObjeto(ADODB.Conexión)
Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={Controlador de Microsoft Access (*.mdb)};
Conn.Open connstr '*****La declaración anterior se utiliza para conectarse a la biblioteca, cont.asp es el nombre del archivo de la biblioteca.
pagina3=solicitud(pagina)
si página3= entonces página3=sesión(contpag) 'Número de páginas, página actual
si página3= entonces página3=1
pa=solicitud(pa)
si pa= entonces pa=session(contpa) 'Mostrar número por página
if pa= then pa=15 'De forma predeterminada, se muestran 15 elementos en cada página, 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=SELECT * FROM orden de tabulación por -dat,-id
atenuar
Establecer rs=Server.CreateObject(ADODB.RecordSet)
rs.Abrir sql,conn,1,1
csi=0
cs1=0
cs100=0
csdat1=0
hacer mientras no rs.eof
csi=csi+rs(cs)
si rs(cs)=1 entonces cs1=cs1+1
si rs(cs)>=100 entonces cs100+1
si valor de fecha (rs (dat)) = fecha entonces
csdat1=csdat1+1
terminar si
rs.movenext
bucle
ZS=RS.RECORDCOUNT
'************************************************ * ***8El siguiente programa se utiliza para la visualización de paginación.
%>
<cabeza>
<title>Excelentes estadísticas informáticas</title>
</cabeza>
<estilo de cuerpo=tamaño de fuente: 9pt bgcolor=#D8EDF8>
Hay un total de registros <%Response.Write zs%> y la página actual es <%Response.Write page3%>. Cada página muestra: [<a href=dispcont.asp?pag=<%=page3%>. &pa=15>15 ] elementos, [<a href=dispcont.asp?pag=<%=page3%>&pa=20>20] elementos, [<a href=dispcont.asp?pag=<%=page3%>&pa=30>30] elementos, [<a href=dispcont.asp?pag=<%=page3%>&pa=40>40] elementos
[<a href=dispcont.asp>Actualizar]
<div align=izquierda>
<borde de tabla=0 relleno de celda=0 estilo=tamaño de fuente: 9pt>
<tr><td>Número de página</td><%page2=1
para páginas de pasos i=1 a zs
si página3=cstr(página2) entonces
%><td >[<%Respuesta.Escribir página2%>]</td>
<% más %>
<td ><a href=dispcont.asp?pag=<%Response.Write page2%>>[<%Response.Write page2%>]</td>
<% final si
página2=página2+1
próximo
sn=pages*(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
si sn>zs entonces sn=0
rs.move sn,1
'************************************El párrafo anterior se utiliza para paginar
%> </tr></table>
</div> <estilo de tabla=tamaño de fuente: 9pt ancho=100% bordercolorlight=#000000 border=1 bordercolordark=#FFFFFF bgcolor=#A4D1E8 cellpacing=0 cellpadding=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 la primera visita</td > </tr><%
para i=1 a pá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
si rs.eof entonces salga por
próximo
rs.cerrar
%>
<tr><td>Total<%=zs%></td><td>El número de visitas es más de 100 veces<%=cs100%> </td><td>El número de visitas es 1:< % =cs1%></td><td>Número total de visitas<%=csi%></td><td>Visitas hoy: <%=csdat1%></td></tr>
</tabla>
'****************************** Lo anterior es la visualización paginada completa y se puede utilizar después de copiarlo todo. No se considera el caso en que no exista un solo registro.