Problème de cookies
Résolu
Fastoche
-
Fastoche -
Fastoche -
* Bonjour, j'ai un petit problème avec un site que je suis en train de créer. Pouvez-vous m'aider svp ? C'est un site où on vote Pour ou Contre des trucs. Il y a une seule page, avec deux paramètres dans la barre d'adresse : a, qui est l'identifiant du truc précédent, et b l'identifiant du truc en cours.
*
* Un cookie est posé à chaque vote. Si l'id est 3, le cookie s'appelle b3. Pour générer l'identifiant suivant, on prend un nombre aléatoire $ran et on le régénère autant de fois qu'il le faut pour qu'un cookie ne soit pas posé sur son nom.
*
* Voilà le problème : les cookies se posent bien (j'ai vérifié), mais l'id suivant peut très bien être un id attaché à un cookie déjà posé ! Par ailleurs, lorsque tous les cookies sont posés, la boucle while dure à l'infini, comme prévu cette fois-ci.
*
* En fait, tout se passe comme si la boucle while faisait à chaque fois une étape en plus ou en moins... mystérieux !
*
* En espérant que quelqu'un prendra le temps de lire tout ça et de m'aider ! ^^
*
* Voici le code du site, avec les trucs apparemment sans incidence enlevés :
*
* Un cookie est posé à chaque vote. Si l'id est 3, le cookie s'appelle b3. Pour générer l'identifiant suivant, on prend un nombre aléatoire $ran et on le régénère autant de fois qu'il le faut pour qu'un cookie ne soit pas posé sur son nom.
*
* Voilà le problème : les cookies se posent bien (j'ai vérifié), mais l'id suivant peut très bien être un id attaché à un cookie déjà posé ! Par ailleurs, lorsque tous les cookies sont posés, la boucle while dure à l'infini, comme prévu cette fois-ci.
*
* En fait, tout se passe comme si la boucle while faisait à chaque fois une étape en plus ou en moins... mystérieux !
*
* En espérant que quelqu'un prendra le temps de lire tout ça et de m'aider ! ^^
*
* Voici le code du site, avec les trucs apparemment sans incidence enlevés :
<?php $a = $_GET['a']; $b = $_GET['b']; $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); if (($_POST['vote']=='oui') || ($_POST['vote']=='non')) { setcookie('b'.$a, 'ok', time() + 10*365*24*3600); } ?> <?php $reponse2 = $bdd->query('SELECT * FROM nombre'); $donnees2 = $reponse2->fetch(); $ran=floor(rand(0, ($donnees2['nombre']-1))); while (($_COOKIE['b'.$ran]=='ok') || ($ran==$b)) { $ran=rand(0, ($donnees2['nombre']-1)); } ;?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Titre à choisir</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" /> </head> <body> <div class="for"> <form method="post" action=<?php echo "accueil.php?a=$b&b=$ran" ?>> <input type="radio" name="vote" value="oui" id="oui" /> <label for="oui">Pour</label></br> <input type="radio" name="vote" value="non" id="non" /> <label for="non">Contre</label></br> <input type="submit" value="Valider" /> </form> </div> </div> </body> </html>
A voir également:
- Problème de cookies
- Supprimer les cookies - Guide
- Cookies manager - Télécharger - Confidentialité
- Extension refuser cookies - Guide
- Ou sont stockés les cookies firefox ✓ - Forum Mozilla Firefox
- Où sont stockés les cookies ? - Forum Windows 10