Classe pour empêcher les soumissions multiples de formulaire

Soyez le premier à donner votre avis sur cette source.

Vue 8 917 fois - Téléchargée 1 021 fois

Description

Je vous soumets un code que j'ai développé, il y a quelque temps et qui tourne notamment sur mon site.

Cette classe permet ainsi de sécuriser vos formulaires contre l'envoi multiple mais aussi contre certaines forme de hacking.

Conclusion :


Le principe est simple, on inclut dans chaque formulaire un champ caché auquel, on affect un ID unique et lors du traitement des données, on vérifie si l'ID renvoyé est bien celui attendu.

Pour le fichier d'exemple, il devrait fonctionner chez tout le monde.
Remplissez le formulaire et postez-le une première fois; Jusque là, le comportement est normal.

Pressez le bouton [Reload] de votre explorer pour reposer le formulaire une seconde fois.

(c)Le fichier ID_Mmgr.php peut être redistribué et utilisé librement, pour autant que les mentions d'auteur ne soient pas modifiées.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
13 avril 2006 à 01:18
Met un timeout dans ta session :)

<?php
if ( isset($_SESSION['time_post']) && $_SESSION['time_post'] < ( time() + 3600) ) {
die ('Posté qu\'une seule fois seulement !');
} else {
$_SESSION['time_post'] = time();
}
?>

Et hop, c'est reglé :) Tu ne peux poster qu'une fois toutes les x secondes.
C'est entièrement suffisant :)
sdominici Messages postés 5 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 6 octobre 2005
6 oct. 2005 à 00:37
Coucou,

pour info, il y a aussi ce code là : http://www.phpcs.com/code.aspx?ID=32312

fonctionnement identique... pour PHP 5

Ciao.
Drakstar Messages postés 8 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 18 septembre 2005
18 sept. 2005 à 12:47
Très bon code,
je pense aissi que je vais l'utiliser sur mon site.
cs_janhsh Messages postés 31 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 janvier 2015
18 sept. 2005 à 11:13
massacr et Anthomicro:
Le but ici, c'est de montrer comment utiliser la classe ID_Mngr et ou appeller les méthodes $ID_Mngr->IsValidID(), $ID_Mngr->Clear_ID() et $ID_Mngr->GetUnique_ID()

Je n'ai pas chercher à blinder l'entrée des champs contre les espaces mais un trim() pour cela.... c'est juste un exemple pour utiliser la classe en question.


FhX:
Explique moi dans ton bout de code comment tu fait quand pour permettre a un utilisateur de réutiliser une seconde fois le formulaire ou un autre.
car une fois que ta variable se session "deja_postee" postée sera initialisée, le visiteur ne saura plus poster aucun formulaire...
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
17 sept. 2005 à 09:52
en plus si le mec met un espace sa vérification est caduque :-)
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.