Rechercher : dans
Par :

"session_start" et "header()"

Dernière réponse le 12 nov 2009 à 05:31:29 hektoumayo, le 18 mai 2005 à 22:03:40 
 Signaler ce message aux modérateurs

Salut,
Voila j'ai fait un script dans lequel session_start et header( )n'est pas au début du script. J'ai des messages d'erreur du style :

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1\www\config.inc.php3:2) in c:\program files\easyphp1\www\inscription.php3 on line 23

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1\www\config.inc.php3:2) in c:\program files\easyphp1\www\inscription.php3 on line 23

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1\www\config.inc.php3:2) in c:\program files\easyphp1\www\inscription.php3 on line 25

Qu'est ce que je peux alors faire pour contourner ce problème. J'ai essayé de lire une solution à ce problème sur un site mais je n'ai rien compris. Si quelqu'un avait une reponse claire ça serait vraiment sympa.
Pour info ,je possède la derniere version de EasyPHP.
Merci d'avance.

Meilleures réponses pour « "session_start" et "header()" » dans :
[PHP] Headers already sent by..... Voir Lorsque 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ù...
Bad pool caller / Header VoirSymptômes Un écran bleu d'affiche avec le message suivant : Bad Pool Caller Bad Pool Header Résolution Le message d'erreur Bad Pool Caller ou Bad Pool Header signifie que l'appel d'une application a échoué. Il est généralement suivi d'un certain...
Les balises dans la partie 'head' VoirAvant tout : rappel sur le doctype La partie head Balises meta Mots clés Description Déclaration de la langue du site Catégorie Auteur Restrictions pour les moteurs de recherche Adresse de la page Logiciels utilisés pour la...
Faire fonctionner une carte wifi atheros Voir*1. Les Dépôts *2. Linux-headers *3. Madwifi-tools **Remarque *4. Charger les modules *5. Vérifier *6. Un cas spécifique:AR5007EG *Pour finir La plupart des commandes sont à taper en étant root (administrateur) 1. Les...

1

kilian, le 18 mai 2005 à 22:49:34
  • +6

Salut... Ben pas le choix, il faut que ces instructions soient en début de script. Il ne faut pas qu'un seul caractère de texte soit généré avant....

Répondre à kilian

2

hektoumayo, le 18 mai 2005 à 23:55:43

Salut , regarde stp cette page :

http://www.lephpfacile.com/howto/index.php?p=10

Plus particulirement le script du fichier "index.php" tu vera qu'il y a un "session_start" au milieu du script. COmment cela se fait ?

Répondre à hektoumayo

3

kilian, le 19 mai 2005 à 00:02:29

La première partie ce sont des tests sur les Variables post reçues.
Ensuite c'est connexion Sql puis envoi de requête.

Il n'ya là aucun envoi de texte du genre echo ou print etc... Ce sont des opérations qui n'ont pas encore construit la page à envoyer au client.

La génération de texte provoque l'envoi des headers (en-têtes Http), on ne peux plus les retravailler après...

Je me suis fait piéger ya deux jours, car j'avais cette erreur de "headers already sent".
J'ai traîné pendant 15 minutes alors que l'erreur venait de quelques espaces en tout début de page :-)

Répondre à kilian

4

hektoumayo, le 19 mai 2005 à 00:35:10

Moi j'ai mis au début du script include("config.php") - tu sais le fichier ou tu defini le serveur , l'utilisateur et le mot de passe de la base de donnés- .Est ce que tu pense que c a cause de sa ?

Répondre à hektoumayo

5

kilian, le 19 mai 2005 à 00:39:29

Et si tu mets ce passage (le include) en commentaire ça donne la même erreur?

Répondre à kilian

6

Alcyane, le 6 jui 2007 à 18:56:17

Hello !
Juste pour remercier Kilian : grâce à lui je viens de gagner un temps fou ! (j'avais laissé deux espaces avant mon session start() ) !!!

Répondre à Alcyane

7

MiMiX, le 4 nov 2007 à 19:12:38

Bonjour,
Je suis sur ce problème depuis 2h j'implore votre aide.

l'erreur :

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/lou/insa/Web/Final/index_deux.php:1) in /home/lou/insa/Web/Final/index_deux.php on line 2

le code :

<?php

session_start();

?>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>



<head>



</head>



<body>



</body>

</html>

Répondre à MiMiX

8

Ssylvainsab, le 4 nov 2007 à 19:16:16

Salut.

Cette erreur dit que tu as déjà envoyé les headers en affichant du texte.
output started at /home/lou/insa/Web/Final/index_deux.php:1
Tu as donc envoyé du texte à la ligne 1 du fichier /home/lou/insa/Web/Final/index_deux.php
Est-ce que, par hasard, ton fichier n'est pas inclus dans un autre ?
--
Sylvain

Répondre à Ssylvainsab

20

latino58, le 3 mai 2008 à 15:59:38

Salut,
Voila j'ai fait un script dans lequel session_start et header( )n'est pas au début du script. J'ai des messages d'erreur du style :

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1\www\config.inc.php3:2) in c:\program files\easyphp1\www\inscription.php3 on line 23

je précise que le fichier est inclus dans un autrre fichier (include)

dans un forum tu as posé la question a quelqun qui avait un probleme sans donner la reponse .....serais tu gentil de bien vouloir m'eclairer....
merci

Répondre à latino58

21

Ssylvainsab, le 3 mai 2008 à 16:34:57
Répondre à Ssylvainsab

9

MiMiX, le 4 nov 2007 à 19:22:12

La page que j'essaie d'afficher est réduite à son plus strict minimum. J'obtient l'erreur avec le code affiché ci dessus. Je ne fait aucun include ou require, aucun header et il ny a qu'un espace entre <?php et session_start().
Je comprends vraiment pas...

Répondre à MiMiX

10

Ssylvainsab, le 4 nov 2007 à 19:28:23

Peut-être qu'il y a une sorte de caractère invisible au début de ton fichier.
Je crois que c'est possible (entre autres) si tu as édité ton fichier sous deux systèmes différents.
Efface le < de <?php, et "efface" ce qu'il y a avant, même si apparemment, tu n'effaces rien.
Ensuite, remets le chevron <, sauvegarde et essaye à nouveau.
--
Sylvain

Répondre à Ssylvainsab

11

MiMiX, le 4 nov 2007 à 19:33:13

Il semble que ce soit le nom du mon fichier qui pose problème (index_deux.php). J'ai recréé un fichier (index2.php) et tout marche bien. C'est à n'y rien comprendre. Merci pour ton aide Sylvain en tout cas.
Bonne soirée!

Répondre à MiMiX

12

MiMiX, le 4 nov 2007 à 19:35:13

Effectivement tu dois avoir l'explication, je n'ai pas pu vérifier le fichier est effacé. Mais je suis sous linux alors que mon collègue est sur windobe... Merci encore pour tant de lucidité un dimanche soir :)

Répondre à MiMiX

14

Goelano, le 25 déc 2007 à 12:53:18
  • +5

Merci pour vos infos, qui m'ont permis de trouver une solution pour le même problème : Cannot send session cache limiter - headers already sent. Je crée un site ouèbe chez Free (http://sivom.ambert.free.fr) avec Windows Vista, EasyPHP 2.0b1, phpMyAdmin 2.9.11, et chez free.fr avec phpMyAdmin - 2.11.3. Dès ma première page (index.php) j'ai eu l'erreur qui nous a tous embêté, lorsque cette page était chez Free (j'utilise FileZilla), mais elle ne provoquait pas d'erreur en local (avec EasyPHP) ! J'ai vérifié si un caractère pouvait être généré avant mon session_start(), s'il n'y avait pas de lignes vides, etc, le problème persistait.
Je crée mes textes.php avec Bloc-notes, et je les sauvegardais (fichier, enregistrer sous) avec Type : Tous les fichiers et Codage UTF-8. Lorsque j'ai changé ce dernier paramètre, c'est-à-dire Codage ANSI, le problème a disparu !
Ce qui signifie que pour Free, les textes.php en UTF-8 ne sont pas bien "digéré" : Free ne comprend bien que l'ANSI !
Allez Free, évolue un peu !

Répondre à Goelano

15

El Hassan, le 1 jan 2008 à 23:46:24

Y a un Espace derriere <php?,
Efface le !:!
Et après ça marchera
"Warning: session_start(): Cannot send session cookie" easyphp

Répondre à El Hassan

16

benditcool, le 12 jan 2008 à 19:44:40

Bonjour à tous,
j'avais le même problème. Il y a une chose qui n'a pas été mentionnée.
J'utilise php pour générer du xsl à partir d'un xml. Pour utiliser les caractères spéciaux comme l'espace insecable j'ai mis le fichier php en utf-8.
J'avais donc ce warning. Je l'ai passé en code ANSI et ca marche.
Beaucoup d'erreurs proviennement d'encodage de fichier dans le monde du developpement Web ( cause plusieurs techno, plusieurs editeurs etc.). Il faut penser parfois à vérifier le charset des pages Web etc.

Entre utf-8 et iso-latin, ANSI...

Cordialement,
Benjamin

Répondre à benditcool

48

Mx, le 9 mai 2009 à 21:58:13

L'encodage au format ANSI fonctionne !!!!!!!!!!!!!!!!
Je ne cromprend toujours pourquoi parcontre ?

Merci !!!

Répondre à Mx

49

le père, le 10 mai 2009 à 07:43:02

Bonjour

Il y a des problèmes avec certains éditeurs (Notepad++) en UTF8 parce qu'ils insèrent un caractère (BOM pour Byte Order Mark, prévu par le standard) invisible en début de fichier. Donc avant le <?php. Donc problème pour les headers.
On peut très bien garder son source PHP en UTF8 à condition de l'enregistrer sans BOM.

Répondre à le père

50

cyrilherve, le 22 mai 2009 à 16:16:25

J'ai le mm probleme ,, j'utilise dreamweaver,,, comment est que je peux passer mon fichier index en ANSI
svp
cdlt

Répondre à cyrilherve

51

jsp47, le 23 mai 2009 à 14:14:48
  • +2

Bonjour, je ne sais pas si c'est possible avec Dreamweaver, je ne l'utilise jamais pour le php ,mais télécharge si tu ne l'as pas notepad++ une fois installé ouvre ton fichier qui coince et va dans le menu format, déroule et clique sur convertir en utf8 sans bomenregistre le fichier et envoie le par ftp,cela doit marcher si pas d'autres erreurs de header.
Bonne chance
JSP

Répondre à jsp47

17

fabzz40, le 6 avr 2008 à 09:41:54

Merci

Répondre à fabzz40

18

kyros, le 9 avr 2008 à 00:35:19

Free supporte l utf 8 ... on balance pas de connerie comme ça ...

à mon avis quand tu as converti tes fichiers, tu as créé des caractères cabalistiques (é -> @#$#@$ ) ...

pour moi ça tourne nickel et j ai du grec.

je conseille pour les nouveaux, débutants et tout le monde d ailleurs d utiliser >>> notepad++ <<<.

Il a intégré des fonctions de conversions de fichiers simples, et il supporte tout les langages de prog.

Répondre à kyros

19

archeboc, le 13 avr 2008 à 15:23:43

Notepad++ est super, mais cela ne l'empêche pas de me rendre dingue avec cette histoire de caractère invisible.
Il a une fonction qui permet de basculer un fichier de ANSI en UTF8 (et dans une myriade d'autres formats).

J'ai essayé tous les trucs donnés ici. Aucun ne marche.

Je suis en localhost, avec ms4w.

Archeboc.

Répondre à archeboc

22

moimoi, le 4 jui 2008 à 06:13:42

Peut-être qu'il y a une sorte de caractère invisible au début de ton fichier.
Je crois que c'est possible (entre autres) si tu as édité ton fichier sous deux systèmes différents.
Efface le < de <?php, et "efface" ce qu'il y a avant, même si apparemment, tu n'effaces rien.
Ensuite, remets le chevron <, sauvegarde et essaye à nouveau.


Mercii Beaucoup pour ton aide car au bout de 1h, je voulai me jeté par la fenetre , Merci Encore

Répondre à moimoi

23

badidonc, le 19 aoû 2008 à 12:42:38

Franchement les gars un grand merci

j'ai crée un espace membre en local (truc de base) avec les pages index membre inscription deconnexion
tout est OK bien content je met sa sur mon ftp dans un dossier a par sa marche impec (content de moi).

sachant que je veut mettre sa dans la racine du site obliger de changer index en indexlog etc.. (j'utilise le bloc note et je modifie en même temps les header et form action j'enregistre)
donc je remet sa en ligne et la Oo sa marche plus.. jme dit c'est surement a cause du changement de nom..

je remet en index dans un dossier a par et la pareil.. marche plus..
sa fait deux jours que je suis la dessus je viens de réenregistrer mes page en ANSI et pouf.. sa marche ^^

c'est dingue qu'une petite chose aussi insignifiante empêche tout de marcher.

donc un grand merci a ceux qui on lancer cette hypothèse.

Répondre à badidonc

24

thekid06, le 30 aoû 2008 à 01:41:46

Désolé tout le monde mais mois sa ne marche pas !
J'ai fais egalement un espace membres mais voici mon code d'erreur enfin mes :
Warning: session_start() [function.session-start]: open(/mnt/167/sda/5/a/thekid06/sessions/sess_39a5ffb81faca44­e16982191e9521955, O_RDWR) failed: No such file or directory (2) in /mnt/167/sda/5/a/thekid06/espace_membres/connexion.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/167/sda/5/a/thekid06/espace_membres/connexion.php:1) in /mnt/167/sda/5/a/thekid06/espace_membres/connexion.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/167/sda/5/a/thekid06/espace_membres/connexion.php:1) in /mnt/167/sda/5/a/thekid06/espace_membres/connexion.php on line 1

Warning: Unknown(): open(/mnt/167/sda/5/a/thekid06/sessions/sess_39a5ffb81faca44­e16982191e9521955, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/167/sda/5/a/thekid06/sessions) in Unknown on line 0

et pourtant je suis sur qu'il ny a rien devant mon sessionstart ! J'ai enregistrer plusieur fois mes page en ANSI mais sa ne marche tjr pas...

Répondre à thekid06

25

thekid06, le 30 aoû 2008 à 01:48:00
  • +1

Sayé 2minutes mon suffit !
Chez free il faut créer un dossier "sessions" a la racine du site !

Sa marche parfaitement !

Répondre à thekid06

27

@lex, le 4 déc 2008 à 23:50:47

Salut,

Moi aussi, j'ai résolu mon problème en créant un dossier 'sessions' à la racine du site ...

Répondre à @lex

28

Benji09, le 11 déc 2008 à 04:08:56

Ouf apres le 25eme commentaire je trouve la solution grace a toi: mettre un repretoire sessions....je suis chez free aussi enfin je teste chez eux pour une cliente...
je ne suis pas en utf-8 mais en iso

Répondre à Benji09

26

BLitZ, le 29 oct 2008 à 15:22:10

Merci les gars ,oui en fait faut vraiment pas d'espace avant le session start()...

Répondre à BLitZ

29

mec perdu, le 19 déc 2008 à 11:04:27

Bonjour j'ai un probleme avec mon Header. j'utilise qu'un seule header qui est sensée mon ramener a la page index

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/6/6/dj.slyders/authentification.php:4) in /mnt/102/sda/6/6/dj.slyders/authentification.php on line 25

Répondre à mec perdu

30

kilian, le 19 déc 2008 à 11:23:09
Répondre à kilian
Collection CommentÇaMarche.net