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 :

script php annulant les effets de deny from all


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Par défaut script php annulant les effets de deny from all
    Bonjour,
    Afin de protéger des données, j'ai dans un dossier un htaccess avec deny from all

    Pour afficher un fichier j'appelles le fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    session_start();
    if (session_is_registered("bonne")){}
    else {
    header("Location:index.php?erreur=intru");
    exit;
    }
    include("interdit/conf.php");
     
        $url=str_replace('/','',$_GET['url']);
        readfile($adresse_dossier.$dossier_prof.$url);
    ?>
    Avec la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $visualisez_doc_1='<a target="_blank" href="document.php?url='.$A_doc_1.'">'.$voir_doc.'</a>';


    Or les fichiers aux extensions images (jpg, gif,..) s'ouvre et sont lisibles les autre (doc, exl, ..) non.

    Auriez vous une solution.

    Merci pour vos réponses.

    .

  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
    qu'obtiens-tu quand ca ne fonctionne pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Par défaut
    j'obtiens ceci!! avec un fichier doc

    ÐÏࡱá>þÿ !#þÿÿÿ ŠªžžŠŠ%ªªªŠ žŠžŠêªŠêª@ªêžžêŠ~ {ìw…ʲ´f”êê;0kê™”™êª²²žžžž

    sur une page avec texte lisible qui est contenu dans le fichier

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Par défaut un script PHP émet un entête Content-type de valeur text/html (configurable par la directive default_mimetype) or ce serait en contradiction totale avec le type réel du fichier. Ce qui fait que tout est affiché comme du HTML. Il faudrait en émettre un (fileinfo) qui soit adapté d'autant plus qu'avec une implémentation comme celle-ci le client est dans l'incapacité d'en deviner une (à quelques exceptions près).

    PS : session_is_registered est dépréciée

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Par défaut
    Merci pour la réponse.

    y a t'il une solution

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Il faut tout écrire quoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $path = $adresse_dossier . $dossier_prof . str_replace('/','',$_GET['url']);
    if (is_file($path)) {
        /*if (extension_loaded('fileinfo')) {
            $finfo = new finfo(FILEINFO_MIME);
            $type = $finfo->file($path);
        } else {*/
            $type = mime_content_type($path);
        /*}*/
        header('Content-type: ' . $type);
        readfile($path);
    } else {
        # ...
    }
    (non testé)

    Mais il faudrait ajouter des contrôles dans ce script (fichier inexistant, s'assurer de ne pas servir un fichier non voulu - script notamment, gestion de cache, ...).

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Par défaut
    OK ça marche.

    Un grand merci.

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

Discussions similaires

  1. Comment annuler les effets d'une macro sur les feuilles?
    Par jolzeviking dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/06/2008, 14h29
  2. Comment exécuter automatiquement un script php toutes les 24h.
    Par legastu dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 12/06/2007, 15h25
  3. Réponses: 1
    Dernier message: 21/04/2007, 16h36
  4. Appeler un script PHP toutes les x minutes
    Par Seb33300 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 26/02/2007, 14h41
  5. [Système] Executer un script php toutes les 24h
    Par kenny49 dans le forum Langage
    Réponses: 3
    Dernier message: 20/02/2007, 13h26

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