FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » restraindre, interdire le téléchargement en php?
 

restraindre, interdire le téléchargement en php?

Réseaux : zelic et 57 utilisateurs inconnus
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : restraindre, interdire le téléchargement en php?
 

Bonjour,
 
Déjà petite info je suis débutant en php  :D  
 
Je bloque sur comment permettre, ou ne pas permettre le téléchargement d'un fichier sur le serveur, grâce à une condition en php, par exemple si une variable de session existe ou non. (dans le cadre d'un téléchargement privé ou une protection contre le vole de BP).
 
Le but est de rendre complètement impossible le téléchargement directe d'un fichier (en entrant par exemple l'adresse url).
 
Je pense à un .htaccess mais là dessus je sèche complètement.
 
L'idée de base c'est interdire le téléchargement via un .htaccess mais de pouvoir passer outre avec une fonction php.
 
J'ai cru voir quelque part que php gére le FTP, je me trompe ?
 
merci d'avance ...
 

G.M.G.V.S.O.
Plus d'informations

Tu bloques le dl direct par .htacces et tu sers ton fichier via php ça ne pause pas de gros soucis à mon sens :)
 
Apres c'est + ou - compliqué selon le type de fichier et leur tailles ...


Message édité par boub popsy team le 30-03-2008 à 18:27:05

---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Mon bar préféré à Lyon ! | Bijoux Fantaisie de Créateur !

Pour un texte, il y a pas de problème mais pour un fichier en zip, (contenant une vidéo) On fait comment ?
L'include d'archive, mais c'est pas la bonne idée x)
Le FTP ça marcherais ??

G.M.G.V.S.O.
Plus d'informations

Non tu peux servir un stream directement ... (donc ton archive)
 
ex pour servir des fichiers 3gp, a modifier pour servir du zip ou autre ;)

Code :
  1. <?php
  2. $reqfile = "path/to/file.3gp";
  3. $contenttype="video/3gpp";
  4. if($fn=fopen($reqfile, "rba" )){
  5. header("Content-Type: ".$contenttype);
  6. header("Content-Length: ".filesize($reqfile));
  7. header("Last-Modified: " . gmdate("D, d M Y H:i:s" ) . " GMT" );
  8. header("Pragma: no-cache" );
  9. header("Expires: Mon, 26 Jul 1997 06:00:00 GMT" );
  10. header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0" );
  11. fpassthru($fn);
  12. fclose($fn);
  13. }else{
  14. exit("error...." );
  15. }
  16. exit();
  17. ?>


 
source: http://dev.mobi/node/503#comment-2344 :)
 
autre exemple pour du png en explication de fpassthru ==> http://www.manuelphp.com/php/function.fpassthru.php


Message édité par boub popsy team le 31-03-2008 à 00:39:12

---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Mon bar préféré à Lyon ! | Bijoux Fantaisie de Créateur !

En effet ça marche nickel !!
 
Pour info j'ai ajouter deux lignes:
 

Code :
  1. $reqfile = "dl/video/video1.avi";
  2. $contenttype="video/avi";
  3. $filename="video1.avi"; // Ici
  4. if($fn=fopen($reqfile, "rba" )){
  5. header("Content-Type: ".$contenttype);
  6. header("Content-Disposition: attachment; filename=".$filename); // Et ici
  7. header("Content-Length: ".filesize($reqfile));
  8. header("Last-Modified: " . gmdate("D, d M Y H:i:s" ) . " GMT" );
  9. header("Pragma: no-cache" );
  10. header("Expires: Mon, 26 Jul 1997 06:00:00 GMT" );
  11. header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0" );
  12. fpassthru($fn);
  13. fclose($fn);
  14. }else{
  15. exit("error...." );
  16. }
  17. exit();


 
Afin d'avoir le nom du fichier (et surtout la bonne extension ^^)  
 
En tout cas ...

MERCI BEAUCOUP !!

 
Juste une petite question à quoi servent les ligne 9, 10 et 11 ?


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » restraindre, interdire le téléchargement en php?
 

Annonces Google
Publicité