Recommandé: ASP Classe A TAG MOTEUR CLASSE TAGENGINE.CLASS Une classe ASP utilisée pour implémenter la fonction TAG, vous pouvez comprendre les fonctions spécifiques si vous pouvez les comprendre. Enregistrement de modification: 1, Ajouter une fonction d'extension, 2006-12-3% '***************************' Nom de la classe: TagEngine 'Nom: Tag Engine' Date: 2006-11-29 'Auteur: Xilou Lengyue' Site Web: www.xilou.net | www.
L'auteur est si méticuleux qu'il résume toutes ces choses en classe. C'est un peu fini. Ces choses peuvent être encapsulées sous forme de processus ou de fonctions. Sub et Fonction sont également encapsulés et il ne faut pas être une classe. Votre bibliothèque de fichiers n'est pas nécessairement toutes les classes, une sous-marine et une fonction sont nécessaires.
Les fonctions implémentées incluent
1. ShowInfo (e_title, c_url, e_num, e_des, e_time, opéra, ip, reurl): afficher le message d'erreur
2. Getip (): obtenir le client IP
3. CheckPost (): Vérifiez s'il s'agit d'une soumission hors site
4. getReferrer (): le dossier d'origine
5. GetCururl (): Obtenez le chemin de la page actuel
6, IsRefresh (S1, S2, Maxtime): Antifresh
Code complet:
<%
'*******************************
'Nom: EventProvider (classe d'événements)
'Date: 2006/11/24
'Auteur: Leng Yue, Xilou
'Site Web: www.cuoxin.com
'Description: Aucun
'Copyright: veuillez vous référer à la source de réimpression, auteur
'*******************************
«Dernière modification: 2006/11/24
'Nombre de modifications: 0
«Instructions de modification: aucun
'Version actuelle: v1.0.0
'*******************************
Class EventProvider
Nom de la table de journal privé Logdbname '
'www.cuoxin.com Home Design Home
'Initialisation
Private Sub class_Initialize ()
logdbName = Loginfo
Sub-Sub
'
Private Sub class_termiate ()
Sub-Sub
'Le titre de l'événement prédéfini, ou un type
Fonction publique Eventtitles (Typepenum)
Talent arrtype (9)
arrype (0) = événement inconnu
Arrtype (1) = Connexion de l'utilisateur illégal
Arrtype (2) = URL passe des paramètres illégaux
Arrtype (3) = Connexion et passer en caractères illégaux
ArrType (4) = Connexion fréquemment, le nombre de connexions dépasse le temps spécifié
arrype (5) = requête des caractères illégaux entrants
arrype (6) = requête fréquente, le nombre de temps de requête dépasse le temps spécifié
ArrType (7) = La page est rafraîchie fréquemment, et le nombre de rafraîchissements dépasse le temps spécifié
Arrtype (8) = données de soumission hors site
arrype (9) = connexion backend
Sinon ISNUMERIER (TYPEPÉNUM) alors EventTitles = Événement inconnu: Fonction de sortie
Si Clng (ABS (Typenum))> Ubound (Arrtype) alors
EventTitles = Événement inconnu: Fonction de sortie
Terminer si
EventTitles = arrype (typène)
Fonction finale
'L'erreur d'affichage du tableau de précommande
Public Sub ShowArrayInfo (InfoItems, Infovalues)
Schem
str = <div style = 'bordure: 2px solide # 4E4E9C; Font-Family: Arial; Couleur: # 800040; largeur: 50%; Font-Size: 9pt'>
str = str & <ul style = 'margin: 20px;'> <b> Informations sur l'événement ASP: </b> & vbcrlf
Si IsArray (InfoItems) et IsArray (Infovalues)
Pour i = lbound (infoItems) à ubound (infoItems)
str = str & <li> <b style = 'couleur: # 4e4e9c'> & infoItems (i) &: </b> & infovalues (i) & vbcrlf
Suivant
Autre
str = str & <li> <b> & infoItems & </b>: & Infovalues & vbcrlf
Terminer si
str = str & </ul> </div> & vbcrlf
Réponse.WRITE STR
Sub-Sub
'Afficher l'erreur
Public sub showinfo (e_title, c_url, e_num, e_des, e_time, opéra, ip, reurl)
Dim infoItems, Infovalus
InfoItems = Array (Titre de l'événement, URL de l'événement, EventNumber, EventDescription, _
Eventtime, opérateur, ip, référence URL_
)
InfovalLues = Array (E_Title, C_URL, E_NUM, E_DES, E_TIME, OPÉRA, IP, REURL)
showArrayInfo InfoItems, Infovalues
Sub-Sub
'Afficher les informations sur le fichier d'origine
Sous-shoprowinfo public (oriclass, orifonction, oripage)
Dim infoItems, Infovalus
InfoItems = Array (classe originale, fonction originale, page originale)
Infovalues = tableau (oriclass, orifonction, oripage)
showArrayInfo InfoItems, Infovalues
Sub-Sub
'Obtenez IP
Fonction publique getip ()
Ip faible
'Si le client utilise un serveur proxy, il doit utiliser la méthode de serverVariables (http_x_forwarded_for)
Ip = request.servervariables (http_x_forwarded_for)
Si ip = ou isNull (ip) ou isEmpty (ip) alors
'Si le client n'utilise pas de proxy, la méthode request.servervariables (Remote_Addr) doit être utilisée
Ip = request.servervariables (redret_addr)
terminer si
getip = ip
Fonction finale
'Vérification de la soumission hors site
Fonction publique CheckPost ()
Dim server_v1, server_v2
CheckPost = false
server_v1 = cstr (request.servervariables (http_referer)))
server_v2 = cstr (request.servervariables (server_name))
Si mid (server_v1,8, Len (server_v2)) = server_v2 alors CheckPost = true
Fonction finale
'Obtenez le chemin
Fonction publique getReferrer ()
getReferer = request.servervariables (http_referrer)
Fonction finale
'Obtenez l'URL actuelle du navigateur
Fonction publique getCururl ()
Si request.servervariables (https) = alors
GetCurrenturl = https: //
Autre
GetCurrenturl = http: //
Terminer si
GetCururl = getCururl & request.servervariables (server_name)
If (request.servervariables (server_port) <> 80) alors getCururl = getCururl &: & request.servervariables (server_port)
GetCururl = getcururl & request.servervariables (URL)
If (request.querystring <>) alors getCururl = getCururl &? & Request.querystring
Fonction finale
'Obtenez la source ou obtenez l'URL actuelle du navigateur, compréhensive les deux premiers
Fonction publique geturl (t)
Si t = 1 alors
getUrl = getCururl ()
Autre
getUrl = getReferrer ()
Terminer si
Fonction finale
'Antifresh
'S1: l'accès est autorisé après plus de S1 secondes
'S2: Si l'heure actuelle et le dernier temps d'accès sont différents de S2 secondes, il sera considéré comme rafraîchi fréquemment
'Maxtime: si le nombre de rafraîchissements fréquents est égal ou supérieur à Maxtime, enregistrez-vous
'Si rafraîchissant fréquemment, IsRefresh = Vrai, sinon c'est faux
Fonction publique IsRefresh (S1, S2, Maxtime)
Nom de cachen dim
Cachename = eventProvider_2006
Si isdate (session (cachename & iSrefreshtime)), alors'access est autorisé après S1 secondes
Si Dadiff (S, Session (Cachename & IsRefreshTime), maintenant ())> S1 alors
Session (Cachename & IsRefreshTime) = Now ()
Session (Cachename & IsRefresh) = false
Terminer si
Terminer si
Si session (cachename & isRefresh) = true alors
iSRefresh = true
Autre
iSRefresh = false
Terminer si
Si isdate (session (Cachename et Refreshstart))
Si DADAIFF (S, Session (Cachename & RefreshStart), maintenant ()) <S2 alors '// Si l'heure actuelle et le dernier temps d'accès sont différents de S2 secondes, il sera considéré comme rafraîchi fréquemment
Session (Cachename & Refresht) = Session (Cachename & Refresht) +1 '// Statistiques Le nombre de rafraîchissements fréquents
Si session (Cachename & Refresht)> = maxtime alors '// Si les temps de rafraîchissement de fréquence sont égaux ou supérieurs à Maxtime, enregistrez
Session (Cachename & IsRefresh) = True
Session (Cachename & IsRefreshTime) = Now ()
Terminer si
Autre
Session (Cachename & Refresht) = 0 '// Sinon, modifiez le nombre d'enregistrements fréquents en 0
Terminer si
Terminer si
Session (Cachename & RefreshStart) = Now () '// Réservez l'heure de cette visite jusqu'à la prochaine visite
Fonction finale
'Écrivez dans le journal de la base de données
Public Sub WriteToDB (E_Title, C_URL, E_NUM, E_DES, E_TIME, OPÉRA, IP, REURL, CONN)
SQL DIM
SQL = INSERT INT & LOGDBNAME & (ETITLE, EURL, ENUM, EDE, ETIME, OPÉRATEUR, IP, REFERERURL) (
sql = sql & '& e_title &', '& c_url &', '& e_num &', '& e_des &', '& e_time &', '& opéra &', '& ip &', '& reurl &')
Conn.execute (SQL)
Sub-Sub
Classe finale
%>
Partager: ASP + AJAX ne révèle pas de rafraîchir pour ajouter des amis En raison de relations de travail, l'une des fonctions est d'augmenter l'autre partie en tant qu'ami. Comme le montre la figure: la méthode utilisée est ajax, et le code approprié est moins cher: un href = javascript: void (0); onClick = add_username ('% = rs (nom d'utilisateur)%'); Ajouter en tant qu'ami / a, la vérification JS utilisée: Script Language = JavaScript Src = ajax.