======Principe de production======
La méthode consiste à ajouter les informations de l'utilisateur dans la base de données lorsque l'utilisateur accède à la page Web. Lors de l'ajout, vérifiez s'il existe un enregistrement en ligne de l'utilisateur dans la base de données. alors, mettez-le à jour. Si l'enregistrement n'existe pas, ajoutez-le à la base de données.
Et supprimez les enregistrements en ligne qui n'ont aucune activité dans le délai spécifié (C'est probablement ça !)
======Conception de la table de données========
Créez une nouvelle table de données nommée "En ligne".
Supprimez le champ de numéro automatique et créez les champs suivants. Nom du champ : ID Type : Numéro Nom du champ : GUESTNAME Type : Nom du champ texte : STATS Type : Nom du champ texte : VISITIME Type : Date/Heure Nom du champ : OUTIME Type : Date/Heure.
=======================La partie suivante du code source est à titre de référence. Si elle n'est pas bien écrite, veuillez me corriger ======. ====== ===========
<%
sub activeonline()
dim ip
'////Supprimer les enregistrements en ligne inactifs dans les 180 secondes.
sql="Supprimer FROM en ligne WHERE DATEDIFF('s',outtime,now())>180"
Conn.Execute sql
if stats="" then'//Si la valeur de stats est vide, elle s'affiche comme
stats="Vous ne savez pas ce que vous faites ?"
autre
statistiques=statistiques
end if
IP=replace(Request.ServerVariables("REMOTE_HOST"),".","")'////Obtenez l'IP et supprimez le "." dans
l'IP '////Vérifiez si cela existe déjà dans l'enregistrement IP de la table en ligne
sql="sélectionnez l'identifiant en ligne où id='"&ip&"'"
set rs=conn.execute(sql)
if rs.eof ou rs.bof then'////S'il n'y a pas d'enregistrement IP, ajoutez un enregistrement en ligne
sql="insérer dans online(id,guestname,stats,visitime,outtime ) valeurs ("&ip&",'Guest','"&stats&"',Now(),Now())"
else'////Si l'enregistrement IP existe déjà dans la table En ligne, mettre à jour l'enregistrement
sql="update ensemble en ligne outime =Now(),stats='"&stats&"',guestname='guest' où id='"&ip&"'"
end if
conn.execute(sql)
fin sous
%>
=========================Exemples======================== ====
Modifiez le code ci-dessus et enregistrez-le sous "Online.asp" et intégrez-le à la fin de chaque page Web
<%
dim conn
dim constr
en cas d'erreur, reprendre ensuite
connstr="DBQ="+server.mappath("nom de la base de données.mdb")+";DefaultDir=;DRIVER={Pilote Microsoft Access (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
'Enregistrer sous le fichier conn.asp
%>
<!--#INCLUDE FILE="conn.asp" -->
<%
dim stats
stats="Afficher en ligne"
appeler activeonline()
Définir rs = Server.CreateObject("ADODB.Recordset")
sql="SELECT Id,GuestName,Stats,Visitime,Outtime FROM Online ORDER BY Visitime Desc"
rs.open sql,conn,1,3
total=rs.RecordCount
%>
<table border="1" cellpadding="2" cellpacing="0" style="border-collapse:effondrement" bordercolor="#111111" width="100%" height="53">
<tr>
<td width="20%" height="16" align="center">Pseudo</td>
<td width="20%" height="16" align="center">Action</td>
<td width="20%" height="16" align="center">Visite</td>
<td width="20%" height="16" align="center">Dernier événement</td>
</tr>
<%do while not rs.eof%>
<tr>
<td width="20%" height="28" align="center"><%=rs(1)%></td>
<td width="20%" height="28" align="center"><%=rs(2)%></td>
<td width="20%" height="28" align="center"><%=rs(3)%></td>
<td width="20%" height="28" align="center"><%=rs(4)%></td>
</tr>
<%
rs.movenext
boucle
%>
</table>
Nombre de personnes en ligne :<%=total%>
<%
rs.fermer
set rs=rien
%><!--#INCLUDE FILE="Online.asp" -->
Ce n'est pas bien écrit, c'est ridicule. Si vous avez une meilleure méthode, soumettez-la. Apprenons les uns des autres !