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 :

Cannot send session cache limiter - headers already sent [Fait]


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut Cannot send session cache limiter - headers already sent
    Bonjour,
    J'ai ce message qui s'affiche lorsque j'ouvre une page :
    [citation]
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\totalezinzin\config\js.html:130) in C:\wamp\www\totalezinzin\config\session.php on line 3
    [/citation]

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php 
    include_once("config/js.html"); 
    include_once('config/session.php');
    include_once("config/param.php");
    include_once('config/fct.php');
    ?>
    </head>
    Tout fonctionne correctement hors mis ce message !
    Je sais que je dois commencer par session_start();
    Si je met l'include de la session avant celui du js.html , je n'ai plus d'erreur mais alors j'ai un problème dans mon code...
    Je dois absolument avoir tout d'abord mon js.html qui ne comporte que des fonctions..

    Comment pourrais-je éviter le problème ? :s

  2. #2
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    voici ce que contenait mon session.inc.php :

    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
     
    <?php
    /********************************************************************************* GERER LA SESSION DE L'UTILISATEUR *************************************************************************************/
    session_start();
    define ('SESSION_TIMEOUT', "1800"); // définition du timeout de la session (ici , apres 1800 sec -> deco ! )
     
    if(isset($_SESSION["username"]))
    {
        echo('<script language="javascript"> setStatus(true,"'.$_SESSION["username"].'");</script>');
        // On vérifie si le temps d'inactivité n'a pas été dépassé
        if(time()-$_SESSION['last_access'] > SESSION_TIMEOUT)
        {
            logout();
        }
        else
        {
            // On stocke l'heure de dernière connexion
            // time s'exprime en secondes à partir du 01/01/70 à 00:00:00
            $_SESSION['last_access'] = time();
        }
    }
    else
      echo('<script language="javascript"> setStatus(false," ");</script>');
     
     
    ?>
    Solution : j'ai sorti le session_start(); du module , et je l'ai mis avant le "include' du js.html..
    ça fonctionne.. mais je trouve plus structuré de le laisser dedans..
    J'aimerais savoir si c'est possible

  3. #3
    Membre émérite Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Points : 2 589
    Points
    2 589
    Par défaut
    Oui, c'est possible.

    Vérifie bien que tu n'as pas laissé un espace avant l'ouverture de la balise php placé devant ton session_start();.

    Ce lien pourrait t'être utile...
    Pensez à utiliser les ressources disponibles en Dev. Web :
    (x)HTML : Cours (X)HTML / FAQ (X)HTML
    CSS : Cours CSS / FAQ CSS / Galerie CSS
    Javascript : Cours / FAQ / Sources
    Mon site : Développeur Web Freelance

  4. #4
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Et bien c'est exactement comme indiqué plus haut :/ je n'y vois pas de mauvais placement :o

    Enfin.. j'vais garder ma deuxième solution alors ^^

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    C'est sans doute le premier include qui affiche du code JS ou HTML, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once("config/js.html");

  6. #6
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par Yogui Voir le message
    Salut

    C'est sans doute le premier include qui affiche du code JS ou HTML, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once("config/js.html");
    Et bien j'ai uploadé tout sur le net.. c'est encore pire :
    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
     
    <head>
       <?php session_start();?>
      <title> Vente d'articles divers , vêtements - TotaleZinzin Shop </title>
      <meta http-equiv="Content-Type" content="text/html"; charset="iso-8859-1" />
      <meta name="author" content="Tnourji M." />
    <meta name="owner" content="Tnourji M. & TotaleZinZin" />
    <meta name="description" content="Vous voulez achetez moins chère? par ici!/>
    <meta name="keywords" content="Vêtements,objets,acheter,occasion,moins chère,prix,jouets,totale,zinzin,totale zinzin"/> 
           <link rel="stylesheet" media="screen" type="text/css" title="Design" href="tzdesign.css" />
     
    <?php
    include_once("config/js.html"); 
    include_once('config/session.php');
    include_once("config/param.php");
    include_once('config/fct.php');
     
     
    ?>
    </head>
    Et pourtant :

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /¨¨¨¨/public_html/index.php:2) in /¨¨¨¨/public_html/index.php on line 2

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /¨¨¨¨/public_html/index.php:2) in /¨¨¨¨/public_html/index.php on line 2
    à s'arracher les cheveux !

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Si tu relis bien ce qui est expliqué ici, je pense que tu comprendras très bien où est le problème :
    http://php.developpez.com/faq/index....s_already_sent
    http://g-rossolini.developpez.com/tu...concepts#LVI-E

  8. #8
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par Yogui Voir le message
    Si tu relis bien ce qui est expliqué ici, je pense que tu comprendras très bien où est le problème :
    http://php.developpez.com/faq/index....s_already_sent
    http://g-rossolini.developpez.com/tu...concepts#LVI-E
    Et bien j'ai bien compris qu'il y'avait un flux déjà envoyé au client.. mais même en première commande du <head> ça ne fonctionne pas , étonnant..
    Enfin j'l'ai mis en toute première ligne et pas de problème..

    J'aurai appris quelque chose ^^ Merci.

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Oui, c'est justement le <head> qui est le contenu déjà envoyé.
    Il faut bien faire la distinction entre un header HTTP et un header HTML, or <head> fait partie de la seconde catégorie tandis que ton erreur est relative à la première

  10. #10
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Merci pour ces commentaires instructifs

    ps: en local avec wampserver , il ne me causait aucun problème si je mettais le session_start() un peu plus loin :s

  11. #11
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Cela dépend aussi de ces directives du php.ini :
    • error_reporting
    • display_errors

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

Discussions similaires

  1. Cannot send session cache limiter - headers already sent
    Par lea.soineca dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2014, 14h06
  2. session_start() : Cannot send session cache limiter - headers already sent
    Par Keweed dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/09/2009, 10h14
  3. Cannot send session cache limiter
    Par ChTiRiBi dans le forum Langage
    Réponses: 6
    Dernier message: 02/06/2008, 01h06
  4. Réponses: 2
    Dernier message: 18/12/2007, 21h59
  5. Réponses: 1
    Dernier message: 24/06/2007, 20h16

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