Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/09/2006, 14h12   #1
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 41
Points : 14
Points : 14
Par défaut [Cookies] Cannot modify header information - headers already sent by

Bonjour,
Je sais cette erreur est décrite ici :
http://php.developpez.com/faq/?page=...s_already_sent
Mais n'arrive pas à trouver de correspondance avec mon code !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
<html>
<head>
<title>Accueil</title>
 
<?
$gcc_file         = "Applets/Compteur.txt";	// name of the file where the number of visitors is kept
$gcc_cookie_name  = "test";			// name of the cookie (eg: your site's name)
$gcc_cookie_value = "Sev";			// value of the cookie (eg: something about your site)
$gcc_cookie_life  = "3600";			// cookie lifespan. Default is 900s (15min)
$IP 		  = "Applets/IP.wri";		// nom du fichier de log des IP
 
// ------------------------- Creation of the counter and IP files ----------------------- //
 
if(!file_exists("$gcc_file"))
{
	$gcc_fp=fopen("$gcc_file","a");
	fputs($gcc_fp,"0");
	fclose($gcc_fp); }
 
if(!file_exists("$IP"))
{
	$fp=fopen("$IP","a");
	fclose($fp); }
 
// -------------------------- Ne pas compter les IP suivantes -------------------------- //
 
if($REMOTE_ADDR == "127.0.0.1")
  { 
  $gcc_fp=fopen($gcc_file,"r+");
  $gcc_hits=fgets($gcc_fp,10);
  fclose($gcc_fp);
  $gcc_hits = "Off ($gcc_hits)";
  }
else
{
 
// ----------------- Visitor already came : the cookie is here ------------------------- //
if(isset($_COOKIE["$gcc_cookie_name"]) && $_COOKIE["$gcc_cookie_name"] == "$gcc_cookie_value")
  {
  $gcc_fp=fopen($gcc_file,"r+");
  $gcc_hits=fgets($gcc_fp,10);
  fclose($gcc_fp);
  }
 
// ----------------- A new visitor is coming: creation of a cookie ---------------------- //
else
  {
    setcookie($gcc_cookie_name, $gcc_cookie_value,time()+$gcc_cookie_life, "");
  $gcc_fp=fopen($gcc_file,"r+");
  $gcc_hits=fgets($gcc_fp,10);
  $gcc_hits++;
  fseek($gcc_fp,0);
  fputs($gcc_fp,$gcc_hits);
  fclose($gcc_fp);
// ------------------------------------ Log des IP -------------------------------------- //
  $date = date ("d-m-y");
  $heure = date ("H:i:s");
  $fp = fopen("$IP","a");
  $dom = gethostbyaddr($REMOTE_ADDR);
  fputs ($fp, $gcc_hits.": Le $date à $heure : $REMOTE_ADDR ($dom)\n");
  fclose($fp);
  }
 
}
?>
 
</head>
 
<body>
</body>
</html>
Il y a toujours cette erreur à la ligne setcookie !!!
Je deviens dingue !!! chez moi l'erreur n'apparait que sur firefox, pas sur IE mais apparait aussi sur IE à l'extérieur (je sais pas pour FF)

MERCI MERCI MERCI à celui qui trouvera le problème !!!!

Ps : le site est herbergé chez free...
seb nantes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2006, 14h16   #2
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Selon Manouel

Citation:
setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace. If output exists prior to calling this function, setcookie() will fail and return FALSE. If setcookie() successfully runs, it will return TRUE. This does not indicate whether the user accepted the cookie.
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2006, 15h03   #3
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 41
Points : 14
Points : 14
Par défaut Merci

Merci beaucoup pour ta réponse, je vais essayer de traduire maintenant...
sinon j'ai essayé ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<html>
<head>
<title>Accueil</title>
 
<?
$gcc_cookie_name  = "test";			// name of the cookie (eg: your site's name)
$gcc_cookie_value = "Sev";			// value of the cookie (eg: something about your site)
$gcc_cookie_life  = "3600";			// cookie lifespan. Default is 900s (15min)
 
setcookie($gcc_cookie_name, $gcc_cookie_value,time()+$gcc_cookie_life, "");
?>
 
</head>
 
<body>
</body>
</html>
cela n'a rien changé, l'erreur provient de la syntaxe de setcookie ?
seb nantes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2006, 15h11   #4
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Code :
1
2
3
<html>
<head>
<title>Accueil</title>
C'est pas bon tu écris quand même avant ton set cookie !!
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2006, 15h12   #5
Membre régulier
 
Homme Mallory
Étudiant
Inscription : septembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Nom : Homme Mallory
Âge : 22
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : septembre 2006
Messages : 213
Points : 75
Points : 75
Envoyer un message via MSN à Oprichnik Envoyer un message via Skype™ à Oprichnik
Non, tu ne peux pas mettre de texte html avant d'utiliser la fonction setcookie() (dans ton cas les balises html du dessus)

PS : Préfère <?php à <?
Oprichnik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2006, 15h13   #6
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 41
Points : 14
Points : 14
Ok, j'ai compris, le code présenté ici est appelé par un include par une autre page dans laquelle il y déjà un entête.
Donc j'ai mis le code avant l'entête de la page maitresse et il n'y a plus d'erreur.
Merci beaucoup pour ton aide !
seb nantes est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h02.


 
 
 
 
Partenaires

Hébergement Web