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

cs_Franky57 7 Messages postés mercredi 18 mars 2009Date d'inscription 24 mars 2009 Dernière intervention - 18 mars 2009 à 14:54 - Dernière réponse : cs_Franky57 7 Messages postés mercredi 18 mars 2009Date d'inscription 24 mars 2009 Dernière intervention
- 24 mars 2009 à 10:53
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 ?
Afficher la suite 

Votre réponse

11 réponses

cs_Franky57 7 Messages postés mercredi 18 mars 2009Date d'inscription 24 mars 2009 Dernière intervention - 24 mars 2009 à 10:53
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Franky57
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 18 mars 2009 à 20:38
0
Utile
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 -
Commenter la réponse de kohntark
cs_Franky57 7 Messages postés mercredi 18 mars 2009Date d'inscription 24 mars 2009 Dernière intervention - 19 mars 2009 à 08:49
0
Utile
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à ...
Commenter la réponse de cs_Franky57
faiblard 338 Messages postés samedi 3 février 2007Date d'inscription 4 janvier 2011 Dernière intervention - 20 mars 2009 à 09:15
0
Utile
Bonjour,

Question idiote mais as tu essayé en baissant la protection anti-popup? car au max cela peut produire ce que tu dis...
Commenter la réponse de faiblard
cs_Franky57 7 Messages postés mercredi 18 mars 2009Date d'inscription 24 mars 2009 Dernière intervention - 20 mars 2009 à 10:18
0
Utile
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.
Commenter la réponse de cs_Franky57
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 20 mars 2009 à 10:42
0
Utile
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 -
Commenter la réponse de kohntark
cs_Franky57 7 Messages postés mercredi 18 mars 2009Date d'inscription 24 mars 2009 Dernière intervention - 20 mars 2009 à 10:58
0
Utile
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 ...
Commenter la réponse de cs_Franky57
faiblard 338 Messages postés samedi 3 février 2007Date d'inscription 4 janvier 2011 Dernière intervention - 20 mars 2009 à 11:14
0
Utile
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
Commenter la réponse de faiblard
cs_Franky57 7 Messages postés mercredi 18 mars 2009Date d'inscription 24 mars 2009 Dernière intervention - 20 mars 2009 à 11:42
0
Utile
L'adresse est bonne et pas de soucis de pare-feu. De plus le code tel qu'il est fonctionne avec FireFox.
Commenter la réponse de cs_Franky57
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 21 mars 2009 à 11:41
0
Utile
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 -
Commenter la réponse de kohntark
cs_Franky57 7 Messages postés mercredi 18 mars 2009Date d'inscription 24 mars 2009 Dernière intervention - 23 mars 2009 à 10:12
0
Utile
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.
Commenter la réponse de cs_Franky57

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.