Re: php et erreur : PHP Warning: Cannot modify header inform…

Page principale

Répondre à ce message
Auteur: Edgar Bonet
Date:  
À: guilde
Sujet: Re: php et erreur : PHP Warning: Cannot modify header information - headers already sent by...
Bonsoir !

Anne a écrit :
> Je veux utiliser dans mon php
> header("Content-type: text/plain");
> header('Content-Disposition: attachment; filename="'.$filename_vcf.'"');


Je t'avais envoyé jeudi, en message privé, un patch pour faire
exactement ça (sauf que c'est "text/vcard"). Dans ce patch, j'encadre à
l'intérieur d'une fonction l'envoi du début de la page HTML :

-- 8< ------------------------------------------------------------------
diff --git a/index.php b/index.php
index 24d474b..8062a43 100644
--- a/index.php
+++ b/index.php
@@ -18,6 +18,9 @@
*/

  error_reporting(E_ALL & ~E_NOTICE); // report all errors except notices
+
+function print_html_header()
+{
  echo '
      <!DOCTYPE html>
      <html lang="en">


@@ -35,6 +38,7 @@
              <div class="boxShadows" id="headline">
                  <h1>csv2vcf: convert *.csv to *.vcf</h1>
  ';
+}
  /* === examples for different vCard Versions according to Wikpedia ===
  vCard 2.1


[...]
-- 8< ------------------------------------------------------------------

Le but est de *ne pas* envoyer ce HTML quand ce que tu veux est envoyer
un vCard en pièce jointe.

> Le début du fichier php
>
> <!DOCTYPE html>
> <html lang="en">
> <head>
> [...]


Ceci, comme tout ce qui n'est pas entre "<?php" et "?>", est envoyé
textuellement par l'interpréteur PHP au client. Comme expliqué dans la
page que tu as lu, à partir du moment où tu envoies du contenu au
client, l'interpréteur envoie des en-têtes, si ce n'est déjà fait.

Solution : regarde comment c'est fait dans le patch que je t'ai envoyé.

À+,

Edgar.