[PHP]Probleme de download de fichier débugger moi STP ! c pr les pro !

Probleme de download de fichier débugger moi STP ! c pr les pro ! [PHP] - PHP - Programmation

Marsh Posté le 02-04-2003 à 16:53:25    

voici le source :
 
<?
//connection a la bdd
require ("./common/ServerAdmin.class.php" );
require ("./common/Bdd.class.php" );
$bdd = new Bdd("./config.inc.php" );  
$bdd->connect();  
 
$req= "SELECT LIEN FROM EXT_DOCUMENT WHERE ID_DOCUMENT = '$id'";
$bdd->setQuery($req);
$res = $bdd->executeQuery();  
 
ca affiche le bon chemin qui est ./download/bonjour.pdf
echo"".StripSlashes($res[0][0])."";
 
//et la ca devrais permettre de telecharger le fichier ....
if (!is_file($res[0][0])) {
   header("Content-Type: application/download\n" );  
   header("Content-Disposition: attachment; filename=\"".$res[0][0]."\"" );  
   $fn=fopen("".$res[0][0]."" , "r" );  
   fpassthru($fn);  
}
 
header('location: ./partage_doc.php';);
?>
 
 
 
voici l'erreur qu'il m'affiche :  
Warning: Cannot add header information - headers already sent by (output started at /home/sites/site40/web/extranet_test/v1/trt_dl.php:16) in /home/sites/site40/web/extranet_test/v1/trt_dl.php on line 20
 
Warning: Cannot add header information - headers already sent by (output started at /home/sites/site40/web/extranet_test/v1/trt_dl.php:16) in /home/sites/site40/web/extranet_test/v1/trt_dl.php on line 21
 
Warning: fopen("./download/bonjour.pdf", "r" ) - No such file or directory in /home/sites/site40/web/extranet_test/v1/trt_dl.php on line 22
 
Warning: Supplied argument is not a valid File-Handle resource in /home/sites/site40/web/extranet_test/v1/trt_dl.php on line 23
 
Warning: Cannot add header information - headers already sent by (output started at /home/sites/site40/web/extranet_test/v1/trt_dl.php:16) in /home/sites/site40/web/extranet_test/v1/trt_dl.php on line 26

Reply

Marsh Posté le 02-04-2003 à 16:53:25   

Reply

Marsh Posté le 02-04-2003 à 16:54:40    

Oui c'est normal, la fonction header() ne peut pas être appelée après un echo ou un require.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 02-04-2003 à 16:56:37    

et en plus ta condition est sans doute fausse :
if (!is_file($res[0][0])) {  
ce serait pas plutot
if (is_file($res[0][0])) {  
}
else{
 echo 'erreur';
}


---------------
...oups kernel error...
Reply

Marsh Posté le 02-04-2003 à 16:58:08    

ethernal a écrit :

et en plus ta condition est sans doute fausse :
if (!is_file($res[0][0])) {  
ce serait pas plutot
if (is_file($res[0][0])) {  
}
else{
 echo 'erreur';
}


Ah ouais, aussi :D Sinon, t'expédies des répertoires ou des liens symboliques [:kunks]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 02-04-2003 à 17:01:16    

je teste tt ca merci les gars je vous tien o courant


Message édité par mims1664 le 02-04-2003 à 17:01:35
Reply

Marsh Posté le 02-04-2003 à 17:08:06    

arf maintenant c un autre probleme, il me propose bien de telecharger le bon fichier, lorsque je vais pour l'enregistre il me demande le nom et par defaut c'est la nom de ma page donc "trt_dl" et dedans il me met l'erreur suivante :
 
 
<br>
<b>Warning</b>:  fopen("./download/bonjour.pdf", "r" ) - No such file or directory in <b>/home/sites/site40/web/extranet_test/v1/trt_dl.php</b> on line <b>5</b><br>
<br>
<b>Warning</b>:  Supplied argument is not a valid File-Handle resource in <b>/home/sites/site40/web/extranet_test/v1/trt_dl.php</b> on line <b>6</b><br>
<br>
<b>Warning</b>:  Cannot add header information - headers already sent by (output started at /home/sites/site40/web/extranet_test/v1/trt_dl.php:5) in <b>/home/sites/site40/web/extranet_test/v1/trt_dl.php</b> on line <b>11</b><br>
<br>
<b>Warning</b>:  Cannot add header information - headers already sent by (output started at /home/sites/site40/web/extranet_test/v1/trt_dl.php:5) in <b>/home/sites/site40/web/extranet_test/v1/trt_dl.php</b> on line <b>34</b><br>
 
 
 
 
 
mon cote dans le fichier trt_dl.php :
 
 
if (!is_file($adr)) {
   header("Content-Type: application/download\n" );  
   header("Content-Disposition: attachment; filename=\"$adr\"" );  
   $fn=fopen("$adr" , "r" );  
   fpassthru($fn);  
}else{
 echo"error";
 }
 
header('location: ./partage_doc.php';);
 
 
je passe les bon paramettre !


Message édité par mims1664 le 02-04-2003 à 17:09:45
Reply

Marsh Posté le 02-04-2003 à 17:11:30    

et pour un fichier .jpg il me met directement l'erreur suivante:
 
error
Warning: Cannot add header information - headers already sent by (output started at /home/sites/site40/web/extranet_test/v1/trt_dl.php:8) in /home/sites/site40/web/extranet_test/v1/trt_dl.php on line 11

Reply

Marsh Posté le 02-04-2003 à 17:14:00    

mims1664 a écrit :

je passe les bon paramettre !


Oui mais pour le fopen(), mets donc le chemin ABSOLU vers ton fichier. L'interpréteur PHP se situant dans un autre répertoire que celui où tu stockes ton fichier, il va pas trouver avec un chemin relatif.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 02-04-2003 à 17:17:26    

le plus simple est de faire ceci

Code :
  1. header("Content-type: application/download" );
  2. header("Content-Disposition: attachment; filename=".basename($res[0][0]));
  3. readfile($res[0][0]);


 
mais pour le path je ne sais pas, je pense que ça devrait être /tonchemin/tonfichier.pdf.


Message édité par ethernal le 02-04-2003 à 17:20:11

---------------
...oups kernel error...
Reply

Marsh Posté le 02-04-2003 à 17:18:01    

ouais j'ai essayer avec le chemin entier le probleme est tjrs le même, même erreure!!
 
 
je teste ethernal ton truc


Message édité par mims1664 le 02-04-2003 à 17:19:49
Reply

Marsh Posté le 02-04-2003 à 17:18:01   

Reply

Marsh Posté le 02-04-2003 à 17:21:04    

je viens de le modifier, teste avec la dernière version bien sûr ;)


---------------
...oups kernel error...
Reply

Marsh Posté le 02-04-2003 à 17:22:54    

ethernal le probleme est le mm!! il me propose d'enregistrer le bon fichier et quand je fais enregistrer il me met tjrs le nom du fichier ou il y a le source : "trt_dl" avec dedans :
 
 
<br>
<b>Warning</b>:  readfile("" ) - Inappropriate ioctl for device in <b>/home/sites/site40/web/extranet_test/v1/trt_dl.php</b> on line <b>15</b><br>
<br>
<b>Warning</b>:  Cannot add header information - headers already sent by (output started at /home/sites/site40/web/extranet_test/v1/trt_dl.php:15) in <b>/home/sites/site40/web/extranet_test/v1/trt_dl.php</b> on line <b>17</b><br>
 
 
source :  
 
header("Content-type: application/download" );
header("Content-Disposition: attachment; filename=$adr" );
readfile($path);
 
header('location: ./partage_doc.php';);
 
 
$adr = ./download/bonjour.pdf


Message édité par mims1664 le 02-04-2003 à 17:24:35
Reply

Marsh Posté le 02-04-2003 à 17:29:02    

je te remercie ethernal test trop fort !!!!!

Reply

Marsh Posté le 02-04-2003 à 17:29:18    

-- edit : ok visiblement c'est bon :) --
 
dernière version du script:

Code :
  1. header("Content-type: application/download" );
  2. header("Content-Disposition: attachment; filename=".basename($res[0][0]));
  3. readfile($res[0][0]);


Message édité par ethernal le 02-04-2003 à 17:37:13

---------------
...oups kernel error...
Reply

Marsh Posté le 02-04-2003 à 17:35:03    

ca sert a koi les balises [g]?


Message édité par mims1664 le 02-04-2003 à 17:35:20
Reply

Marsh Posté le 02-04-2003 à 17:36:11    

c'est rien, je voulais mettre des parties de mon code en gras pour que tu vois les modifications que j'avais faites.
Ce forum les transforme en html <b></b> lorsque tu lis le post, mais visiblement pas/plus dans les balises [cpp][/cpp]


Message édité par ethernal le 02-04-2003 à 17:36:51

---------------
...oups kernel error...
Reply

Marsh Posté le 02-04-2003 à 17:37:17    

ok c cool merci ca fonctionne nikel

Reply

Marsh Posté le 02-04-2003 à 17:38:10    

cool :)  :hello:


---------------
...oups kernel error...
Reply

Marsh Posté le 02-04-2003 à 17:43:31    

je suis allé voir ton site !!! putain t'est motivé !! mais c vraiment une super bonne idée !! y'a du boulot ! bon courage !

Reply

Marsh Posté le 02-04-2003 à 17:54:56    

merci  :jap:  
le problème est que ce n'est certainement pas réaliste :(
Dans le cas ou tout fcterait (fo déjà que j'y arrive), mon serveur et ma connexion internet ne supporteront pas la charge.
Ce qui veut dire location d'hébergement (payant)... et là pfff :(


---------------
...oups kernel error...
Reply

Marsh Posté le 02-04-2003 à 23:25:26    

ethernal a écrit :

merci  :jap:  
le problème est que ce n'est certainement pas réaliste :(
Dans le cas ou tout fcterait (fo déjà que j'y arrive), mon serveur et ma connexion internet ne supporteront pas la charge.
Ce qui veut dire location d'hébergement (payant)... et là pfff :(


 
Je suis allé voir aussi. J'adore ça :  
 
Presque toutes les pages sont W3C XHTML1.0
 
lol...
 
Non sinon j'ai l'impression que tu réinvente PHP-Nuke. Mais c'est un beau défi. Le problème c'est que tu ne pourras JAMAIS faire un modèle qui satisfera les client à 100%. Pense que le s gens qui veulent un site veulent un truc original et tout et tout...  
 

Reply

Marsh Posté le 02-04-2003 à 23:49:22    

JagStang a écrit :


Non sinon j'ai l'impression que tu réinvente PHP-Nuke.


En même temps, c'est plutôt une bonne idée passke vu le niveau de sécurité dans PHP Nuke... [:vomi]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 02-04-2003 à 23:50:34    

Taiche a écrit :


En même temps, c'est plutôt une bonne idée passke vu le niveau de sécurité dans PHP Nuke... [:vomi]


 
lol c net...

Reply

Marsh Posté le 03-04-2003 à 01:25:03    

JagStang a écrit :


Presque toutes les pages sont W3C XHTML1.0


:lol:
je sais  :ange:  
mais récupérer des parties de code html (templates) pour les insérer les unes à la suite des autres avec en plus du code html généré par les bbcodes, c'est pas facile à gérer :(
 

JagStang a écrit :


Non sinon j'ai l'impression que tu réinvente PHP-Nuke.  


Pour la partie PHP, le but est évidemment de pouvoir insérer facilement un nouveuau module dans le site (en respectant son graphisme), comme PHP-Nuke.
 
Mais la différence réside dans le partage des données.
Pleins de gens ont des forums par ex mais il n'y a jamais personne dessus (comme sur le miens actuellement :D).  Ici, tu accèdes depuis un site A à un forum qui se trouve aussi sur un site B, le contenu des forums sont identiques, mais pas n'ont le même graphisme.  Les utilisateurs inscrit sur un forum peuvent poster depuis les 2 sites.  
Imagines 2 sites de jeux vidéos distincts, ils ont chacun un forum avec 3 personnes dessus et discutent des même choses.  Pq ne pas avoir un seul forum avec comme ici un peu de vie et d'animation plutôt qu'un forum avec 3 msgs/an ?
 
Le principe :
"tu veux un site ?"
--> tu choisis ce que tu veux (forum,...) et tu choisis un graphisme tout fait.
 
"Tu veux une interface qui te soit propre ?"
--> tu prends ton dreamwaver qui t'es si cher, je te file les templates HTML, tu les modifies comme tu veux.  Il n'y a pas une commande de PHP dedans, juste des tags (ex :{LOGIN}).  N'importe qui sait le faire.  Tu l'upload, ça rulez.
 
"Tu veux une langue en plus ?"
--> tu traduis le fichier de langue de ton site, tu l'upload, ça rulez.
 
Bon malheureusement, la partie admin n'est pas du tout développée :(  
Pour l'instant, je tente continuellement d'optimiser le code, voir de le refaire (voir  http://www.ethernal.be/work/ pour la dernière version)


---------------
...oups kernel error...
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed