Code php plante help une débutante
flo
-
flo -
flo -
Bonjour,
J'ai construit une unique page html qui sert à télécharger 4fichiers pdf assez lourds.
Pour ne pas que le visiteur attende une éternité avant de pouvoir voir le pdf je voudrais forcer la fenêtre de téléchargement à s'ouvrir lorsque le visiteur clique sur le lien quel que soit le navigateur , car IE et Firefox ne réagissent pas du tout de la meme facon et pour l'instant IE ouvre le fichier directement dans le navigateur.
J'ai pompé un code php sur internet mais étant ultra débutante en php j'ai beaucoup de mal à l'intégrer dans ma page html. Voici mon code
J'ai essayé de faire en sorte que le code soit le plus clair possible. J'espère que c'est lisible. Je test d'abord ce code sur le 1er fichier: b.pdf
LE PROBLEME:
Firefox: ne charge plus la page index.php mais ouvre directement la fenêtre de téléchargement du fichier pdf.
IE: ouvre bien la page index mais avec les messages d'erreurs que voici:
Notice: Undefined variable: GET in C:\wamp\www\mayactu2\index.php on line 8
Warning: readfile(C:/wamp/www/pdf/b.pdf) [function.readfile]: failed to open stream: No such file or directory in C:\wamp\www\mayactu2\index.php on line 17
Où est le problème?
Pour info je teste en local pour l'instant.
Merci d'avance pour votre aide précieuse.
J'ai construit une unique page html qui sert à télécharger 4fichiers pdf assez lourds.
Pour ne pas que le visiteur attende une éternité avant de pouvoir voir le pdf je voudrais forcer la fenêtre de téléchargement à s'ouvrir lorsque le visiteur clique sur le lien quel que soit le navigateur , car IE et Firefox ne réagissent pas du tout de la meme facon et pour l'instant IE ouvre le fichier directement dans le navigateur.
J'ai pompé un code php sur internet mais étant ultra débutante en php j'ai beaucoup de mal à l'intégrer dans ma page html. Voici mon code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Mxxxxxxxxxx </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="index.css" />
<?php
header("Content-Disposition: attachment; filename=".$GET['id'].";" );
$filename = $_SERVER['DOCUMENT_ROOT'] ."pdf/b.pdf"; ligne 8
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename ='.basename($filename));
header("Content-Type: application / pdf");
header("Content-Transfer-Encoding: binary");
//header('Content-Length:'.Taille du fichier($filename));
readfile($filename); ligne 17
?>
</head>
<body>
<div id="global">
<h1> titre</h1>
<p>Nous mettons également à votre disposition les présentations de nos intervenants:</p>
<div id="presentation">
<ul>
<li> Présentation de Monsieur B. A télécharger
<a href="pdf/b.pdf?id=15" title="présentation de Monsieur B"> ICI </a> </li>
<li> Présentation du Docteur C. A télécharger
<a href="pdf/c.pdf" title="présentation du Docteur C"> ICI </a> </li>
<li> Présentation du Docteur R . A télécharger
<a href="pdf/r.pdf" title="présentation du Docteur R"> ICI </a> </li
<li> Présentation de Monsieur Bé. A télécharger
<a href="pdf/berard.pdf" title="présentation de Monsieur Bé"> ICI </a> </li>
</ul>
</div>
J'ai essayé de faire en sorte que le code soit le plus clair possible. J'espère que c'est lisible. Je test d'abord ce code sur le 1er fichier: b.pdf
LE PROBLEME:
Firefox: ne charge plus la page index.php mais ouvre directement la fenêtre de téléchargement du fichier pdf.
IE: ouvre bien la page index mais avec les messages d'erreurs que voici:
Notice: Undefined variable: GET in C:\wamp\www\mayactu2\index.php on line 8
Warning: readfile(C:/wamp/www/pdf/b.pdf) [function.readfile]: failed to open stream: No such file or directory in C:\wamp\www\mayactu2\index.php on line 17
Où est le problème?
Pour info je teste en local pour l'instant.
Merci d'avance pour votre aide précieuse.
A voir également:
- Code php plante help une débutante
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
1 réponse
Bonjour,
Les fonctions que tu tentes d'utiliser ici sont utiles lorsque tu génères un PDF et non pour ce que tu veux en faire.
La en clair tu dis d'abord que cette page est une page html puis tu dis que c'est un document PDF. Normal que les navigateurs ne s'y retrouvent plus.
Tu es partie sur une mauvaise piste et je n'ai pas de piste concernant le forçage du paramétrage du navigateur concernant l'ouverture ou le téléchargement des fichiers.
Si tu veux ouvrir directement tes pdf dans Firefox, télécharges Foxit Reader... Ce qui veut dire que l'ouverture ou la sauvegarde ne nait pas du code mais de la capacité du navigateur à afficher le contenu reçu : je peux : j'affiche, je peux pas : je propose de télécharger.
Pour preuve, va dans outils, option, application de firefox 3.5 et tu verras que c'est le navigateur qui choisit s'il doit ouvrir ou télécharger.
Cf la fonction header : https://www.php.net/manual/fr/function.header.php (exemple #1 dans ton cas)
Cordialement,
Archeus
Les fonctions que tu tentes d'utiliser ici sont utiles lorsque tu génères un PDF et non pour ce que tu veux en faire.
La en clair tu dis d'abord que cette page est une page html puis tu dis que c'est un document PDF. Normal que les navigateurs ne s'y retrouvent plus.
Tu es partie sur une mauvaise piste et je n'ai pas de piste concernant le forçage du paramétrage du navigateur concernant l'ouverture ou le téléchargement des fichiers.
Si tu veux ouvrir directement tes pdf dans Firefox, télécharges Foxit Reader... Ce qui veut dire que l'ouverture ou la sauvegarde ne nait pas du code mais de la capacité du navigateur à afficher le contenu reçu : je peux : j'affiche, je peux pas : je propose de télécharger.
Pour preuve, va dans outils, option, application de firefox 3.5 et tu verras que c'est le navigateur qui choisit s'il doit ouvrir ou télécharger.
Cf la fonction header : https://www.php.net/manual/fr/function.header.php (exemple #1 dans ton cas)
Cordialement,
Archeus
Donc d'après toi ce n'est pas possible.
J'ai également trouvé ce code javascript sur google qu'en pense tu? Mauvaise piste également?
En javascript, force la fonction download:
# <SCRIPT language="JavaScript">
# <!--
# function Download(){
# // Donne l'url du fichier ici :
# var adresse= adresse_de_mon_fichier;
# document.writeln('<HTML><HEAD><META HTTP-EQUIV="Refresh" CONTENT="1;URL=' + adresse + '"></HEAD><BODY>Downloading...</BODY></HTML>');
# }
# -->
# </SCRIPT>
Comment aurais-tu pu te répondre toute seule? Il suffit simplement que tu crèes un fichier test.htm avec comme contenu :
et l'ouvrir avec IE pour te rendre compte que ceci lira le PDF.
Excuse moi du retard mais je n'ai eu le temps de réfléchir à ce problème qu'aujourd'hui.
Je te remercie de ton aide. Mais tout cela n'est pas encore de mon niveau je vais m'y prendre autrement.
Merci de ton aide.