Selon ce manuel : http://us2.php.net/setcookie, je dois définir le cookie avant toute autre chose.
Voici mon code de cookie :
if (isset($_COOKIE['watched_ads'])){
$expir = time()+1728000; //20 jours
$ad_arr = unserialize($_COOKIE['watched_ads']);
$arr_elem = count($ad_arr);
if (in_array($ad_id, $ad_arr) == FALSE){
if ($arr_elem>10){
array_shift($ad_arr);
}
$ad_arr[]=$ad_id;
setcookie('watched_ads', serialize($ad_arr), $expir, '/');
}
}
else {
$expir = time()+1728000; //20 jours
$ad_arr[] = $ad_id;
setcookie('watched_ads', serialize($ad_arr), $expir, '/');
}
Comme vous pouvez le voir, j'utilise des variables pour définir le cookie.
Les variables proviennent d'une requête mysql et je dois effectuer la requête d'abord. Cependant, si je le fais, je recevrai un message d'erreur :
Cannot modify header information - headers already sent by ...
L'erreur pointe vers la ligne où je définis le cookie ci-dessus.
Que dois-je faire ?
MISE À JOUR :
Je fais ceci avant la partie setCookie :
$ad_id=$_GET['ad_id'];
$query2 = "SELECT * FROM classified WHERE classified.ad_id = '$ad_id'";
$results2 = mysql_query($query2) or die(mysql_error());
$row2 = mysql_fetch_array($results2);
$cat = $row2['category'];
$action=$row2['action'];
$sql_table='';
$num_rows = mysql_num_rows($query_results);
if ($num_rows != 0){
ICI VIENT LA PARTIE SETCOOKIE