Рекомендуется: ASP Multiply Query Solution Мы часто сталкиваемся с несколькими проблемами запроса, и длинные заявления SQL часто путают монахов. Особенно, когда клиентская часть заполняет условия запроса, будет еще сложнее использовать обычные методы. Следующее умно использует идентичность того, где 1 = 1 (на самом деле, это много, просто дайте ему иметь значение TRUE) для решения этой проблемы. Сводка текста
Как ограничить несколько повторяющихся представлений форм в ASP? В Интернете мы сталкиваемся с бесчисленными формами каждый день, и мы также видим, что большинство из них не ограничивают пользователей отправлять одну и ту же форму несколько раз. Отсутствие таких ограничений иногда может привести к некоторым неожиданным результатам, таким как дубликат подписки на услуги по электронной почте или дублирование голосования.
В этой статье описывается простой способ предотвращения предоставления пользователей несколько раз в одну и ту же форму во время текущего сеанса в приложении ASP. В основном он состоит из четырех подпрограмм. В более простых приложениях вам просто нужно поместить эти коды в файл include и напрямую процитировать их; Для этих более сложных среду мы дадим некоторые предложения по улучшению в конце статьи.
1. Базовый рабочий процесс
Далее мы обсуждаем эти четыре подпрограммы по очереди.
(ASP ограничивает множественные повторные представления форм) Инициализация
Здесь мы хотим сохранить две переменные в объекте сеанса, среди которых:
⑴ Каждая форма соответствует уникальному идентификатору, называемому FID, и счетчик используется для того, чтобы сделать это значение уникальным.
⑵ Каждый раз, когда форма будет успешно представлена, ее FID должен храниться в словарном объекте.
Мы используем выделенный процесс для инициализации вышеуказанных данных. Хотя каждая подпрограмма будет называть это в будущем, она фактически будет выполнена только один раз во время каждого сеанса:
Ниже приведено цитируемое содержание: Sub InitianizeFid () Если нет isobject (session (fid -stist)), то тогда SET SESSION (FIDLIST) = SERVER.CreateObject (scripting.dictionary) Session (FID) = 0 Конец, если Конец суб |
(Ограничить множественные повторные представления форм в ASP) Уникальный идентификатор для генерации форм
Следующая функция GenerateFid () используется для создания уникального флага для формы. Функция сначала добавляет значение FID на 1, а затем возвращает его:
Ниже приведено цитируемое содержание: Функция GENARTEFID () Инициализируйтефид Сеанс (FID) = сеанс (FID) 1 GENERATEFID = SESSION (FID) Конечная функция |
(Несколько повторяющихся представлений ограниченных форм в ASP) Зарегистрируйте представленную форму
Когда форма будет успешно представлен, ее уникальный идентификатор зарегистрирован в словарном объекте:
Ниже приведено цитируемое содержание: Sub Registerfid () Dim Strfid Инициализируйтефид strfid = запрос (FID) Session (FIDLIST) .Add strfid, теперь () Конец суб |
(ASP ограничивает несколько повторяющихся представлений форм 4) Проверьте, представлена ли форма
Перед формальной обработкой формы, представленной пользователем, вы должны проверить, зарегистрирован ли ее FID в словарном объекте. Следующая функция CHECKFID () используется для выполнения этой работы. Если он был зарегистрирован, он возвращает false, в противном случае он возвращает true:
Ниже приведено цитируемое содержание: Функция CheckFid () Dim Strfid Инициализируйтефид strfid = запрос (FID) CheckFid = не Session (FIDLIST) .Exists (strfid) Конечная функция |
2. Как использовать
Есть два места, где используются вышеуказанные функции, а именно при обработке формы и обработки результатов. Предполагая, что вышеупомянутые четыре подпрограммы были помещены в файл включения. Процесс обработки, который он описывает, подходит для большинства приложений ASP:
Ниже приведено цитируемое содержание: < %Вариант явно %> <!-#Включите file = forms.inc <html> <Голова> <Title> тест подчинения формы </title> < /Голова <Тело> < % Если запрос (FID) = тогда Генерировать Еще Процесс Конец, если %> < /Body> < /Html> |
GERENATEFORM отвечает за генерацию формы, а форма должна содержать скрытый FID, такой как:
Ниже приведено цитируемое содержание: < % Sub Geginateform () %> <form action = < %= request.servervariables (path_info) %> method = get> <input type = hidden name = fid value = < %= GenerateFid () %>> <input type = text name = param1 value => <input type = отправить значение = OK> < /form> < % Конец суб %> |
Processform отвечает за обработку контента, представленного через форму, но перед обработкой он должен сначала вызовать CheckFid (), чтобы проверить, была ли представлена текущая форма. Класс кода таков:
Ниже приведено цитируемое содержание: < % Sub processform () Если checkfid (), то Ответ. Запишите, что вы набираете |
Поделиться: как генерировать HTML в ASP? Уже есть много новостных систем, которые генерируют HTML, но все они используют шаблоны. Эта функция сохраняет код HTML, сгенерированный страницей ASP в HTML -файл, поэтому нет необходимости изменять исходную страницу, чтобы легко заполнить новостную систему, которая генерирует HTML. ^ _^ Поскольку код относительно короткий, здесь не прокомментируется следующее цитируемое контент: % 'Когда цель