boucle et session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : boucle et session

Re: boucle et session

par herve_dh » 04 juin 2012, 08:37

Merci beaucoup :oops: je rectifie...

Re: boucle et session

par Mazarini » 04 juin 2012, 08:18

session_destroy(); supprime les données en session. Donc normal de ne pas les retrouver.

Au passage, unset($_POST); en fin de script ne sert pas.

boucle et session

par herve_dh » 04 juin 2012, 08:11

Bonjour,
je test le code ci-dessous et je n'arrive pas a comprendre pourquoi je rentre pas dans la boucle "if(verifyToken('contact_form'))..."
en fait quant je laisse que le test de session, celle-ci est vide...
Pouvez m'aider à résoudre ce mystère pour moi :(
Je ne vois pas ce qui ne vas pas.
Merci pour votre aide.

Code : Tout sélectionner

<?php session_start(); function generateToken($form) { $token = md5(uniqid(microtime(), true)); $_SESSION[$form.'_token'] = $token; return $token; } function verifyToken($form) { if (!isset($_POST['token'])) { return false; } elseif (!isset($_SESSION[$form.'_token'])) { return false; } elseif ($_SESSION[$form.'_token'] !== $_POST['token']) { return false; } else { return true; } } if(verifyToken('contact_form')) { echo 'c bon:<br>'.print_r($_SESSION); echo '<br>'.$_POST['token']; exit(); } else { $token = generateToken('contact_form'); /* $token = md5(uniqid(microtime(), true)); $_SESSION['contact_form_token'] = $token;*/ print_r($_SESSION); echo '<br>POST: '.$_POST['token']; ?> <form action="contact.php" method="post" name="contact_form"> <input type="hidden" name="token" value="<?php echo $token; ?>" /> <button type="submit" name="envoyer" >Envoyer</button> </form> </div> <?php } unset($_POST); session_destroy(); ?>