Recomendado: ASP Classe A Classe de mecanismo de tag Tagengine.class Uma classe ASP usada para implementar a função de tag, você pode entender as funções específicas se puder entendê -las. Registro de modificação: 1, Adicionar Função de Extensão, 2006-12-3 % '************************* www.
O autor é tão meticuloso que ele encapsula todas essas coisas nas classes. Está um pouco acabado. Essas coisas podem ser encapsuladas como processos ou funções. Sub e função também são encapsulados e não precisa ser uma classe. Sua biblioteca de arquivos não é necessariamente toda classe, alguma sub -função e função são necessárias.
As funções implementadas incluem
1. ShowInfo (e_title, c_url, e_num, e_des, e_time, ópera, ip, reurl): Exibir mensagem de erro
2. Getip (): obtenha o IP do cliente
3. Check Post (): Verifique se é um envio fora do local
4. GetReferer (): o registro de origem
5. getCururl (): Obtenha o caminho da página atual
6, IsRefresh (S1, S2, Maxtimes): Anti-Refresh
Código completo:
<%
'***********************************
'Nome: EventProvider (classe de evento)
Data: 2006/11/24
'Autor: Leng Yue, Xilou
'Site: www.cuoxin.com
'Descrição: Nenhum
'Copyright: Por favor, consulte a fonte de reimpressão, autor
'***********************************
Último modificado: 2006/11/24
'Número de modificações: 0
'Instruções de modificação: nenhuma
'Versão atual: v1.0.0
'***********************************
Classe EventProvider
Nome da tabela de logs de logdbname privado
'www.cuoxin.com Design Home
'Inicialização
Sub -classe privado_initialize ()
logdbname = loginfo
Final sub
'
Sub -classe particular ()
Final sub
'O título do evento predefinido, ou um tipo
Função pública EventTitles (Typepenum)
Dim Arttype (9)
Arrtype (0) = Evento desconhecido
ARRTTYPE (1) = login ilegal de usuário
arrtype (2) = URL passa parâmetros ilegais
arrtype (3) = login e passe em caracteres ilegais
artype (4) = login com frequência, o número de logins excede o tempo especificado
arrtype (5) = consulta caracteres ilegais que recebem
ARRTTYPE (6) = consulta frequente, o número de tempos de consulta excede o tempo especificado
artype (7) = a página é atualizada com frequência e o número de refrescos excede o tempo especificado
ARRTYPE (8) = Dados de envio fora do local
ARRTTYPE (9) = login de back -end
Se não é numérico (typepenum), então eventtitles = Evento desconhecido: função de saída
Se clng (ABS (typenum))> Ubound (Artype) então
EventTitles = Evento desconhecido: Função de saída
Final se
EventTitles = arrtype (Typepenum)
Função final
'O erro de exibição da matriz de pré-encomenda
Public ShowArrayInfo (InfoItems, Infovalues)
Dim str
str = <div estilo = 'borda: 2px Solid #4E4E9C; Fonte-família: Arial; cor: #800040; largura: 50%; tamanho da fonte: 9pt'>
str = str & <ul style = 'margem: 20px;'> <b> Informações do evento ASP: </b> & vbcrlf
Se Isarray (InfoItems) e Isarray (Infovalues), então
Para i = lbound (infoItems) para ubound (infoItems)
str = str & <li> <byle = 'cor:#4e4e9c'> & infoItems (i) &: </b> & infovalues (i) e vbcrlf
Próximo
Outro
str = str & <li> <b> & infoItems & </b>: & InfoValues & Vbcrlf
Final se
str = str & </ul> </div> & vbcrlf
Response.Write str
Final sub
'Mostre erro
Public sub Showinfo (e_title, c_url, e_num, e_des, e_time, Ópera, IP, Reurl)
Infoitems escuros, infvaluções
infoItems = Array (título do evento, URL do evento, EventNumber, eventDescription, _
Eventtime, operador, IP, URL do referente_
)
Infovalues = Array (e_title, c_url, e_num, e_des, e_time, ópera, ip, reurl)
ShowArrayInfo InfoItems, Infovalues
Final sub
'Mostre informações sobre o arquivo original
Public Suboriinfo (Oriclass, Orifunction, OriPage)
Infoitems escuros, infvaluções
infoItems = Array (classe original, função original, página original)
Infovalues = Array (Oriclass, Orifunction, OriPage)
ShowArrayInfo InfoItems, Infovalues
Final sub
'Obtenha IP
Função pública getip ()
Dim IP
'Se o cliente usar um servidor proxy, ele deve usar o método ServerVariables (http_x_forwarded_for)
Ip = request.servervariables (http_x_forwarded_for)
Se ip = ou isnull (ip) ou isempty (ip) então
'Se o cliente não usar um proxy, o método Request.ServerVariables (Remote_ADDR) deve ser usado
Ip = request.Servervariables (Remote_addr)
final se
getip = ip
Função final
'Verificação de envio fora do local
Função pública Postt ()
Dim Server_v1, Server_v2
posto de verificação = false
server_v1 = cstr (request.Servervariables (http_referer))
server_v2 = cstr (request.Servervariables (server_name))
Se mid (server_v1,8, len (server_v2)) = server_v2 então checkpost = true
Função final
'Acesse o caminho
Função pública getReferer ()
getReferer = request.Servervariables (http_referer)
Função final
'Obtenha o URL atual do navegador
Função pública getCururl ()
Se request.ServerVariables (https) = ON então
GetCurrenturl = https: //
Outro
GetCurrenturl = http: //
Final se
GetCururl = getCururl & request.servervariables (server_name)
If (request.servervariables (server_port) <> 80) Então getCururl = getCururl &: & request.servervariables (server_port)
GetCururl = getCururl & request.servervariables (URL)
If (request.QueryString <>) então getCururl = getCururl &? & Request.QueryString
Função final
'Pegue a fonte ou obtenha o URL atual do navegador, abrangente nos dois primeiros
Função pública geturl (t)
Se t = 1 então
geturl = getCururl ()
Outro
geturl = getReferer ()
Final se
Função final
'Anti-refresh
'S1: o acesso é permitido após mais de S1 segundos
'S2: Se o horário atual e o último tempo de acesso forem diferentes dos S2 segundos, será considerado atualizado com frequência
'Maxtimes: se o número de atualizações frequentes for igual ou maior que maximes, registro
'Se refrescante com frequência, isrefresh = true, caso contrário, é falso
Função pública Isrefresh (S1, S2, Maxtimes)
Dim Cachename
Cachename = EventProvider_2006
Se o ISDATE (Sessão (Cachename & IsRefreshtime)) é permitido após o S1 segundos
Se datdiff (s, sessão (Cachename & IsRefreshtime), agora ())> s1 então
Sessão (Cachename & IsRefreshtime) = agora ()
Sessão (Cachename & IsRefresh) = false
Final se
Final se
Se sessão (Cachename & IsRefresh) = true então
isrefresh = true
Outro
isrefresh = false
Final se
Se Isdate (sessão (Cachename & Refreshstart)) então
Se datdiff (s, sessão (Cachename & Refreshstart), agora ()) <s2 Então '// se o tempo atual e o último tempo de acesso forem diferentes dos segundos S2, será considerado atualizado com frequência
Sessão (Cachename & Refresht) = Sessão (Cachename & Refresht) +1 '// Estatísticas O número de atualizações frequentes
Se sessão (Cachename & Refresht)> = maxtimes, então '// se os tempos de atualização da frequência forem iguais ou maiores que maximes, registro
Sessão (Cachename & IsRefresh) = true
Sessão (Cachename & IsRefreshtime) = agora ()
Final se
Outro
Sessão (Cachename & Refresht) = 0 '// Se não, altere o número de registros frequentes para 0
Final se
Final se
Sessão (Cachename & Refreshstart) = agora () '// Reserve a hora para esta visita até a próxima visita
Função final
'Escreva no registro do banco de dados
Public sub writeTodb (e_title, c_url, e_num, e_des, e_time, ópera, ip, reurl, conn)
Dim SQL
sql = inserir em & logdbname & (etitle, eurl, enum, edes, etime, operador, ip, refereurl) valores (
sql = sql & '& e_title &', '& c_url &', '& e_num &', '& e_des &', '& e_time &', '& opera &', '& ip &', '& reurl &')
Conn.Execute (SQL)
Final sub
Classe final
%>
Compartilhar: ASP+Ajax não consegue atualizar para adicionar amigos Devido a relações de trabalho, uma das funções é aumentar a outra parte como amigo. Como mostrado na figura: o método usado é Ajax e o código apropriado é mais barato: a href = javascript: void (0); OnClick = add_username (' %= rs (nome de usuário) %'); Adicionar como amigo/a, a verificação JS usada: idioma de script = javascript src = ajax.