Problème de cookie

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


cleden
WRInaute accro
WRInaute accro
 
Messages: 1192
Inscription: Lun Jan 06, 2003 22:17

Problème de cookie

Message le Sam Aoû 09, 2003 21:47

Salut tout le monde, je galère depuis un moment avec ces histoires de cookie:

$sql0="SELECT url FROM annuaire WHERE id='$id'";
$res0=mysql_query($sql0, $db);
if ($_COOKIE["clic_out"]!=$id)
{
$name = "clic_out[".$id."]";
setcookie($name, 1, time()+3600*24);
$sql1="SELECT clics_sortants FROM annuaire WHERE id='$id'";
$res1=mysql_query($sql1, $db);
while ($ligne = mysql_fetch_object ($res1))
{
$clics_sortants = $ligne->clics_sortants;
}
$clics_sortants = $clics_sortants + 1;
$sql2="UPDATE annuaire SET clics_sortants='$clics_sortants' where id='$id'";
$res2=mysql_query($sql2, $db);
}
while ($ligne1 = mysql_fetch_object ($res0))
{
echo "<script language='JavaScript'> document.location.replace('$ligne1->url'); </script>";
}


Le compteur en cause ne devrait s'incrementer que si le cookie n'existe pas or non seulement il s'incremente à chaque clic mais en plus le cookie ne se crée pas: Warning: Cannot modify header information - headers already sent by (output started at /home/capsizun/www/stats_clics.php:2) in /home/capsizun/www/stats_clics.php on line 12

Loïc.

Mirgolth
WRInaute passionné
WRInaute passionné
 
Messages: 622
Inscription: Lun Oct 14, 2002 11:25

Re: Problème de cookie

Message le Dim Aoû 10, 2003 8:46

cleden a écrit:Le compteur en cause ne devrait s'incrementer que si le cookie n'existe pas or non seulement il s'incremente à chaque clic mais en plus le cookie ne se crée pas: Warning: Cannot modify header information - headers already sent by (output started at /home/capsizun/www/stats_clics.php:2) in /home/capsizun/www/stats_clics.php on line 12


Salut,

Les cookies sont envoyés dans le header HTTP. Il faut donc que ton instruction setcookie() ( au même titre que header() ) soient executée avant que tu n'affiches du texte ( du code HTML )

Souvent, il arrive que texte affiché qui génère l'erreur soit juste un espace/ retour chariot avant <?php
Si par contre le texte envoyé est le début de ta page HTML tu peux regarder du coté des Output Control Functions pour bufferiser ce texte avant l'envoie du header HTTP.

Mirgolth


galle
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 114
Inscription: Ven Juil 18, 2003 18:31

Message le Dim Aoû 10, 2003 8:49

j'ajouterais : dans la mesure où tu mets :

while ($ligne1 = mysql_fetch_object ($res0))
{
echo "<script language='JavaScript'> document.location.replace('$ligne1->url'); </script>";
}
ca veut dire que tu as déjà envoyé du code (au moins <html> <head>, etc...)
et donc ton cookie ne peut etre envoyé, comme explicité sus-ditement.


cleden
WRInaute accro
WRInaute accro
 
Messages: 1192
Inscription: Lun Jan 06, 2003 22:17

Message le Dim Aoû 10, 2003 10:46

Ok, merci je vais essayer de voir ça... mais je ne vois pas trop comment resoudre le problème.


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités