Recomendado: Solução de consulta múltipla ASP Muitas vezes encontramos vários problemas de consulta, e as longas declarações SQL geralmente deixam os monges confusos. Especialmente quando a peça do cliente preenche as condições de consulta, será ainda mais difícil usar métodos comuns. O seguinte usa inteligentemente a identidade de onde 1 = 1 (na verdade, é muito, deixe -o ter um valor de verdade) para resolver esse problema. Resumo do texto 'Title de informação do assunto
Como limitar vários envios repetidos de formulários no ASP? Na Internet, encontramos inúmeros formulários todos os dias e também vemos que a maioria deles não restringe os usuários de enviar o mesmo formulário várias vezes. A falta de tais restrições às vezes pode produzir alguns resultados inesperados, como assinatura duplicada em serviços de email ou votação duplicada.
Este artigo descreve uma maneira simples de impedir que os usuários enviem o mesmo formulário várias vezes durante a sessão atual em um aplicativo ASP. Consiste principalmente em quatro sub -rotinas. Em aplicativos mais simples, você só precisa colocar esses códigos no arquivo de inclusão e citá -los diretamente; Para esses ambientes mais complexos, daremos algumas sugestões de melhoria no final do artigo.
1. Processo de trabalho básico
Em seguida, discutimos essas quatro sub -rotinas por sua vez.
(ASP restringe vários envios repetidos de formulários) Inicialização
Aqui queremos salvar duas variáveis no objeto de sessão, entre as quais:
⑴ Cada formulário corresponde a um identificador exclusivo chamado FID, e um contador é usado para tornar esse valor único.
⑵ Sempre que um formulário é enviado com sucesso, seu FID deve ser armazenado em um objeto de dicionário.
Usamos um processo dedicado para inicializar os dados acima. Embora cada sub -rotina o chame no futuro, ela será executada apenas uma vez durante cada sessão:
A seguir, o conteúdo citado: Sub Initializefid () Se não o Isobject (sessão (fidlist)), então Definir sessão (fidlist) = server.createObject (script.dictionary) Sessão (fid) = 0 Final se Final sub |
(Restrinja vários envios repetidos de formulários no ASP) Identificador exclusivo para gerar formulários
A seguinte função generatefid () é usada para gerar um sinalizador exclusivo para o formulário. A função primeiro adiciona o valor FID por 1 e depois o retorna:
A seguir, o conteúdo citado: Função generatefid () Initializefid Sessão (fid) = sessão (fid) 1 Generatefid = sessão (fid) Função final |
(Vários envios repetidos de formulários restritos no ASP) Registre o formulário enviado
Quando o formulário é enviado com sucesso, seu identificador exclusivo é registrado no objeto Dicionário:
A seguir, o conteúdo citado: Sub Registerfid () Dim strfid Initializefid strfid = solicitação (fid) Sessão (fidlist) .Add strfid, agora () Final sub |
(ASP restringe vários envios repetidos dos formulários 4) Verifique se o formulário é enviado repetidamente
Antes de processar formalmente um formulário enviado pelo usuário, verifique se o FID está registrado no objeto Dicionário. A função Checkfid () a seguir é usada para concluir este trabalho. Se foi registrado, retornará falso, caso contrário, retorna true:
A seguir, o conteúdo citado: Função checkfid () Dim strfid Initializefid strfid = solicitação (fid) Checkfid = não sessão (fidlist) .exists (strfid) Função final |
2. Como usar
Existem dois lugares onde as funções acima são usadas, a saber, quando a geração de formulários e o processamento de resultados. Supondo que as quatro sub -rotinas acima tenham sido colocadas nos formulários de arquivo de inclusão.inc, o código a seguir decide se deve gerar um formulário ou processar os resultados do formulário com base no valor FID. O processo de processamento que descreve é adequado para a maioria dos aplicativos ASP:
A seguir, o conteúdo citado: < %Opção Explictic %> <!-#inclua arquivo = forms.inc <html> <head> <title> Teste de envio de formulário </ititle> < /Cabeça <Body> < % Se solicitar (fid) = então GenerateForm Outro Processform Final se %> < /Body> </html> |
GenerateForm é responsável por gerar o formulário, e o formulário deve conter um FID oculto, como:
A seguir, o conteúdo citado: < % Sub -generateForm () %> <forma de ação = < %= request.Servervariables (path_info) %> método = get> <Tipo de entrada = Nome oculto = Valor Fid = < %= Generatefid () %>> <Tipo de entrada = nome do texto = param1 value => <Tipo de entrada = Valor de envio = OK> </morm> < % Final sub %> |
O ProcessForm é responsável pelo processamento do conteúdo enviado pelo formulário, mas antes do processamento, ele deve primeiro chamar o checkfid () para verificar se o formulário atual foi enviado. A classe de código é como:
A seguir, o conteúdo citado: < % Sub ProcessForm () Se checkfid () então Response.Write o que você digita é |
Compartilhar: Como gerar HTML no ASP? Já existem muitos sistemas de notícias que geram HTML, mas todos usam modelos. Esta função salva o código HTML gerado pela página ASP em um arquivo HTML, portanto, não há necessidade de alterar a página original para concluir facilmente um sistema de notícias que gera HTML. ^ _^ Como o código é relativamente curto, o conteúdo citado a seguir não é comentado aqui: % 'Quando o alvo