IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Eviter Multipost] le retour


Sujet :

Langage PHP

  1. #1
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut [Eviter Multipost] le retour
    plop all

    Mr N. tout à l'heure tu proposais la solution suivante pour éviter le multipost d'un message dans un livre d'or par exemple :

    1. l'utilisateur demande une page ou un formulaire est présent.
    2. Génération d'un jeton. Ce jeton est placé en session et dans le formulaire.
    3. L'utilisateur soumet le formulaire.
    4. On compare le jeton avec celui en session
    4.1 le jeton est valide, on fait la mise à jour + suppression du jeton en session + redirection (bonus)
    4.2 le jeton n'est pas valide (inexistant en session ou différent), on dis poliment au gugusse d'arrêter de faire mumuse.
    ce que je ne comprend pas c'est comment ce jeton est créé ?
    ce mode de fonctionnement marche aussi si l'action du form est égal à la page sur laquelle on est (on envoi le form sur la page où l'on se trouve) ?

    Merci ;-)

  2. #2
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    quelqu'un pourrait m'aider ?

  3. #3
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Exemple =>

    Génération du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_SESSION['jeton'] = md5(uniqid(mt_rand(), true)));
    echo '<input type="hidden" name="jeton" value="'. $_SESSION['jeton'] .'" />';

    Traitement du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_SESSION['jeton']) && isset($_REQUEST['jeton']) && $_SESSION['jeton'] == $_REQUEST['jeton']) {
       //Le jeton est valide, on traite et on jette le jeton
       unset($_SESSION['jeton']);
    }

  4. #4
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    oups désole oublié de mettre résolu
    merci Mr N. mais en fait j'avais trouvé
    par contre je n'ai utilisé que mt_rand(); et pas md5(uniqid(mt_rand(), true)));

    ça change quelque chose ?

  5. #5
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    ben avec un simple nombre aléatoir tu risque de retomber deux fois de suite sur le même, uniqid permet de limiter ce phénomène : http://php.net/uniqid exemple 1

  6. #6
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    ah ok, merci de la précision

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Eviter les retours-charriot dans une zone text en VB6
    Par BZH22 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 06/03/2009, 18h03
  2. Réponses: 4
    Dernier message: 03/08/2007, 08h12
  3. [HTML] Eviter le retour à la ligne des div
    Par shadowbob dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/09/2006, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo