Classe pour empêcher les soumissions multiples de formulaire

Soyez le premier à donner votre avis sur cette source.

Vue 8 576 fois - Téléchargée 1 005 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

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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 :)
Messages postés
5
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
6 octobre 2005

Coucou,

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

fonctionnement identique... pour PHP 5

Ciao.
Messages postés
8
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
18 septembre 2005

Très bon code,
je pense aissi que je vais l'utiliser sur mon site.
Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 janvier 2015

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...
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
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.