Рекомендуется: ASP Class A Tag Engine Class Tagengine.class Класс ASP, используемый для реализации функции тега, вы можете понять конкретные функции, если вы можете их понять. Запись об изменении: 1, функция добавления расширения, 2006-12-3 % '*********************** www.
Автор настолько тщательно, что он заключает в себя все эти вещи в классы. Это немного закончилось. Эти вещи могут быть инкапсулированы в виде процессов или функций. Суб и функция также инкапсулируются, и это не обязательно должен быть класс. Ваша библиотека файлов не обязательно все классы, необходимы какая -то саб и функция.
Реализованные функции включают
1. Showinfo (e_title, C_URL, E_NUM, E_DES, E_TIME, Opera, IP, Reurl): Сообщение об ошибке отображения
2. getip (): получить IP клиента
3. Checkpost (): убедитесь, что это подход за пределами площадки
4. getReererer (): запись происхождения
5. getCururl (): Получите текущий путь страницы
6, Isrefresh (S1, S2, Maxtimes): анти-рефш
Полный код:
<%
'*********************************
«Имя: EventProvider (класс событий)
Дата: 2006/11/24
'Автор: Ленг Юэ, Xilou
'Веб -сайт: www.cuoxin.com
'Описание: нет
'Copyright: пожалуйста, обратитесь к источнику для перепечатки, автор
'*********************************
«Последнее изменение: 2006/11/24
'Количество модификаций: 0
'Инструкции по модификации: нет
'Текущая версия: v1.0.0
'*********************************
Класс EventProvider
Private logdbname 'Имя таблицы журнала
'www.cuoxin.com Design Home
'Инициализация
Private sub class_initialize ()
logdbname = loginfo
Конец суб
'
Private sub class_terminate ()
Конец суб
'Название предопределенного события или типа
Публичная функция EventTitles (typePenum)
Dim arrtype (9)
arrtype (0) = неизвестное событие
arrtype (1) = незаконное вход пользователя
arrtype (2) = URL проходит незаконные параметры
arrtype (3) = Войдите и передайте незаконные символы
ARRTYPE (4) = Вход часто, количество логинов превышает указанное время
arrtype (5) = запрос входящих нелегальных персонажей
arrtype (6) = Частый запрос, количество времени запроса превышает указанное время
arrtype (7) = страница часто обновляется, и количество обновлений превышает указанное время
arrtype (8) = данные о подчинении за пределами площадки
arrtype (9) = логин бэкэнд
Если нет isnumeric (typepenum), то EventTitles = неизвестное событие: выход на выход
Если clng (abs (typenum))> ubound (arrtype), то
EventTitles = неизвестное событие: функция выхода
Конец, если
EventTitles = arrtype (typepenum)
Конечная функция
'Ошибка отображения массива предварительного заказа
Public Sub Showarrayinfo (InfoItems, Infovalues)
Тусклый стр
str = <div style = 'border: 2px solid #4e4e9c; font-family: arial; цвет: #800040; ширина: 50%; размер шрифта: 9pt'>
str = str & <ul style = 'margin: 20px;'> <b> asp Информация о событии: </b> & vbcrlf
Если Isarray (Infoitems) и Isarray (инфвалью), тогда
Для i = lbound (infoitems) до Ubound (InfoItems)
str = str & <li> <b style = 'color:#4e4e9c'> & infoitems (i) &: </b> & Infovalues (i) & vbcrlf
Следующий
Еще
str = str & <li> <b> & infoitems & </b>: & Infovalues & VBCRLF
Конец, если
str = str & </ul> </div> & vbcrlf
Response.write str
Конец суб
'Показать ошибку
Public Sub Showinfo (e_title, C_URL, E_NUM, E_DES, E_TIME, OPERA, IP, Reurl)
Dim InfoItems, инфуваль
Infoitems = array (заголовок события, URL -адрес события, EventNumber, EventDescription, _
Время Eventtime, Operator, IP, реферат url_
)
Infovalues = Array (E_TITLE, C_URL, E_NUM, E_DES, E_TIME, OPERA, IP, Reurl)
ShowArrayinfo InfoItems, Infovalues
Конец суб
'Показать информацию об исходном файле
Общественный суб -showoriinfo (Oriclass, Orifunction, Oripage)
Dim InfoItems, инфуваль
Infoitems = Array (оригинальный класс, оригинальная функция, оригинальная страница)
Инфуваль = массив (Oriclass, Orifunction, Oripage)
ShowArrayinfo InfoItems, Infovalues
Конец суб
'Получить IP
Публичная функция getip ()
DIM IP
'Если клиент использует прокси -сервер, он должен использовать метод ServerVariables (http_x_forwarded_for)
Ip = request.servervariables (http_x_forwarded_for)
Если ip = или isnull (ip) или isempty (ip), тогда
'Если клиент не использует прокси, должен использоваться метод request.servervariables (remote_addr)
Ip = request.servervariables (remote_addr)
конец, если
getip = ip
Конечная функция
'Проверка подчинения за пределами площадки
Public Function Checkpost ()
Dim server_v1, server_v2
Checkpost = false
server_v1 = cstr (request.servervariables (http_referer))
server_v2 = cstr (request.servervariables (server_name))
Если mid (server_v1,8, len (server_v2)) = server_v2, то Checkpost = true
Конечная функция
'Проберите
Публичная функция getReererer ()
getReererer = request.servervariables (http_referer)
Конечная функция
'Получите текущий URL -адрес браузера
Публичная функция getCururl ()
Если запрос.servervariables (https) =
GetCurrenturl = https: //
Еще
GetCurrenturl = http: //
Конец, если
GetCururl = getCururl & request.servervariables (server_name)
If (request.servervariables (server_port) <> 80), тогда getcururl = getcururl &: & request.servervariables (server_port)
GetCururl = getCururl & request.servervariables (url)
If (request.querystring <>), тогда getCururl = getCururl &? & Request.querystring
Конечная функция
'Получите источник или получите текущий URL -адрес браузера, всеобъемлющие первые два
Публичная функция geturl (t)
Если t = 1 то
getUrl = getCururl ()
Еще
getUrl = getReerer ()
Конец, если
Конечная функция
'Анти-рефреш
'S1: доступ разрешен через более чем S1 секунд
S2: Если текущее время и последнее время доступа отличаются от S2 секунд, он будет считаться часто обновляемым
'maxtimes: если количество частых обновлений равно или больше, чем maxtimes, record
'Если часто освежает, isrefresh = true, в противном случае это неверно
Публичная функция Isrefresh (S1, S2, Maxtimes)
DIM CACHENAME
Cachename = EventProvider_2006
Если ISDATE (сеанс (Cachename & Isrefreshtime)), то будет разрешено через S1 секунд
Если Datediff (s, Session (Cachename & Isrefreshtime), теперь ())> S1 тогда
Session (Cachename & Isrefreshtime) = теперь ()
Сеанс (Cachename & Isrefresh) = false
Конец, если
Конец, если
Если сеанс (Cachename & Isrefresh) = true then
isrefresh = true
Еще
isrefresh = false
Конец, если
Если iSdate (сеанс (Cachename & Refreshstart)) тогда
Если Datediff (s, Session (Cachename & RefreshStart), теперь ()) <S2, тогда '// Если текущее время и последнее время доступа отличаются от S2 секунд, он будет считаться часто обновлять часто
Session (Cachename & Refresht) = Session (Cachename & Refresht) +1 '// Статистика Количество частых обновлений
Если сеанс (cachename & represht)> = maxtimes, то '// Если время обновления частоты равно или больше, чем maxtimes, запись
Session (Cachename & Isrefresh) = true
Session (Cachename & Isrefreshtime) = теперь ()
Конец, если
Еще
Session (Cachename & Refresht) = 0 '// Если нет, измените количество частых записей на 0
Конец, если
Конец, если
Session (Cachename & Refreshstart) = теперь () '// Зарезервировать время для этого посещения до следующего посещения
Конечная функция
'Записать в журнал базы данных
Public sub writeTodb (e_title, c_url, e_num, e_des, e_time, opera, ip, reurl, conn)
Dim SQL
SQL = INSERT INTORYBNAME & (ETITLE, EURL, ENUM, EDES, ETIME, Оператор, IP, Реферат) Значения (
sql = sql & '& e_title &', '& c_url &', '& e_num &', '& e_des &', '& e_time &', '& opera &', '& ip &', '& reurl &')
conn.execute (sql)
Конец суб
Конечный класс
%>
Поделиться: ASP+Ajax не достигает обновления, чтобы добавить друзей Из -за рабочих отношений одна из функций - увеличить другую сторону как друга. Как показано на рисунке: используемый метод является ajax, а соответствующий код дешевле: a href = javaScript: void (0); onclick = add_username (' %= rs (имя пользователя) %'); Добавьте как друг/A, используется проверка JS: язык скрипта = javaScript src = ajax.