Probléme avec IE pour ouvrir un fichier php qui génère un fichier PDF avec FPDF [Résolu]

Signaler
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009
-
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009
-
Bonjour,

voilà mon problème, j'ai un fichier php qui génère un fichier pdf grace à fpdf. J'utilise un bouton qui lance une fonction javascript dans laquelle j'utilise window.open('mon_fichier.php').

Sous FireFox 3, aucun problème, il ouvre un nouvel onglet avec le pdf que mon fichier php génère,
mais sous IE7, il m'ouvre bien une nouvelle fenêtre mais avec la page d'erreur "Internet Explorer ne peut pas afficher cette page Web".

Pourtant en utilisant un je n'ai aucun problème.

Cela fait des jours que je cherche et je ne trouve pas pourquoi IE refuse mon javascript.

Quelqu'un aurait une idée ?

11 réponses

Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009

Bonjour à tous,

à force de tourner et retourner le problème dans tous les sens, j'ai enfin résolu mon problème ... Vive IE !!! (c'est ironique, bien sûr)

Devant l'obstination d'IE à me pourrir la vie, j'ai contourné mon problème :
ma fonction imprimer() en javascript était la suivante :
function imprimer()
{
   window.open("mon_fichier_php_qui_genere_un_pdf.php");
}

je l'ai transformée ainsi :
function imprimer()
{
   var fenetre;
   fenetre = window.open();
   fenetre.location.replace("mon_fichier_php_qui_genere_un_pdf.php");
}
et ça fonctionne impeccable ! De plus je n'ai rien eu à modifier dans mon fichier php, il est tel qu'il était au départ.
Je n'ai ni eu besoin d'appeler la fonction header(), ou encore d'avoir recours au méthodes ob_start(), ob_end_flush() ou ob_end_clean() de php ou encore des éventuels $pdf->Open() ou $pdf->Close().

Par contre je suis passé entre temps de Acrobat Reader 8.1.4 à Acrobat Reader 9.1 ... Je ne sais pas si cela peut avoir une incidence mais je préfère le préciser.

Quoiqu'il en soit mon pdf généré par du php s'affiche impeccablement dans une nouvelle fenêtre sous IE et FireFox. Merci à tous pour vos suggestion et remarques qui m'ont conduites à la solution.

J'invite tous les développer qui ont un problème similaire à tester ma méthode afin de voir si cela pourrait contourner le problème de plugin pour l'affichage des pdf avec IE.

Merci à tous.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Salut,

et je ne trouve pas pourquoi IE refuse mon javascript
... p'têt qu'IE c'est de la mer eu air dé eu ??

Un bout de script à nous monter ?

Cordialement,

Kohntark -
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009

C'est pas peut-être, c'est sur qu'IE ça en est :p ...

Voilà le code de la fonction javascript :

function imprimer()
{
  window.open("imprimer.php");
}

et voilà un extrait du code du fichier appelé :

<?
session_start();
include("include/config.php");
require('fpdf/fpdf.php');
class PDF extends FPDF
{
   // Déclaration de fonctions
}

$pdf=new PDF('P', 'mm', array(80,120));
$pdf->SetMargins(0,0,0);
$pdf->AddPage();

// Récupération de variables de session, requêtes sql, traitement des informations et construction du document
// !!!! Il y a également des lignes vides séparant certaines lignes de code !!!!

unset($_SESSION["variables_de_session"]);

$pdf->Output();
?>

et voilà le code de création du bouton qui appel la fonction imprimer() :

print "<center></center>";

Avec FireFox : ouverture d'un nouvel onglet avec le pdf généré, aucun problème
Avec IE : ouverture d'une nouvelle fenêtre de navigateur mais qui affiche la page d'erreur "Internet Explorer ne peut pas afficher cette page Web"

Voilà ...
Messages postés
338
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
4 janvier 2011

Bonjour,

Question idiote mais as tu essayé en baissant la protection anti-popup? car au max cela peut produire ce que tu dis...
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009

Bonjour faiblard

Je viens de faire mieux, j'ai désactivé le système anti-popup, je viens de tester et c'est toujours pareil.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Il n'y a aucune ligne, même vide, avant (<?) ou après ($pdf->output()) ta création ?
Je crois savoir qu'il y a un bug lorsque tu génères dynamiquement le PDF et que le plugin adobe est installé.

Cordialement,

Kohntark -
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009

Non, aucune ligne, qu'elle soit vide ou non avant (<?) ni après ($pdf->output()).
Je vais voir si je trouve quelque chose sur ce problème de plugin adobe avec IE ... Mais je laisse le SUJET ouvert, qui sait, peut-être que quelqu'un a déjà été confronté à ce problème ...
Ce qui est étonnant c'est que sous IE ça fonctionne avec un mais pas avec un window.open ...
Messages postés
338
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
4 janvier 2011

l'adresse d'ouverture de la popup est bonne? pas de soucis de pare-feu ou chose comme ça?

Au passage remplace t'es <? par des <?php ça mange pas de pain et c'est tellement mieux
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009

L'adresse est bonne et pas de soucis de pare-feu. De plus le code tel qu'il est fonctionne avec FireFox.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Tiens, j'ai retrouvé une FAQ qui parle du pb de plugin :
http://www.fpdf.org/fr/FAQ.php#q3
Pas certain que ça vienne de là mais tente tout de même de désactiver le contrôle.

De plus le code tel qu'il est fonctionne avec FireFox.
=>
Ca ne veux pas forcement dire que ton code est bon, il peut y a voir des erreurs qui passent avec FF et pas avec IE, et réciproquement.
Comme le signale Faiblard pense aux <?php, non seulement ça ne mange pas de pain mais surtout c'est indispensable si tu veux que tes scripts continuent à fonctionner dans un avenir proche.

Au pire si tu ne t'en sort pas, passe par un fichier temporaire plutôt que généré le PDF à la volée, ou alors poste l'intégralité de ton code que l'on puisse tester.

Cordialement,

Kohntark -
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009

Poster l'intégralité du code est impossible, à cause de la clause de confidentialité.
Mais je viens d'essayer mon code avec Safari, il fonctionne aussi et pourtant je n'ai rien modifié du tout.

J'ai oublié de préciser que l'affichage de toutes les pages ou de tout code php se fait via AJAX dans des balises
ou autre ... mais bon ça fonctionne avec FireFox et Safari, il n'y a que avec IE que ça veut pas ... Je commence à me dire que mon code est bon mais que c'est IE qui déconne.

Je vais tester différentes méthodes.
Merci pour le lien Kohntark.

Je continu de chercher.