IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème avec un script de force download.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 14
    Par défaut Problème avec un script de force download.
    Bonsoir,
    Je voudrais forcer le téléchargement d'une image, pour cela j'utilise ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    switch(strrchr(basename($Fichier_a_telecharger), "." )) {
    	case ".gz": $type = "application/x-gzip"; break;
    	case ".tgz": $type = "application/x-gzip"; break;
    	case ".zip": $type = "application/zip"; break;
    	case ".pdf": $type = "application/pdf"; break;
    	case ".png": $type = "image/png"; break;
    	case ".gif": $type = "image/gif"; break;
    	case ".jpg": $type = "image/jpeg"; break;
    	case ".txt": $type = "text/plain"; break;
    	case ".htm": $type = "text/html"; break;
    	case ".html": $type = "text/html"; break;
    	default: $type = "application/octet-stream"; break;
    }
     
    header("Content-disposition: attachment; filename=$Fichier_a_telecharger" );
    header("Content-Type: application/force-download" );
    header("Content-Transfer-Encoding: $type\n" ); // Surtout ne pas enlever le \n
    header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger));
    header("Pragma: no-cache" );
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public" );
    header("Expires: 0" );
    readfile($chemin . $file);
    ?>
    Mais lorsque je l'utilise dans une page, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="telecharger.php?file='wall2.jpg'&chemin='images/'">Test</a>
    . Cela télécharge le fichier "telecharger.php" au lieu de mon image.

    J'aimerai savoir si quelqu'un avait un solution. Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ou sont définies les variables ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 14
    Par défaut
    Enfaite, je ne connais rien au php, mais j'aimerais utiliser ce script.
    Pourrais tu donc, m'expliquer ce que tu entends par "définir une variable" ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Par exemple $Fichier_a_telecharger ca vaut quoi dans ton script ?
    Dans ce que tu nous montres, cette variable ne reçoit pas de valeur.

    Au passage quand même, ton script est un trou de sécurité énorme : il permet le téléchargement de n'importe quel fichier du serveur web (et meme potentiellement au déjà), y compris des fichiers de mot de passe.
    Le chemin doit être inscrit en dur dans le script et non passé comme paramètre dans l'url (ou alors il faut le controler très précisemment).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 14
    Par défaut
    Tu connaitrais pas une autre façon de faire ça ?

    Et $fichier a télécharger est définie non ?
    $fichieratelecharger=filename..

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Et $fichier a télécharger est définie non ?
    $fichieratelecharger=filename..
    Ce n'est pas ce qui est écris dans ton script.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $Fichier_a_telecharger = str_replace(array(' ','`','"','\'','\\','/'),'',$_GET['file']);
    $chemin ="images/";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. (Batch et VBS) Petit probléme avec un script batch VBS
    Par Edoxituz dans le forum Windows
    Réponses: 11
    Dernier message: 27/02/2006, 17h21
  2. [Mail] Problème avec mon script d'envoi de mail
    Par leroivert dans le forum Langage
    Réponses: 18
    Dernier message: 02/12/2005, 00h26
  3. [Configuration] Problème avec un script de login utilisant une session
    Par HNT dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 27/09/2005, 19h56
  4. Problème avec un script d'ouverture de pop-up
    Par HNT dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/08/2005, 16h37
  5. problème avec un script de generation de nom de login
    Par black_code dans le forum Langage
    Réponses: 2
    Dernier message: 04/08/2005, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo