2010-12-04 5 views
0

J'ai un simple formulaire de bulletin d'information dans le pied de page de mon site et je veux empêcher les visiteurs de soumettre leur courriel deux fois.Comment éviter les doublons de courriels dans un formulaire (bulletin)

Je sais qu'il existe un certain nombre de méthodes pour cela, en utilisant une base de données est un. Il y en a d'autres qui utilisent javascript ou des scripts côté serveur, mais je ne sais pas comment les appliquer à mon formulaire de newsletter.

Voici le code newsletter:

<form method="post" action="processnewsrequest.php"> 

     <fieldset> 

      <label for="email">Email:</label> 
      <input name="email" type="text" id="email" placeholder="Enter your email" required="required" /> 
      <input type="submit" class="submit" id="news-submit" value="Join" /> 

     </fieldset> 

</form> 

Le script pour traiter cette forme est simple. Il liste d'abord la variable d'email; vérifie si un courriel a été entré (ou affiche un message d'erreur); et en cas de succès, la demande de newsletter est envoyée à l'administrateur du site et le visiteur reçoit un message les remerciant de s'être joint à la newsletter. Que puis-je faire pour éviter la duplication des envois de courriels?

Et comment puis-je appliquer les méthodes. J'espère ne pas avoir à utiliser une base de données.

Merci beaucoup!

Répondre

1

Il s'agit d'un extrait de code jQuery qui désactive le double-clic accidentel du bouton de soumission: lorsque le formulaire est soumis la première fois, il désactive simplement le bouton de soumission.

$('form').submit(function(){ 
    $('input[type=submit]', this).attr('disabled', 'disabled'); 
}); 

Cela suppose que le type double que vous soumettez voulez éviter est le « Oops, j'ai cliqué deux fois » variété. Si votre cible est les visiteurs qui s'inscrivent de nouveau en oubliant qu'il est déjà inscrit - vous devrez vérifier soit la base de données ou où vous stockez les adresses e-mail pour la newsletter.

+0

Donc, il semble que je vais devoir créer une base de données ... – gdinari

+0

Pour le stockage de données, une base de données a tout son sens - et la mise en place d'un ne prend pas beaucoup d'effort. – djn

0

Vous avez besoin d'un moyen de vérifier l'adresse e-mail entrée dans la liste des adresses e-mail que vous avez déjà. Si ces adresses e-mail (avec l'administrateur du site) ne sont pas stockées dans une base de données, ou d'une autre manière que vous pouvez rechercher, vous n'avez pas de chance.

Renseignez-vous auprès de votre administrateur de site pour savoir comment ils stockent les adresses électroniques.

+0

Im l'administrateur de ce site (le développer). Les e-mails sont envoyés à une adresse e-mail. – gdinari

+0

Ahh c'est vrai. J'allais juste sur la base de votre commentaire dans votre question en disant qu'ils ont été envoyés à l'administrateur du site. –

Questions connexes