Probleme de boucle

Résolu
Ddjay Messages postés 9 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 12 avril 2010 - 7 avril 2010 à 09:02
Ddjay Messages postés 9 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 12 avril 2010 - 12 avril 2010 à 00:23
Bonjour à tous !
j'ai un soucis de boucle sur le code ci-dessous, mon but etant de créér un cookie suite au vote que l'utilisateur fait, si le titre existe deja, je compte écraser le cookie qui existait déjà.

Dans l'etat actuel les cookies ne cessent de s'ajouter. HELPPPPPPPPPPPP Mon cerveau se liquéfie tellement il est en ébulition ....

<?php
$SID = time();
$titre = addslashes(trim($_GET['titre']));
echo 'Titre : 
'.$SID." : ".$titre."

Cookie : 
";
if(isset($_COOKIE['vote_top10'])) {
    while(list($nom, $valeur) = each($_COOKIE['vote_top10']))  {
if($valeur != $titre) {
echo "j'ajoute un cookie
";
//setcookie('vote_top10['.$SID.']', $titre, (time()+60*60*24),'','.xxxxxxxx.fr','');
} else {
echo "je n'ajoute pas de cookie
";
//setcookie('vote_top10['.$name.']', $titre, (time()+60*60*24),'','.xxxxxxxx.fr','');
}
    }
} else {
setcookie('vote_top10['.$SID.']', $titre, (time()+60*60*24),'','.xxxxxxxx.fr','');
}
?>

8 réponses

Ddjay Messages postés 9 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 12 avril 2010
12 avril 2010 à 00:23
voila comment j'ai procedé pour mon soucis :

<?php


$SID = time();
$titre = addslashes(trim($_GET['titre']));
if(isset($_COOKIE['vote_top10']) && in_array($titre, $_COOKIE['vote_top10'])) {
// vote deja effectué ....
header('Location: ../'.$_GET['url'].'&confirm=voted');
} else {
//ajout dans SQL et cookie
setcookie('vote_top10['.$SID.']', $titre, (time()+60*60*24),'','.xxxxxxxxx.fr','');
//redirection vote effectué
header('Location: ../'.$_GET['url'].'&confirm=ok');
}
?>
3
Ddjay Messages postés 9 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 12 avril 2010
8 avril 2010 à 12:02
up :)
0
Ddjay Messages postés 9 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 12 avril 2010
10 avril 2010 à 12:02
up ?
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
10 avril 2010 à 16:12
Salut,

Étrange manière de faire un foreach, ça fonctionne de la même manière mais c'est assez étrange

Dans l'etat actuel les cookies ne cessent de s'ajouter.

C'est ce qui arrive quand on met $name à la place de $nom :
setcookie('vote_top10['.$name.']', $titre, (time()+60*60*24),'','.xxxxxxxx.fr','');

Pour peu que cette variable soit déclarée plus haut, tu es bon pour balancer plein de cookies.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ddjay Messages postés 9 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 12 avril 2010
10 avril 2010 à 16:34
j'ai changé deja la nom de la variable $name/$nom, mais le soucis, c'est que sur le premier vote que je fais, y a pas de soucis, il fais 1 cookie, si je reactualise le script, il n'ajoute pas d'autre cookies, par contre si j'effectue un nouveau vote, bah c là qu'il ajoute plein de cookies .... et je ne parviens pas à comprendre pourquoi ...
0
Ddjay Messages postés 9 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 12 avril 2010
11 avril 2010 à 12:18
Je pense avoir ciblé mon soucis, mais je ne sais pas comment le réctifier .... en faite il ne controle que sur le premier cookie ...

si le titre == 1er cookie //il ne rajoute pas de cookie
si le titre != 1er cookie //il ne cesse d'ajouter

comment faire pour que mon script controle TOUS les cookies et non pas seulement le premier ?
0
Ddjay Messages postés 9 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 12 avril 2010
11 avril 2010 à 12:21
J'ai modifié comme suit :
<?php
if(isset($_COOKIE['vote_top10'])) {
foreach($_COOKIE['vote_top10'] as $nom => $valeur) {
if($valeur != $titre) {
echo "Cookie n'existe pas, j'ajoute un cookie
";
setcookie('vote_top10['.$SID.']', $titre, (time()+60*60*24),'','.geekvibes.fr','');
} else {
echo "Cookie existe, je n'ajoute pas de cookie
";
setcookie('vote_top10['.$nom.']', $titre, (time()+60*60*24),'','.geekvibes.fr','');
}
echo "$nom : $valeur 
\n";
}
} else {
setcookie('vote_top10['.$SID.']', $titre, (time()+60*60*24),'','.geekvibes.fr','');
}
?>
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
11 avril 2010 à 23:25
Salut,
Le problème est résolu ?
Si oui, précise le en validant ton message...


Cordialement, uaip.
0
Rejoignez-nous