Recommandé: Solution de requête multiple ASP Nous rencontrons souvent plusieurs problèmes de requête et les longues déclarations SQL rendent souvent les moines confus. Surtout lorsque la partie du client remplit les conditions de requête, il sera encore plus difficile d'utiliser des méthodes ordinaires. Ce qui suit utilise intelligemment l'identité de l'endroit où 1 = 1 (en fait, c'est beaucoup, laissez-le avoir une valeur de vrai) pour résoudre ce problème. Résumé du texte «Titre des informations sur le sujet»
Comment limiter plusieurs soumissions répétées de formulaires dans ASP? Sur Internet, nous rencontrons d'innombrables formulaires chaque jour, et nous constatons également que la plupart d'entre eux ne empêchent pas les utilisateurs de soumettre le même formulaire plusieurs fois. L'absence de telles restrictions peut parfois produire des résultats inattendus, tels que l'abonnement en double aux services de courrier électronique ou le vote en double.
Cet article décrit un moyen simple d'empêcher les utilisateurs de soumettre le même formulaire plusieurs fois au cours de la session en cours dans une application ASP. Il se compose principalement de quatre sous-programmes. Dans des applications plus simples, il vous suffit de placer ces codes dans le fichier inclue et de les citer directement; Pour ces environnements plus complexes, nous donnerons quelques suggestions d'amélioration à la fin de l'article.
1. Processus de travail de base
Ensuite, nous discutons à leur tour de ces quatre sous-programmes.
(ASP restreint plusieurs soumissions répétées de formulaires) Initialisation
Ici, nous voulons enregistrer deux variables dans l'objet de session, parmi lesquelles:
⑴ Chaque formulaire correspond à un identifiant unique appelé FID, et un compteur est utilisé pour rendre cette valeur unique.
⑵ Chaque fois qu'un formulaire est soumis avec succès, son FID doit être stocké dans un objet de dictionnaire.
Nous utilisons un processus dédié pour initialiser les données ci-dessus. Bien que chaque sous-programme l'appellera à l'avenir, il ne sera en fait exécuté qu'une seule fois au cours de chaque session:
Ce qui suit est le contenu cité: Sub initializefid () Sinon IsObject (session (Fidlist)) alors Set session (fidlist) = server.createObject (scripting.dictionary) Session (FID) = 0 Terminer si Sub-Sub |
(Restreindre plusieurs soumissions répétées de formes dans ASP) Identificateur unique pour générer des formulaires
La fonction suivante GenerateFid () est utilisée pour générer un drapeau unique pour le formulaire. La fonction ajoute d'abord la valeur FID par 1 puis la renvoie:
Ce qui suit est le contenu cité: Fonction generatefid () Initialiser Session (FID) = session (FID) 1 GenerateFid = session (FID) Fonction finale |
(Plusieurs soumissions répétées de formulaires restreintes dans ASP) Enregistrer le formulaire soumis
Lorsque le formulaire est soumis avec succès, son identifiant unique est enregistré dans l'objet du dictionnaire:
Ce qui suit est le contenu cité: Subs regritsfid () Sombre strfid Initialiser strfid = demande (fid) Session (Fidlist) .Add Strfid, Now () Sub-Sub |
(ASP restreint plusieurs soumissions répétées des formulaires 4) Vérifiez si le formulaire est soumis à plusieurs reprises
Avant de traiter officiellement un formulaire soumis par l'utilisateur, vous devez vérifier si son FID est enregistré dans l'objet Dictionnaire. La fonction CheckFid () suivante est utilisée pour terminer ce travail. S'il a été enregistré, il renvoie faux, sinon il renvoie vrai:
Ce qui suit est le contenu cité: Fonction CheckFid () Sombre strfid Initialiser strfid = demande (fid) CheckFid = Not Session (Fidlist) .exists (strFid) Fonction finale |
2. Comment utiliser
Il y a deux endroits où les fonctions ci-dessus sont utilisées, à savoir lorsque la génération de formulaires et le traitement des résultats. En supposant que les quatre sous-programmes ci-dessus ont été placés dans les formulaires de fichiers d'inclusion.inc, le code suivant décide de générer un formulaire ou de traiter les résultats du formulaire en fonction de la valeur FID. Le processus de traitement qu'il décrit convient à la plupart des applications ASP:
Ce qui suit est le contenu cité: <% Option explicite%> <! - # Inclure file = forms.inc <html> <adal> <Title> Test de soumission de formulaire </TITAL> </ Tête <body> <% Si demande (fid) = alors Générer Autre Forme de processus Terminer si %> </docy> </html> |
GenerateForm est responsable de la génération du formulaire, et le formulaire doit contenir un FID caché, tel que:
Ce qui suit est le contenu cité: <% Sub généntateform () %> <formulaire d'action = <% = request.servervariables (path_info)%> méthode = get> <Type d'entrée = nom caché = valeur fid = <% = generateFid ()% >> <input type = Text Name = Param1 Value => <Type d'entrée = soumettre Value = OK> </ form> <% Sub-Sub %> |
ProcessForm est responsable du traitement du contenu soumis via le formulaire, mais avant le traitement, il doit d'abord appeler CheckFid () pour vérifier si le formulaire actuel a été soumis. La classe de code est telle que:
Ce qui suit est le contenu cité: <% Sub ProcessForm () Si CheckFid () alors Réponse.Write ce que vous tapez est |
Partager: comment générer du HTML dans ASP? Il existe déjà de nombreux systèmes d'information qui génèrent du HTML, mais ils utilisent tous des modèles. Cette fonction enregistre le code HTML généré par la page ASP dans un fichier HTML, il n'est donc pas nécessaire de modifier la page d'origine pour compléter facilement un système d'information qui génère HTML. ^ _ ^ Étant donné que le code est relativement court, le contenu cité suivant n'est pas commenté ici:% 'Lorsque la cible