Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1596 connectés 

 


Dernière réponse
Sujet : [ PHP ] fOrcer le téléchargement d'un fichier .txt
ludo2604 ah ok en fait j'ai mis ça :
 
$dir = "E:\Sites internet\Ludo project\scriptsphp3/lyrics/temp/$filename";
 
au lieu de :
 
$dir = "scriptsphp3/lyrics/$filename";  
 
et ça a l'air de marcher...
 
Mais comment je ferrai sur le serveur FRee ?????
 
edit: arf non ça ne marche que sur mon PC :/

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
ludo2604 ah ok en fait j'ai mis ça :
 
$dir = "E:\Sites internet\Ludo project\scriptsphp3/lyrics/temp/$filename";
 
au lieu de :
 
$dir = "scriptsphp3/lyrics/$filename";  
 
et ça a l'air de marcher...
 
Mais comment je ferrai sur le serveur FRee ?????
 
edit: arf non ça ne marche que sur mon PC :/
ludo2604 bah voui mais j'ai betement suivi le tuto moi, et ils disent :
 
$dir= "chemin complet vers le fichier/".$filname;
 
c'est donc ce que j'ai fais.
et puis je suis un peu debutant en php, dsl je n'ai pas tout compri à ce que tu as dis.
 
BOn, deja j'ai fais un rep "temp" pour stocker les .txt temporaires ( oui temporaire car je compte effacer le .txt directement apres ;))
 
Ensuite, il faut regler les chemins c'est ça ? mais lequel ?
Mara's dad Ton script download.php il est dans :
e:\sites internet\ludo project\scriptsphp3\lyrics\download.php
 
Donc si tu lui donne un nom de fichier comme çà :
 
scriptsphp3/lyrics/Metallica - Nothing else matters.txt
 
Il le cherche en relatif, donc il cherche :  
 
e:\sites internet\ludo project\scriptsphp3\lyrics\scriptsphp3/lyrics/Metallica - Nothing else matters.txt
 
 
Donc, soit tu met un chemein absolu, soit tu fait gaffe dans tes chemins relatifs !
 
Ok ?
 
Et je répète mon avertissement !
 
Dans download.php, ne fait pas de readfile sans vérifier que le fichier demandé est bien autorisé (par toi) au téléchargement.
 
Le plus simple, c'est de n'autoriser que les fichiers .txt, dans un répertoire spécial pour çà !
Si tu code en dur le répertoire dans download.php (pourquoi pas!) fait gaffe au petit malin qui demande un fichier du genre ../../../../mon_cv.txt !
 
IL FAUT ETRE PARANO QUAND ON FAIT DU PHP !
 
ludo2604 oky merci en fait je viens de trouver le tuto ici:
 
http://www.phpindex.com/trucsetast [...] lement=146
 
ça ressemble à ce que tu m'as dis en effet.
 
Bon, voila comment j'ai fais:
 
ma page ou il ya  lien (et ou le .txt ce crée):
 

Code :
  1. $filename = "$nom - $titre.txt";
  2. $dir = "scriptsphp3/lyrics/$filename";
  3. echo "<a href=\"scriptsphp3/lyrics/download.php?dir=$dir&filename=$filename\">télécharger</a>";
  4. if($fp = fopen($dir,"w" )){
  5. fwrite($fp,$parole);
  6. fclose($fp);
  7. }


 
ma page download:
 

Code :
  1. <?php
  2. header("Content-type: application/force-download" );
  3. header("Content-Disposition: attachment; filename=$filename" );
  4. readfile("$dir" );
  5. ?>


 
bon, le .txt se crée bien et tout mais à l'interieur, au lieu d'avoir les paroles comme prévu et bien j'ai ce message d'erreur:
 
<br />
<b>Warning</b>:  readfile("scriptsphp3/lyrics/Metallica - Nothing else matters.txt" ) - No such file or directory in <b>e:\sites internet\ludo project\scriptsphp3\lyrics\download.php</b> on line <b>4</b><br />
 
 
ça veut dire quoi exactement ??
 
Merci d'avance  :hello:  

Mara's dad Fait gaffe quand même !
 
Ne recopie pas bêtement ce code !
 
Vérifie le nom du fichier que tu va envoyer !
 
Il ne faut pas laisser passer les trucs du genre :
 
http://www.tonsite.com/get.php?fic=connect.php
 
Avec connect.php qui contient par exemple un mot de passe de connexion à un base...
Mara's dad Lien du genre :
<a href="get.php?fic=toto.txt">Télécharger</a>
 
et get.php :
<?php
header( "Content-type: application/txt" );
$len = filesize( $_GET["fic"] );
header( "Content-Length: $len" );
header( "Content-Disposition: attachment; filename=" . $_GET["fic"] );
readfile($_GET["fic"]);
?>
ludo2604 salut,  
on va dire que j'ai un fichier .txt stocké sur le serveur.
 je voudrai que lorsque je click sur le lien pointant sur ce .txt qu'il se télécharge ( que l'invit de download apparaisse) au lieu qu'il s'ouvre dans l' explorer.
 
 
Avez vous une solut ?
 
Merci d'avance  :hello:

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR