rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

"session_start" et "header()"

hektoumayo, le mercredi 18 mai 2005 à 22:03:40
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.
Répondre à hektoumayo  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kilian, le mercredi 18 mai 2005 à 22:49:34
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
hektoumayo, le mercredi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kilian, le jeudi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
hektoumayo, le jeudi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kilian, le jeudi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alcyane, le vendredi 6 juillet 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
MiMiX, le dimanche 4 novembre 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Ssylvainsab, le dimanche 4 novembre 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
latino58, le samedi 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Ssylvainsab, le samedi 3 mai 2008 à 16:34:57
Répondre à Ssylvainsab

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
MiMiX, le dimanche 4 novembre 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Ssylvainsab, le dimanche 4 novembre 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
MiMiX, le dimanche 4 novembre 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
MiMiX, le dimanche 4 novembre 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

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Ssylvainsab, le dimanche 4 novembre 2007 à 20:34:52
--

Sylvain
Répondre à Ssylvainsab

14


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Goelano, le mardi 25 décembre 2007 à 12:53:18
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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
El Hassan, le mardi 1 janvier 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
benditcool, le samedi 12 janvier 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

17


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
fabzz40, le dimanche 6 avril 2008 à 09:41:54
merci
Répondre à fabzz40

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kyros, le mercredi 9 avril 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
archeboc, le dimanche 13 avril 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
moimoi, le vendredi 4 juillet 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


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 badidonc, le mardi 19 août 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
Logiciels pertinents trouvés dans les téléchargements
Télécharger Mouseless Browsing 0.4.3Mouseless Browsing - Cette extension Firefox permet de naviguer dans les pages web sans utiliser la souris ! C'est utile si vous avez un...Catégorie: Extensions Firefox
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « "session_start" et "header()" »