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 :

Problème de header : headers already sent


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2005
    Messages : 20
    Par défaut Problème de header : headers already sent
    Bonjour à tous!

    Je reviens avec un problème de header (non, vous n'avez pas vu le titre...)

    En effet, je fais une simple création de fichier XML en PHP.
    Rien de bien compliqué, me direz-vous...

    Et bien, à croire que j'aime les choses compliquées...

    Quand je veux voir le fichier XML créé, il me donne le contenu des balises, précédé d'un "Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\projet\php\creation.php:1) in C:\wamp\www\projet\php\creation.php on line 92".

    Le pire? C'est que je ne vois pas du tout où j'ai pu écrire des données...



    Je vous donne le code, histoire d'agrémenter un peu. Au fait, j'utilise WAMP. Peut-être y a-t-il une extension à charger?

    Merci d'avance.

    fichier index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php 
     
    	require('php/creation.php');
     
    ?>
    fichier php/creation.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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    <?php
    	// En-têtes envoyées pour éviter la mise en cache du navigateur
    	//header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    	//header('Last-Modified:' . gmdate('D, d M Y H:i:s') . 'GMT');
    	//header('Cache-Control: no-cache, must-revalidate');
    	//header('Pragma: no-cache');
     
    	// Création du nouveau document XML
    	//header('1.0','charset=iso-8859-1');
     
     
    	$dom = new DOMDocument();
    	$dom->formatOutput = true;
     
    	// On se connecte à la base avec un fichier externe
    	require('connexion.php');
     
    	//on lance la requete
    	$requete = "SELECT * FROM damier";
    	$resultat = mysql_query($requete) or die (mysql_error("Erreur lors de l'accès aux données."));
     
     
    	// Création de l'élément racine <echiquier>
    	$reponse = $dom->createElement('echiquier');
    	$dom->appendChild($reponse);
     
    	//On boucle sur le resultat
    	while ($row = mysql_fetch_array($resultat))
    	{
    		if ($row['x'] == 0)
    		{
    			// Création d'une ligne, enfant de l'échiquier
    			$ligne = $dom->createElement('ligne');
     
    		}
     
    		// Création d'une case --> on n'associe pas encore les différents éléments
    		$case = $dom->createElement('case');
     
    			// On détermine couleurc
    			$couleurc = $dom->createElement('couleurc');
    			$couleurcText = $dom->createTextNode('' . $row['couleurc'] . '');
    			$couleurc->appendChild($couleurcText);
     
    			// On détermine x
    			$x = $dom->createElement('x');
    			$xText = $dom->createTextNode('' . $row['x'] . '');
    			$x->appendChild($xText);
     
    			// On détermine x
    			$y = $dom->createElement('y');
    			$yText = $dom->createTextNode('' . $row['y'] . '');
    			$y->appendChild($yText);
     
    			// Création d'un pion
    			$pion = $dom->createElement('pion');
     
    				// Classe du pion
    				$classe = $dom->createElement('classe');
    				$classeText = $dom->createTextNode('' . $row['classe'] . '');
    				$classe->appendChild($classeText);
     
    				// Couleur du pion
    				$couleur = $dom->createElement('couleur');
    				$couleurText = $dom->createTextNode('' . $row['couleur'] . '');
    				$couleur->appendChild($couleurText);
     
    				// Id du pion
    				$id = $dom->createElement('id');
    				$idText = $dom->createTextNode('' . $row['id'] . '');
    				$id->appendChild($idText);
     
     
    		// On peut maintenant emboiter les différents éléments
    		$pion->appendChild($classe);
    		$pion->appendChild($couleur);
    		$pion->appendChild($id);
     
    		$case->appendChild($couleurc);
    		$case->appendChild($x);
    		$case->appendChild($y);
    		$case->appendChild($pion);
     
    		$ligne->appendChild($case);
     
    		$reponse->appendChild($ligne);
    	}
     
    	// Conversion en chaine de caractères XML
    	$repXML = $dom->saveXML();
     
    	//affichage de l'arbre XML
    	header( "Content-Type: text/xml" );
    	echo $repXML;
     
    ?>

  2. #2
    Membre expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Par défaut
    Fais attention à ce qu'aucun de tes fichiers ne commence par un espace ou une ligne vide avant la balise ouvrante <?php

  3. #3
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2005
    Messages : 20
    Par défaut
    Merci de cette réponse rapide.

    Mais je peux t'assurer qu'il n'y a rien avant <?php.

  4. #4
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    met un error_reporting(E_ALL)en tout début pour voir si tout se défini bien (parfois ca donne des pistes de modification)

  5. #5
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2005
    Messages : 20
    Par défaut
    Ben, écoutez...

    Un ami développeur avait eu le même problème.
    C'était dû aux réglages serveur.
    Donc il avait juste remplacé WAMP 1.5 par le WAMP 2.0. Et à partir de là, ça marche.

    Ce n'est pas une solution propre, mais ça répond au problème.

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

Discussions similaires

  1. [PHP-JS] Problème sur le header : headers already sent
    Par sliderman dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2008, 12h54
  2. Réponses: 1
    Dernier message: 24/12/2006, 00h09
  3. Headers already sent problème ?
    Par loady dans le forum Langage
    Réponses: 3
    Dernier message: 13/11/2006, 10h58
  4. [PHP-JS] problème headers already sent
    Par charlene44 dans le forum Langage
    Réponses: 12
    Dernier message: 14/06/2006, 13h55
  5. [JpGraph] Header already sent
    Par grunk dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/02/2006, 16h54

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