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 :

probleme de sortie html sur un header


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par défaut probleme de sortie html sur un header
    Bonjour a tous,
    j'ai un problème bizarre.
    J'ai écrie des pages en PHP.
    c'est pages fonctionne bien en local sur mon pc, mais ne fonctionne pas mon hebergement web.

    le serveur me retourne une erreur comme quoi j'ai fait une sortie html avant mon header, alors que ce n'est pas vrai.....

    voici les code qui pose probleme:

    fonction.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
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
     
    <?php
    /****************************************************/
    /* Page qui va contenir les fonctions PHP annexe    */
    /****************************************************/
     
    /**
    /* affiche l'entete XHTML
    **/
    function entete_html($lien,$lien2,$pourGalerie=0)
    {
    	echo '
    	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    	<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    		<head>
    			<title>Porte Folio</title>
    			<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    			<link rel="stylesheet" media="screen" type="text/css" title="Design" href="'.$lien.'" />';
     
    		if($pourGalerie==1)
    		{
    			echo '
    			<script type="text/javascript" src="./../general/js/prototype.js"></script>
    			<script type="text/javascript" src="./../general/js/scriptaculous.js?load=effects,builder"></script>
    			<script type="text/javascript" src="./../general/js/lightbox.js"></script>
    			<script type="text/javascript" src="./../general/js/fonction.js"></script>
    			<link rel="stylesheet" href="./../general/lightbox.css" type="text/css" media="screen" />';
    		}
     
    		echo'	<link rel="icon" type="image/png" href="'.$lien2.'.png" />
    			<!--[if IE]><link rel="shortcut icon" type="image/x-icon" href="'.$lien2.'.ico" /><![endif]-->
    
    		</head>
    		<body>
    		<div id="divGlobal">
    			<div id="banniere"></div>
    		';
    	echo"\n";
     
    	menu_haut();
     
    }
     
     
    /**
    /* affiche le pied de page XHTML
    **/
    function pied_page_html()
    {
    	echo '		<div id="pied_page"><b>Design &amp; Programmation By Hannibal</b></div>
    			</div>
    		</body>
    	</html>';
     
    }
     
    /**
    * fonction qui crée et retourne un objet pdo
    **/
    function gest_pdo()
    {
    	try
    	{
    		$PARAM_hote=''; 
    		$PARAM_port='';
    		$PARAM_nom_bd=''; 
    		$PARAM_utilisateur=''; 		
    		$PARAM_mot_passe='';
    		$pdo=new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, 			$PARAM_mot_passe);
     
    		//$pdo = new PDO('uri:./dsn.txt');
    	}
     
    	catch(Exception $e)
    	{
    			echo 'Erreur : '.$e->getMessage().'<br />';
    			echo 'N° : '.$e->getCode();
    	}
     
    	return $pdo;
    }
     
    /**
    * Affiche le menu 
    **/
    function menu_haut()
    {
    	//recupération des menus
    	$pdo=gest_pdo();
    	$res=$pdo->query("SELECT * from menu");
     
    	echo "<div id='divMenuHaut'>
    			<table id='tableMenuHaut'>
    				<tr>";
     
    				//on place dans les TD chaque menu
    				while($onglet=$res->fetch(PDO::FETCH_OBJ))
    					echo "<td class='tdMenuHaut' onclick=''><a class='aMenuHaut' href='".$onglet->lien."' >".$onglet->nom."</a></td>";
     
    			echo "<td></td>
    				</tr>
    			</table>
    		</div>";
     
    	$res->closeCursor();
    }
     
    /**
    * Affiche la liste de galerie a droite
    **/
    function affiche_nav($index=0)
    {
    	$pdo=gest_pdo();
     
    	echo "<div id='divNavigation'>
    		<dl>";
    	if($index==0)
    	{
    		//recupération de toutes la liste de galerie parent
    		$res=$pdo->query("SELECT * from galerie WHERE idparent IS NULL");
    		while($parent=$res->fetch(PDO::FETCH_OBJ))
    		{
     
    			echo "<dt><a class='aDtGalerie' href='./galerieFils.php?idPere=".$parent->id."'>".$parent->nom."</a></dt>";
     
    			//recupération des fils
    			$res2=$pdo->query("SELECT * from galerie WHERE idparent='".$parent->id."'");
    			while($fils=$res2->fetch(PDO::FETCH_OBJ))
    			{
    				echo "<dd><a class='aDdGalerie' href='afficheImgGalerie.php?idGalFils=".$fils->id."'>".$fils->nom."</a></dd>";
    			}
    			$res2->closeCursor();
    		}
    		$res->closeCursor();
    	}
    	else
    	{
    		//recupération de toutes la liste de galerie parent
    		$res=$pdo->query("SELECT * from galerie WHERE idparent IS NULL");
    		while($parent=$res->fetch(PDO::FETCH_OBJ))
    		{
     
    			echo "<dt><a class='aDtGalerie' href='./pages/galerieFils.php?idPere=".$parent->id."'>".$parent->nom."</a></dt>";
     
    			//recupération des fils
    			$res2=$pdo->query("SELECT * from galerie WHERE idparent='".$parent->id."'");
    			while($fils=$res2->fetch(PDO::FETCH_OBJ))
    			{
    				echo "<dd><a class='aDdGalerie' href='./pages/afficheImgGalerie.php?idGalFils=".$fils->id."'>".$fils->nom."</a></dd>";
    			}
    			$res2->closeCursor();
    		}
    		$res->closeCursor();
     
    	}
    	echo "
    		</dl>
    	</div>";
     
    }
    ?>
    [/PHP]
     
    traitementAjoutCommentaire.php
    [PHP]
    <?php
    include('./../general/fonction.php');
    $pdo=gest_pdo();
     
    $idImg=$_GET['idImg'];
     
    if(isset($_GET['ajout']))
    {
    	$idGal=$_GET['idGal'];
    	$_POST['pseudo']=htmlentities($_POST['pseudo']);
    	$_POST['contenu']=htmlentities($_POST['contenu']);
     
    	$pdo->exec("INSERT INTO commentaire VALUES('',".$pdo->quote($_POST['pseudo']).",".$pdo->quote($_POST['contenu']).",'0','".$idImg."','".time()."')");
    }
    header('Location: ./afficheImgGalerie.php?idGalFils='.$idGal.'');	
    ?>
    et voici le message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Cannot modify header information - headers already sent by (output started at /home/www/virtual/porte-folio.redheberg.com/htdocs/general/fonction.php:1) in /home/www/virtual/porte-folio.redheberg.com/htdocs/pages/traitementAjoutCommentaire.php on line 15
    Voila voila, donc si vous avez une idée pour resoudre mon probleme...

    Il y a surement une petite erreur que je ne vois pas vue que ces mon code....

    Merci d'avance pour votre aide

    PS: le code fonctionne sans probleme sous cette forme:
    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
     
    <?php
    /*include('./../general/fonction.php');
    $pdo=gest_pdo();*/
    try
    {
    	$PARAM_hote=''; 
    	$PARAM_port='';
    	$PARAM_nom_bd=''; 
    	$PARAM_utilisateur=''; 		
    	$PARAM_mot_passe='';
    	$pdo=new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, 			$PARAM_mot_passe);
     
    }
     
    catch(Exception $e)
    {
    		echo 'Erreur : '.$e->getMessage().'<br />';
    		echo 'N° : '.$e->getCode();
    }
     
    $idImg=$_GET['idImg'];
     
    if(isset($_GET['ajout']))
    {
    	$idGal=$_GET['idGal'];
    	$_POST['pseudo']=htmlentities($_POST['pseudo']);
    	$_POST['contenu']=htmlentities($_POST['contenu']);
     
    	$pdo->exec("INSERT INTO commentaire VALUES('',".$pdo->quote($_POST['pseudo']).",".$pdo->quote($_POST['contenu']).",'0','".$idImg."','".time()."')");
    }
    header('Location: ./afficheImgGalerie.php?idGalFils='.$idGal.'');	
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comme indiqué dans l'erreur, le problème se situe dans fonction.php ligne 1.
    Ca peut être un espace, une ligne vide etc. ou ton fichier est encodé en UTF8 avec BOM.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par défaut
    pas de ligne vide, ni d'espace avant la balise PHP....
    UTF-8 avec BOM ????

    dans l'onglet encodage de notepad++ (mon editeur), il est ecrie UTF-8 sans BOM...

    comment faire pour voir si le probleme vient de la ?

    pourquoi cela fonctionnerai en local, mais pas sur un serveur ?


    merci de ton aide

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que tu peux joindre le fichier sur le forum ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par défaut
    Je pense que oui
    Le voici
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par défaut
    J'ai essayé de commenté chaque fonction de fonction.php, et toujours le même probleme
    (j'ai essayé de commenté toutes les fonctions sauf gest_pdo(), mais le message d'erreur n'a pas changer )

    j'ai aussi essayé de virée les echo dans mon bloc catch de la fonction gest_pdo, mais aucune amélioration

    Quelqu'un a une idée ?

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comment on passe de ajoutcommentaire.php a fonction.php ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par défaut
    fonction.php est include dans traitementAjoutCommentaire.php

    le cycle est de cette forme
    ajoutCommentaire->traitementAjoutCommentaire->afficheImgGalerie

    tous les fichiers font une include de fonction.php

    le premier lien est effectué via un formulaire, et le second via le header.

    voila voila

    Si cela ne repond pas a ta question, c'est que je ne l'ai pas comprise

    (Le probleme peut venir du lien entre les pages ???? )

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que tu peux nous mettre traitementAjoutCommentaire.php pour tenter de reproduire ton problème ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par défaut
    bien sur, il est dans le premier poste (en version qui fonctionne )
    voici la version qui ne fonctionne pas

    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
     
    <?php
    include('./../general/fonction.php');
    $pdo=gest_pdo();
     
    $idImg=$_GET['idImg'];
     
    if(isset($_GET['ajout']))
    {
    	$idGal=$_GET['idGal'];
    	$_POST['pseudo']=htmlentities($_POST['pseudo']);
    	$_POST['contenu']=htmlentities($_POST['contenu']);
     
    	$pdo->exec("INSERT INTO commentaire VALUES('',".$pdo->quote($_POST['pseudo']).",".$pdo->quote($_POST['contenu']).",'0','".$idImg."','".time()."')");
    }
    header('Location: ./afficheImgGalerie.php?idGalFils='.$idGal.'');	
    ?>
    je le joint aussi


    Merci de ton aide
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [2010] probleme d'interpretation des mails html sur office 2010
    Par ploufleouf74 dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 29/02/2012, 17h23
  2. Réponses: 4
    Dernier message: 23/09/2011, 22h21
  3. [Portlet] Comment intervenir sur le header HTML
    Par cocula dans le forum Portails
    Réponses: 3
    Dernier message: 04/04/2007, 10h43
  4. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 17h55
  5. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 23h50

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