Récupération valeurs cookie

Petit nouveau ! | 1 Messages

10 juin 2010, 00:06

Bonjour à tous,

Un petit problème de cookie me mène à vous
Je vous expose la situation:
J'arrive à récupérer dans une variable la dernière valeur insérée dans un cookie. Ce que je voudrais, c'est récupérer toutes les valeurs présentes dans ce cookie, pour pouvoir les comparer à ma DB et n'afficher que les entrées dont l'id ne se trouve pas dans le cookie. Je ne sais pas si c clair, voici mon code

index.php:
<html>
<head>
<title>Welcome on Surveys !</title>
<link href="./css/general.css" rel="stylesheet" type="text/css" />
</head>
<body>
<fieldset class="fieldset"><legend>Admin Access</legend><div class="indiv2"><a href="admin.html">Click Here For 
 
Admin Access</a></div></fieldset>
<fieldset class="fieldset">
<legend>Liste des sondages</legend>
 
<?PHP
require_once('./conn/db.php');
mysql_select_db($dbname, $sondage);
 
if (!isset($_COOKIE['listedone'])) {
$listetab = array();
	$valcook = 0;
	$listetab[]= $valcook;
	$listeserial = serialize($listetab);
	setcookie('listedone', $listeserial, mktime(0,0,0,12,31,2037));
	include('listsond.php');
	
	} else {
	
	if(isset($_COOKIE['listedone'])) {
	$listeserial = $_COOKIE['listedone'];
	$listetab=unserialize($listeserial);
	$liste=$_COOKIE['listedone'];
	$alreadydone=unserialize($liste);
	foreach($listetab as $alreadydone) {
		echo $alreadydone . '<br/>';
	}
	include('listsond.php');
	}
	}
	
//echo $alreadydone.' blabla';
 
 
	
 
?>
 
</fieldset>
 
</body>
</html>
 
et mon fichier listsond.php:
<?PHP
$sql='SELECT * FROM sondages WHERE id_sond !="'.$alreadydone.'"';
$result=mysql_query($sql)or die(mysql_error());	
 
while ($row=mysql_fetch_array($result)) {
	echo "<div class='indiv2'>
	<form id='ch_sond' name='ch_sond' method='POST' action='affrep.php'>
	<input type='label' id='numsond' name='numsond' value=' ".$row['id_sond'] ."'>
	<input type='hidden' id='quest' name='quest' value='" . $row['quest_sond'] ."'>
	
	sondage n° ' ". $row['id_sond'] . "' | '" . $row['nom_sond'] . "' | '". $row['quest_sond'] ."' <input 
 
type='submit' name='Valider' id='valider' value='choisir'><hr/><br/></form>";
	}
 
?>
 
Une idée de comment récupérer toutes les valeurs et pas seulement la dernière ?

Merci bien !

ViPHP
ViPHP | 1136 Messages

10 juin 2010, 09:05

Slt ,

Il y a des incohérences dans ton code :
//tu récupére la valeur sérialisé de to ncookie
$listeserial = $_COOKIE['listedone'];
//tu désérialize
$listetab=unserialize($listeserial);

//là ca commence , tu fait une nouvelle copie de ton cookie sérialisé
$liste=$_COOKIE['listedone'];
//tu re-désérialize
$alreadydone=unserialize($liste);

//et là rien ne va plus , tu parcours ton tableau , en écrasant $alreadydone
        foreach($listetab as $alreadydone) {
                echo $alreadydone . '<br/>';
        }


Sinon , tu peux par exemple simplement créer une chaine à partir de ton tableau
$chaine = implode( ',', $listetab);
Puis dans ta requete , tu utilises NOT IN:
$sql='SELECT * FROM sondages WHERE id_sond NOT IN ('.$chaine.')';
Ch.