Vous n'êtes pas identifié. Veuillez vous connecter ou vous inscrire.


Ecrire une réponse

Ecrire une réponse

Composez et envoyez votre nouvelle réponse

Vous pouvez utiliser : BBCode Images Binettes

Les champs marqués %s doivent être remplis avant d'envoyer ce formulaire.

Information obligatoire pour les invités


Information obligatoire

Revue du sujet (plus récents en tête)

12

Les cookies sont transmis via l'entête du message HTTP donc l'appel à setcookie intervient certainement après la définition du corps du message HTTP. Or, logiquement, une fois que tu commences à définir le corps du message tu ne peux plus revenir à l'entête.

11

je passe en résolu.

10

bonjour,

étant débutant, j'ai réalisé le script en plusieurs étapes.ce qui explique les ouvertures et fermetures de balises.
Je vais bien sur intégrer l'un dans l'autre.

Pour ce mon probleme, en effet il existait un espace (tabulation) devant <?php.
Je pensai que comme pour les autres languages, cela n'avait pas d'importance .
Hé bien Non ...

Après suppressions , ça marche Nickel..

encore merci à toi , toad et aussi à Nico pour votre patience avec des nuls comme moi

Merci encore et bonne journée.

9

1/ Tu as surement un caractère entre ?> et <?php, utilise un bon éditeur pour tout voir
2/ Tu m'expliques quel est l'intérêt de fermer les balises php pour aussitôt les réouvrir ? smile

8

PS: J'ai essayé de supprimer le 1er script , mais toujours le même probleme  :


-->"Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/1b/1a/home/www/index.php:2) in /home/users/00/1b/1a/home/www/index.php on line 22"

qui correspondent aux mêmes ligne

ligne 2 : <?php

...
ligne 22 :    setcookie('edwin_acceuil_cross',$nb_visite_visiteur,time()+365*24*3600);

7

<?php setcookie('edwin_byke_visiteur_8','visiteur_8', time() + 8*3600, null, null, false, true); // écriture cookie visite sur 8 heures?>// pas utilisé
<?php setcookie('edwin_byke_visiteur_6mois','visiteur_6mois', time() + 180*24*3600, null, null, false, true); // écriture cookie visiteur habitué sur 6mois?>//pas utilisé
<?php
     // Projet Personnel: compteur_cookie de visite utilisant un cookie.
   
     //Compte le nombre de personnes DIFFERENTES ayant accéder au site
     //(une partie du script est a reporter sur toutes les pages)
    
     // le 19/07/2010 essai modif avec intégration fidélité visiteur
   
     // Si pas de "compteur_cookie.txt"... le créer
     if(!file_exists("compteur_cookie.txt")) // création du compteur , ici txt
     {
     $compteur_cookie=fopen("compteur_cookie.txt","w");
     $hit=1; // Initialise a 1
     // Cree le COOKIE
     setcookie("Visite","ok",time()+365*24*3600); // 1 an
     }
     else{
     // Stocke les visites dans $hit
     $compteur_cookie=fopen("compteur_cookie.txt","r+");
     $hit=fgets($compteur_cookie,255);
     // Si pas de COOKIE...
     if(empty($_COOKIE["Visite"])){
     // Cree le COOKIE
     setcookie("Visite","ok",time()+365*24*3600); // 1 an
     // Incremente $hit
     $hit++;
     }
     }
     // Ecrit la valeur de $hit dans "compteur_cookie.txt"
     fseek($compteur_cookie,0);
     fputs($compteur_cookie,$hit);
     fclose($compteur_cookie);
     ?>
     <?php                                         // Ligne 36
     //ouverture de la base
     try
        {
           
            $bdd=new PDO('mysql:host=localhost; dbname=*****l','****','****');
        }
        catch(Exception $e)
        {
            die('erreur tu fais : ' .$e->getMessage());
        }
    $date_visite=date("d/m/y");
    $heure_visite=date('H,i');
    $IP_visite=$_SERVER['REMOTE_ADDR'];
       
    // vérification présence cookies ou creation   
        
     if(!isset( $_COOKIE['edwin_acceuil_cross']))
     {
        $nb_visite_visiteur=1;
        setcookie('edwin_acceuil_cross',$nb_visite_visiteur,time()+365*24*3600); // 1 an  // modif cookie 1 en variable=1//sup""""
       
    }
    else //si le cookie exite, on incrémente la valeur du cookie de 1 point
    {
    $nb_visite_visiteur= $_COOKIE['edwin_acceuil_cross'];
    $nb_visite_visiteur=$nb_visite_visiteur+1;
    setcookie('edwin_acceuil_cross',$nb_visite_visiteur,time()+365*24*3600);
    }
    //on imprime les valeur dans la base
    $nb_visite_visiteur= $_COOKIE['edwin_acceuil_cross'];
    echo $nb_visite_visiteur; //////////////////////////////////
    if ($nb_visite_visiteur==1)
    {
        if(!file_exists("nvxVisiteur_acceuil_cross.txt")) // création du compteur , ici txt
        {
            $compteur_cookie=fopen("nvxVisiteur_acceuil_cross.txt","w");
            $hit=1; // Initialise a 1
            fseek($compteur_cookie,0);
            fputs($compteur_cookie,$hit);
            fclose($compteur_cookie);
        }
        else
        {
            $compteur_cookie=fopen("nvxVisiteur_acceuil_cross.txt","r+");
            $hit=fgets($compteur_cookie,255);
            $hit++;
            fseek($compteur_cookie,0);
            fputs($compteur_cookie,$hit);
            fclose($compteur_cookie);
        }
   
   
    $nouveau="nouveau";   
    }       
    else
    {
    $nouveau="habitue" . $nb_visite_visiteur;
    }
   
   

    $bdd->query("INSERT INTO base_compteur_visite VALUES('','$date_visite','$heure_visite','$IP_visite','$nb_visite_visiteur','$nouveau')");
   
?>
   
   
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="fr" xmlns="http://www.w3.org/1999/xhrml">
<head>

    ***** page web*********

6

Il faut donc regarder ce qui se passe dans le fichier index.php à la ligne 36 smile

5

Bonjour
Désolé , mais je débute
Message complet :

Warning: Cannot modify header information - headers already sent by (output started at /home/users/00/1b/1a/home/www/index.php:36) in /home/users/00/1b/1a/home/www/index.php on line 56

4

Bonsoir,

Tu as négligé le plus important: de savoir quand est ce que tu as envoyé des données au client web:

-->"Warning: Cannot modify header information - headers already sent by (output started at /home/users/.....php:36) in /home etc.php  on line 56

Tu trouveras l'information après 'output started at...'

3

code complet jusque la page web :

<?php
     //ouverture de la base
     try
        {
           
            $bdd=new PDO('mysql:host=localhost; dbname=*****','*****','******');
        }
        catch(Exception $e)
        {
            die('erreur tu fais : ' .$e->getMessage());
        }
    $date_visite=date("d/m/y");
    $heure_visite=date('H,i');
    $IP_visite=$_SERVER['REMOTE_ADDR'];
       
    // vérification présence cookies ou creation   
        
     if(!isset( $_COOKIE['edwin_acceuil_cross']))
     {
        $nb_visite_visiteur=1;
        setcookie('edwin_acceuil_cross',$nb_visite_visiteur,time()+365*24*3600);
       
    }
    else //si le cookie exite, on incrémente la valeur du cookie de 1 point
    {
    $nb_visite_visiteur= $_COOKIE['edwin_acceuil_cross'];
    $nb_visite_visiteur=$nb_visite_visiteur+1;
    setcookie('edwin_acceuil_cross',$nb_visite_visiteur,time()+365*24*3600);
    }
    //on imprime les valeur dans la base
    $nb_visite_visiteur= $_COOKIE['edwin_acceuil_cross'];
    echo $nb_visite_visiteur; //////////////////////////////////
    if ($nb_visite_visiteur==1)
    {
        if(!file_exists("nvxVisiteur_acceuil_cross.txt")) // création du compteur , ici txt
        {
            $compteur_cookie=fopen("nvxVisiteur_acceuil_cross.txt","w");
            $hit=1; // Initialise a 1
            fseek($compteur_cookie,0);
            fputs($compteur_cookie,$hit);
            fclose($compteur_cookie);
        }
        else
        {
            $compteur_cookie=fopen("nvxVisiteur_acceuil_cross.txt","r+");
            $hit=fgets($compteur_cookie,255);
            $hit++;
            fseek($compteur_cookie,0);
            fputs($compteur_cookie,$hit);
            fclose($compteur_cookie);
        }
   
   
    $nouveau="nouveau";   
    }       
    else
    {
    $nouveau="habitue" . $nb_visite_visiteur;
    }
   
   

    $bdd->query("INSERT INTO base_compteur_visite VALUES('','$date_visite','$heure_visite','$IP_visite','$nb_visite_visiteur','$nouveau')");
   
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3......
<html xml:lang="fr" xmlns="http://www.w3.org/1999/xhrml">
<head>

etc....

</html>

2

bonsoir,

peut-on avoir le code complet de la page, du moins tout ce qui se trouve avant la balise DOCTYPE

PENSEZ a masquer vos identifiants si besoin

1

Vérification de l'existance du cookie,
s'il n'existe pas création création de celui-ci avec pour valeur une variable (nb visite de ce visteur soit 1)
s'il existe , incrémentation du nb de visite et modification du cookie avec cette nouvelle valeur....

C'est là que ça bug :
Ne créé pas le cookie et message d'erreur sur la page web en retour

-->"Warning: Cannot modify header information - headers already sent by (output started at /home/users/.....php:36) in /home etc.php  on line 56

if(!isset( $_COOKIE['edwin_acceuil_cross']))
     {
        $nb_visite_visiteur=1;
        setcookie('edwin_acceuil_cross',$nb_visite_visiteur,time()+365*24*3600); // Ligne 56
       
    }
    else //si le cookie exite, on incrémente la valeur du cookie de 1 point
    {
    $nb_visite_visiteur= $_COOKIE['edwin_acceuil_cross'];
    $nb_visite_visiteur=$nb_visite_visiteur+1;
    setcookie('edwin_acceuil_cross',$nb_visite_visiteur,time()+365*24*3600);
    }
etc...

Se trouve en entête, Aucun code html avant - avant la balyse DOCTYPE

Important : Marche trés bien en test sur wampserver mais pas quand je transfere sur "lescigales"


si quelqu'un peu m'aider .... Merci d'avance



Currently used extensions: pun_poll, pun_admin_manage_extensions_improved. Copyright © 2008 PunBB