IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Cookies] Cannot modify header information - headers already sent by [Fait]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 53
    Points : 39
    Points
    39
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  2. #2
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Selon Manouel

    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.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 53
    Points : 39
    Points
    39
    Par défaut Merci
    Merci beaucoup pour ta réponse, je vais essayer de traduire maintenant...
    sinon j'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  4. #4
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html>
    <head>
    <title>Accueil</title>
    C'est pas bon tu écris quand même avant ton set cookie !!

  5. #5
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    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 à <?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 53
    Points : 39
    Points
    39
    Par défaut
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/02/2010, 20h32
  2. Réponses: 3
    Dernier message: 04/10/2009, 14h15
  3. Réponses: 2
    Dernier message: 20/08/2009, 22h27
  4. Réponses: 1
    Dernier message: 17/07/2007, 11h49
  5. Réponses: 4
    Dernier message: 16/07/2007, 13h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo