Rechercher : dans
Par :

Session_start(): Cannot send session cache li

Dernière réponse le 18 sep 2009 à 13:08:09 isabelle, le 24 jun 2007 à 17:52:51 
 Signaler ce message aux modérateurs

Salut

Comment faire pour se débarrasser de : session_start(): Cannot send session cache limiter - headers already sent (output started at...
Sachant que je suis obligée de mettre des infos avant puisque le démarrage de ma session est dans un "if" ?

merci

Configuration: Windows XP
Firefox 2.0.0.4

Meilleures réponses pour « session_start(): Cannot send session cache li » dans :
[PHP] Headers already sent by..... VoirLorsque vous utilisez une fonction PHP qui manipule les en-têtes HTTP comme par exemple: header() setcookie() session_start() Il est important d'utiliser ces fonctions avant d'avoir généré le moindre flux vers le client. A partir du moment où...
Utiliser l'Administrateur caché de Vista VoirVista, comme XP, possède un compte nommé "Administrateur" mais il est caché et non activé par défaut. Pour que ce compte apparaisse dans la liste des utilisateurs à l'écran d'accueil, la méthode est différente selon que l'on utilise une version...
Afficher les extensions et les fichiers cachés sous Windows VoirPour afficher les extensions Solution simple Solution avec le registre Pour afficher les fichiers et les dossiers cachés Pour afficher les fichiers et les dossiers système Pourquoi afficher les extensions ? Lorsque vous ne voyez...
Vol de session TCP (TCP session hijacking) VoirLe vol de session TCP Le « vol de session TCP » (également appelé détournement de session TCP ou en anglais TCP session hijacking) est une technique consistant à intercepter une session TCP initiée entre deux machine afin de la détourner. Dans la...
Les clés de session VoirIntérêt d'une clé de session Les algorithmes asymétriques (entrant en jeu dans les cryptosystèmes à clé publique) permettent de s'affranchir de problèmes liés à l'échange de clé via un canal sécurisé. Toutefois, ces derniers restent beaucoup moins...

1

zefoots, le 24 jun 2007 à 18:28:19

Normalement le message d'erreur indique le nom du script php et le n° de ligne à partir de laquelle tu ne peux plus faire "session_start()" puisque le moteur php a déjà envoyé le header (le message dit "output started at [script1] in [script2] on line [line]" qui indique bien à partir de où il n'est plus possible de faire appel à session_start())

Il faut donc que tu appelles l'instruction session_start() avant que cette ligne soit exécutée.

En principe, le header (en tête de fichier) est envoyé dès que tu écris une instruction destinée à être interprétée par le navigateur (Internet Explorer, Firefox) du client ...

Par exemple, "echo '<html>';" est une instruction destinée au navigateur du client.


Euh, je suis pas bien sûr d'être clair. N'hésite pas me dire où ça coince. J'essayerai de reformuler autrement ...

Répondre à zefoots

2

isabelle, le 24 jun 2007 à 18:47:04

...Sachant que je suis obligée de mettre des infos avant puisque le démarrage de ma session est dans un "if" ?...

Répondre à isabelle

3

zefoots, le 24 jun 2007 à 19:47:43
  • +1

Le "if" n'est pas une instruction destinée au navigateur donc elle ne déclenche pas l'envoi du header. Le problème n'est pas lié à ton "if"

exemple 1:
<?php
echo 'bonjour';
session_start();
?>
cet exemple déclenche une erreur car l'instruction echo 'bonjour' est destinée au navigateur donc déclenche l'envoi du header. Or les sessions sont gérées dans les headers donc dans ce cas session_start() provoque une erreur car le header a déjà été envoyé au navigateur.

exemple 2:
<?php
if ($toto == 2) {
$toto++;
}
session_start();
?>
cet exemple ne déclenche pas d'erreur car le header n'a pas encore été envoyé car rien dans ce programme n'est destiné à être affiché par le navigateur.

Répondre à zefoots

4

Golgot55, le 27 jan 2009 à 20:30:41

Hello!

Cela fait bien longtemps que ces posts ont étés postés! lol Mais étant donné que ça vient de me sauver pour la conception de l'intranet de l'entreprise dans laquelle je travaille!

Je tenais tout de même à laisser un "merci" à Zefoots

Golgot55

Répondre à Golgot55

5

 Yuricol, le 18 sep 2009 à 13:08:09

Bonjour,

je tiens à préciser que je suis entiérement novice en php, pour cela que même avec les claires expliquations de Zefoots, je n'arrive à résoudre mon problème, je m'explique :

Je dispose d'un espace membre ou il est possible de protéger des pages, j'ai donc pris ce modéle de code qui fait partie de l'espace membre ----> page protégée.php dont voici le code :

<?php

//-------------------------------------------------||
// !!!! NE MODIFIER PAS CE FICHIER !!!! ||
//-------------------------------------------------||

//-- Fichier de configuration et fonction

require_once("../espace-membre/includes/conf.php");
require_once("../espace-membre/includes/template.php");
require_once("../espace-membre:includes/class/class.mysql.php");
require_once("../espace-membre:includes/class/class.espace.membre.php");

//-- Preparation de la class mysql

$mysql = new mysql;
$db_link = $mysql -> connexion_mysql($cheminbdd,$userbdd,$passbdd,$tablebdd);

//-- Preparation de la class espace membre

$espace_membre = new espace_membre;
$espace_membre -> parametres();

//-- Demarage des sessions

session_start();

//-- Protection de l'espace membre

$espace_membre -> protection($_SESSION['id_user']);

//--

?>
Votre contenue.
<?php

//-- Deconnexion de la base de données

$mysql -> deconnexion_mysql($db_link);

?>


j'ai donc repris exactement ce code et y est inséré mon contenu html, à l"endroit "votre contenue".

Je tiens à préciser que pour acceder à une page protégée sur mon site, il faut tout d'abord aller se loguer sur l'espace membre, etant ensuite identifié, il faut cliker sur un lien pour arriver sur une page qui elle n'est pas et n'a pas besoin d'être protéger, de cette page il faut choisir ensuite la page perso désirée qui elle comme je l'ai dit est protégée, je tiens aussi a dire que la page de l'espace membre reste ouvert, car quand on clique sur le lien une autre fenêtre s'ouvre.

voici l'erreur (le message) :

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homez.145/####/www/#######/####.php:1) in /homez.145/####/www/#######/####.php on line 4

En espérant qu'une personne pourra m'aider à corriger ce problème, je tiens a vous remercier d'avance pour votre aide.

Cordialement Yuricol.

Répondre à Yuricol
Collection CommentÇaMarche.net