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.
13 avril 2006 à 01:18
<?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 :)
6 oct. 2005 à 00:37
pour info, il y a aussi ce code là : http://www.phpcs.com/code.aspx?ID=32312
fonctionnement identique... pour PHP 5
Ciao.
18 sept. 2005 à 12:47
je pense aissi que je vais l'utiliser sur mon site.
18 sept. 2005 à 11:13
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...
17 sept. 2005 à 09:52
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.