Un exemple de production statistique permettant de compter les visiteurs et d'enregistrer le nombre de visites, l'IP et la durée
J'ai créé un site Web, www.zydn.net. Bien sûr, comme tout le monde, j'y ai aussi mis un compteur. J'ai vu que le compteur tournait chaque jour, et je me suis senti très heureux. c'est mon site internet ? Sont-ils de nouveaux amis ou d’anciens amis ? Je ne sais pas combien de fois ils sont venus, et je voulais tous les numéroter, alors j'ai demandé des statistiques gratuites, mais j'ai essayé N numéros d'affilée et je n'étais toujours pas satisfait. Hélas, il semble que ce soit le seul moyen d'y parvenir. assez de nourriture et de vêtements, c'est pour le faire moi-même. C'est sec, le niveau pue, j'espère que les experts en riront et je ne demanderai pas de conseil.
J'ai pris la bibliothèque ACCESS comme exemple. En fait, pour utiliser la bibliothèque SQL SERVER, il suffit de modifier l'instruction de la bibliothèque de liens.
La structure de la bibliothèque est la suivante
Nom du fichier de bibliothèque : CONT.ASP Il s'agissait à l'origine de CONT.MDB, mais après sa construction, l'extension a été modifiée en ASP pour empêcher le téléchargement de la bibliothèque.
Nom de la table : onglet
Description du type de données du nom du champ
ID Numéroter automatiquement le numéro du visiteur
Le texte IP est utilisé pour enregistrer l’adresse IP du visiteur
La date et l'heure dat1 sont utilisées pour enregistrer la dernière fois que le visiteur a visité
la date et l'heure sont utilisées pour enregistrer l'heure de la première visite du visiteur
Numéro CS, entier utilisé pour enregistrer le nombre de visites des visiteurs
Le programme est très simple, avec seulement deux fichiers, dispcont.asp est utilisé pour afficher les résultats statistiques et contpage.asp est utilisé pour les informations statistiques.
Regardons d'abord les statistiques de CONTPAGE.ASP. Le code est le suivant :
<%
Définir Conn=Server.CreateObject(ADODB.Connection)
Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={Pilote Microsoft Access (*.mdb)};
Conn.Open connstr '*****L'instruction ci-dessus est utilisée pour se connecter à la bibliothèque, cont.asp est le nom du fichier de la bibliothèque.
keren=request.cookies(keren) 'Lisez les cookies, le nom des cookies est : keren, haha. . Le E d'Ah Yu est un puant littéraire, et il ne sait utiliser que le pinyin.
if keren= then 'Déterminez si les cuisiniers sont vides. S'il est vide, alors ce doit être un nouvel ami, sinon c'est un vieil ami.
sql=SELECT * onglet FROM où id=-1
définir rs=server.createobject(ADODB.Recordset)
rs.Open sql, conn, 1, 3
rs.addnew 'S'il s'agit d'un nouveau visiteur, ajoutez un nouvel enregistrement dans la bibliothèque.
rs(cs)=1 'Mémorisez le nombre de visites comme 1
rs(ip)=request.servervariables(remote_addr) 'Mémorisez l'adresse IP,
rs(dat)=now 'Mémorisez la date et l'heure actuelles,
rs(dat1)=date 'Mémorisez la date actuelle et utilisez-la plus tard comme date de la première visite.
réponse.cookies(keren)=rs(id) 'Écrivez un cookie, le contenu est le même que l'ID.
réponse.cookies(keren).expires=date+365 'Définissez la date de validité des cookies à partir de maintenant, 365 jours,
else « Ce qui précède explique comment gérer les nouveaux amis. Que devrions-nous faire avec de vieux amis ? Regardez ci-dessous :
sql=SELECT * FROM tab où id=&keren 'Aller à la base de données pour retrouver les enregistrements de nos anciens amis
définir rs=server.createobject(ADODB.Recordset)
rs.Open sql, conn, 1, 3
rs(cs)=rs(cs)+1 'D'accord, j'ai trouvé, ajoutez 1 au nombre de visites
rs(ip)=request.servervariables(remote_addr) 'Regardez son adresse IP et notez-la.
rs(dat)=now 'Mémorisez l'heure actuelle, qui est l'heure de la dernière visite,
réponse.cookies(keren)=rs(id) 'Écrivez à nouveau les cookies. Je ne sais pas si cette phrase est redondante, je ne l'ai pas essayée.
réponse.cookies(keren).expires=date+365 'Définissez le délai d'expiration du cookie afin que je ne le reconnaisse pas au bout d'un an.
finir si
rs.update 'J'ai noté tout ce qui devait être noté, mettons à jour la bibliothèque.
rs.close 'Ferme l'objet recordset.
set conn=nothing 'Relâchez conn, je pense toujours que la connexion doit être ouverte et fermée à tout moment. Je pense qu'il n'est pas souhaitable de la mettre en SESSION. 4
%>
D'accord, le disque est prêt. Il y a plus de 20 lignes de code. C'est un petit programme très simple, mais je pense que les experts doivent avoir des astuces astucieuses. Les amis qui ont des astuces astucieuses n'oublient pas d'enseigner à Ayu.
Une fois le programme écrit, comment le mettre sur la page ? C'est très simple, il suffit de trouver une place sur la page d'accueil et d'ajouter cette ligne de code : <img src=contpage.asp width=0 height=0>.
La prochaine étape est de montrer les records. Il y a beaucoup de gens qui peuvent faire mieux qu'Ayu, mais je veux quand même montrer ma laideur.
Nom du fichier : dispcont.asp, veuillez consulter le code :
<%
Définir Conn=Server.CreateObject(ADODB.Connection)
Connstr=DBQ=+server.mappath(cont.asp)+;DefaultDir=;DRIVER={Pilote Microsoft Access (*.mdb)};
Conn.Open connstr '*****L'instruction ci-dessus est utilisée pour se connecter à la bibliothèque, cont.asp est le nom du fichier de la bibliothèque.
page3=demande(pag)
if page3= then page3=session(contpag) 'Nombre de pages, page actuelle
si page3= alors page3=1
pa=demande(pa)
if pa= then pa=session(contpa) 'Afficher le numéro par page
if pa= then pa=15 'Par défaut, 15 éléments sont affichés sur chaque page, qui peuvent être modifiés arbitrairement.
session(contpag)=page3
session(suite)=pa
pages=pa 'Afficher le numéro par page******************Le programme ci-dessus est utilisé pour implémenter la fonction de pagination
SQL=SELECT * FROM ordre de tabulation par -dat,-id
s'assombrit
Définir rs=Server.CreateObject(ADODB.RecordSet)
rs.Open sql, conn, 1,1
CSI=0
cs1=0
cs100=0
csdat1=0
faire sans rs.eof
csi=csi+rs(cs)
si rs(cs)=1 alors cs1=cs1+1
si rs(cs)>=100 alors cs100+1
si datevalue(rs(dat))=date alors
csdat1=csdat1+1
finir si
rs.movenext
boucle
ZS=RS.RECORDCOUNT
'************************************************ * ***8Le programme suivant est utilisé pour l'affichage de la pagination
%>
<tête>
<title>Excellentes statistiques informatiques</title>
</tête>
<body style=font-size : 9pt bgcolor=#D8EDF8>
Il existe un total de <%Response.Write zs%> enregistrements et la page actuelle est <%Response.Write page3%>. Chaque page affiche : [<a href=dispcont.asp?pag=<%=page3%>. &pa=15>15 ] éléments, [<a href=dispcont.asp?pag=<%=page3%>&pa=20>20] éléments, [<a href=dispcont.asp?pag=<%=page3%>&pa=30>30] éléments, [<a href=dispcont.asp?pag=<%=page3%>&pa=40>40] éléments
[<a href=dispcont.asp>Actualiser]
<div align=gauche>
<table border=0 cellpadding=0 style=font-size: 9pt>
<tr><td>Numéro de page</td><%page2=1
pour i=1 à zs pages d'étape
si page3=cstr(page2) alors
%><td >>[<%Response.Write page2%>]</td>
<% autre %>
<td ><a href=dispcont.asp?pag=<%Response.Write page2%>>[<%Response.Write page2%>]</td>
<% fin si
page2=page2+1
suivant
sn=pages*(page3-1) 'Numéro d'enregistrement actuel=numéro affiché par page*nombre de pages-nombre affiché par page
si sn>zs alors sn=0
rs.move sn,1
'************************************Le paragraphe ci-dessus est utilisé pour la pagination
%> </tr></table>
</div> <table style=font-size: 9pt width=100% bordercolorlight=#000000 border=1 bordercolordark=#FFFFFF bgcolor=#A4D1E8 cellpacing=0 cellpadding=3>
<tr><td>Nombre</td><td>Dernière page d'accueil visitée</td><td>Dernière adresse IP visitée</td><td>Nombre de pages d'accueil</td><td>Date de première visite</td > </tr><%
pour i=1 en pages
Réponse.Ecrire </tr>
Réponse.Écrire <td>&rs(ID)&</td>
Réponse.Écrire <td>&rs(dat)&</td>
Réponse.Écrire <td>&rs(IP)&</td>
Réponse.Écrire <td>&rs(CS)&</td>
Réponse.Écrire <td>&rs(DAT1)& </td>
Réponse.Ecrire </tr>
rs.movenext
si rs.eof alors quittez pour
suivant
rs.fermer
%>
<tr><td>Total<%=zs%></td><td>Le nombre de visites est supérieur à 100 fois<%=cs100%> </td><td>Le nombre de visites est de 1 :< % =cs1%></td><td>Nombre total de visites<%=csi%></td><td>Visites aujourd'hui : <%=csdat1%></td></tr>
</table>
'****************************** Ce qui précède est l'affichage paginé complet et peut être utilisé après avoir tout copié. Le cas où il n’y a pas un seul enregistrement n’est pas pris en compte.