Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1505 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Cannot modify header information - headers already sent by

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cannot modify header information - headers already sent by

n°2377566
Groody
Utilisez MES smileys §
Posté le 02-03-2021 à 17:36:26  profilanswer
 

Salut !
 
Je suis en train de migrer des scripts d'un serveur/hébergeur à un autre serveur/hébergeur.
 
Ca n'est pas transparent, ça coince pas mal, mais j'avance.
 
Sauf là, je bloque.
 
Via un .sh j'appelle un fichier PHP qui génère une image. L'image est bien générée.
Mais j'ai ces 2 erreurs qui sortent dans le log :
 
"Cannot modify header information - headers already sent by"
 
D'après ce site : https://stackoverflow.com/questions [...] ror-in-php c'est parceque l'entête est écrit après le fichier (si j'ai bien compris).
J'ai donc modifié l'ordre des lignes à la fin du code, mais ça ne change rien, j'ai toujours les erreurs.
Et là, ça me dépasse.
 
Est-ce que quelqu'un aurai une idée svp ?
 
 
 
Le code initial finissait par :

Code :
  1. ...
  2. $heatmap->setImageFormat('jpeg');
  3. $heatmap->setImageCompressionQuality($quality);
  4. $file = $heatmap->getImageBlob();
  5. file_put_contents('/home/clients/ddd/www.ddd.com/www/dossier/'.$finalfilename, $file);
  6. if ($returnFileAtEnd){
  7.     header("Content-Type: image/jpeg" );
  8.     echo $file;
  9. }else{
  10.     $result = array();
  11.     $result['status'] = 'OK';
  12.     $result['GeneratedAt'] = date('Y-m-d H:i:s');
  13.     header("Content-Type: application/json" );
  14.     echo json_encode($result);
  15. }
  16. die();


 
 
 
 
Je l'ai modifié par :

Code :
  1. ...
  2. if ($returnFileAtEnd){
  3.     header("Content-Type: image/jpeg" );
  4.     echo $file;
  5. }else{
  6.     $result = array();
  7.     $result['status'] = 'OK';
  8.     $result['GeneratedAt'] = date('Y-m-d H:i:s');
  9.     header("Content-Type: application/json" );
  10.     echo json_encode($result);
  11. }
  12. die();
  13. $heatmap->setImageFormat('jpeg');
  14. $heatmap->setImageCompressionQuality($quality);
  15. $file = $heatmap->getImageBlob();
  16. file_put_contents('/home/clients/ddd/www.ddd.com/www/dossier/'.$finalfilename, $file);


 
mais pas mieux...
 
 
 
L'erreur complète est :

Citation :

PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/clients/ddd/www.ddd.com/www/dossier/mon-fichier.php:186) in /home/clients/ddd/www.ddd.com/www/dossier/mon-fichier.php on line 317
 
Warning: Cannot modify header information - headers already sent by (output started at /home/clients/ddd/www.ddd.com/www/dossier/mon-fichier.php:186) in /home/clients/ddd/www.ddd.com/www/dossier/mon-fichier.php on line 317


---------------
Vidéo Concorde Air France | www.kiva.org
mood
Publicité
Posté le 02-03-2021 à 17:36:26  profilanswer
 

n°2377568
Groody
Utilisez MES smileys §
Posté le 02-03-2021 à 17:59:51  profilanswer
 

Avant de poster, j'avais lu plein de trucs sur le net, et ça ne marchait pas.
 
Mais là apparemment j'ai trouvé la soluce : ajouter ceci ob_start();  après la ligne <?php
 
Je n'ai plus d'erreur !
 [:groody]


---------------
Vidéo Concorde Air France | www.kiva.org
n°2377644
MaybeEijOr​Not
but someone at least
Posté le 03-03-2021 à 14:34:30  profilanswer
 

Bonjour,
 
Vérifier qu'il n'y ait pas de BOM en début de fichier, c'est typiquement le problème qui peut conduire à cet avertissement.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2377645
Groody
Utilisez MES smileys §
Posté le 03-03-2021 à 15:11:44  profilanswer
 

Je ne sais pas ce que c'est, mais je vais chercher et tester.
Merci :)


---------------
Vidéo Concorde Air France | www.kiva.org
n°2377649
Groody
Utilisez MES smileys §
Posté le 03-03-2021 à 15:25:56  profilanswer
 

D'après cette explication, mes fichiers sont pourtant ok (en UTF8)
https://www.hesk.com/knowledgebase/index.php?article=87
 
 
https://zupimages.net/up/21/09/xi0o.png


---------------
Vidéo Concorde Air France | www.kiva.org
n°2377659
MaybeEijOr​Not
but someone at least
Posté le 03-03-2021 à 17:59:20  profilanswer
 

Sur quel fichier as-tu fait le test ? Celui que tu as modifié avec ob_start() ? Parce qu'il a pu être convertit lors de ta modification.

 

Après ce n'est pas forcément le BOM le problème, mais si ça fonctionnait avant c'est quand même le plus probable. Passes-tu d'une version de PHP à une autre ? Mais bon je vois mal une méthode mise à jour entre deux versions PHP qui se mettrait à envoyer un header qu'elle n'envoyait pas avant.

 

Sinon, le problème vient de tout ce qui peut précéder ton appel au header, or tu ne montres qu'une très courte partie du code.


Message édité par MaybeEijOrNot le 03-03-2021 à 17:59:38

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2377918
rufo
Pas me confondre avec Lycos!
Posté le 06-03-2021 à 15:46:35  profilanswer
 

Ca peut être un espace qui se trouve avant <?php en début de fichier ou alors un espace généré par une fonction qui ne fait pas son taf du fait du changement de serveur (et donc de version d'une lib).
 
Fait afficher toutes les erreurs de php pour ne rien rater.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Cannot modify header information - headers already sent by

 

Sujets relatifs
Erreur Code:Blocks : ' cannot find ... '[Perl] Récupérer une information dans un retour SOAP
Recherche informationtab cannot be resolved to a variable
Cannot modify header information - headers already sentWarning: Cannot modify header information - headers already sent by..
Cannot modify header information - headers already sent by[PHP] Warning: Cannot modify header information - headers already...
Warning: Cannot modify header information - headers already sent bypb avec le"Cannot modify header information - RESOLU
Plus de sujets relatifs à : Cannot modify header information - headers already sent by


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR