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 :

Verifier qu'un fichier a bien ete inclus depuis un fichier specifique [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut Verifier qu'un fichier a bien ete inclus depuis un fichier specifique
    Bonjour,

    Je me demande s'il existe une façon de savoir si un fichier a bien ete inclu par un autre spécifique. A priori, ça servirai a ne pas appeller de fichier depuis "l'exterieur".

    Par exemple :
    conteneur.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    include("element.php");
    element.php
    De tete j'ecrirais un code dans conteneur connu uniquement de element et le verifierai dans la page element mais il existe peut-etre autre chose, une fonction, ou un genre de referer pour les include ?

    D'avance merci

  2. #2
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    bonjour,

    Je n'ai pas trop compris la question,

    Mais ce que tu souhaite faire c'est peut être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once("element.php");

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once("element.php");

  3. #3
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Bonjour,

    Je voudrai vérifier dans mon fichier element.php qu'il a bien été inclu par conteneur.php.

  4. #4
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Ha ok, je crois comprendre.

    Je ne sais pas si une telle fonction existe. Rapidement, ce que je ferais, c'est un truc du style

    conteneur.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $is_include = true;
    include("element.php");

    element.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // vérifié la présence de element.php dans un fichier
    if(isset($is_include) AND $is_include)
        echo 'Je suis inclus !!!';
    ?

  5. #5
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Oui, c'est ce que je voulais dire quand je disais ca :
    De tete j'ecrirais un code dans conteneur connu uniquement de element et le verifierai dans la page element
    Effectivement, pas besoin de s'embeter avec un code, un booleen fera bien l'affaire ^^

    Si une autre idee survient, je suis preneur, en attendant, je me contenterai de celle-ci

    Merci.

  6. #6
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Et si tu trouve mieux, n'hésite pas à (nous) m'en faire profiter, je suis intéressé

  7. #7
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Bah en farfouillant un peu, je vois que un petit htaccess dans mon dossier contenant mes pages d'éléments, dont element.php (qui est un nom fictif bien entendu), ca m'empêche d'appeler le fichier seul.

    .htaccess
    Un petit pas ^^

  8. #8
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    HA ok !! J'aurais mieux fait de me coucher tôt hier^^

    J'avais pas lu correctement ta première question. C'était pour ne pas pouvoir appeler le fichier si ce dernier n'est pas inclus. Donc en effet la ligne de code dans le .htaccess est utile, mais j'avoue que j'utilise de temps en temps cette méthode :

    Tout en haut dans mes fichiers inclus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // Make sure no one attempts to run this script "directly"
    if (!defined('AUTH_ID'))
    	exit;
    Sur les pages principales j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    define('AUTH_ID', 1);
    C'est inspiré de fluxbb, et ça fonctionne. Toutes personnes voulant accéder à tes fichiers inclus, et directement se retrouvera avec une page blanche

  9. #9
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Merci pour ta suggestion, c'est ce que j'essaie de faire effectivement ^^

    Mais quelle est la différence entre définir une constante, ce que tu me propose maintenant ou une variable, ce que tu me proposait dans ton 2eme post au niveau de la sécurité du include ?

  10. #10
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Pour ma part, cela permet vraiment de limiter les erreurs.

    Cela force à utiliser la fonction define et ainsi aucune variable ne peut se glisser par erreur dans mon code.

    Je trouve cela avant tout plus propre, mais avec une variable cela fonctionne aussi.

    C'est vraiment pour un but de lecture et afin d'éviter les erreurs à long terme.

  11. #11
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Ok, merci du renseignement

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Salut,

    La discutions date un peu, mais si je suis tomber dessus avec google, d'autre me suivront peut être.

    Ce que j'utilise dans ce genre de cas c'est une constante comme dis plus haut mais le problème c'est qu'il y a toujours un fichier qui contient l'inclusion de la constante, qu'on ne peut pas tester ensuite, sinon ca perd sa logique.

    fichier ./includes/connexion.php


    Ce que je fais c'est que tous mes includes sont dans un dossier ./includes et donc pour savoir si je peut appeler directement un fichier ou non je test l'existence du fichier de connexion.php

    fichier ./includes/head.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( ! file_exists( './includes/connexion.php' ) )
    exit;
     
    require_once './includes/connexion.php';


    au debut de chaques fichier ./includes/other_file.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ( !defined ('CST') )
    exit;
    Par dessus ca un petit ./includes/.htaccess :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <Files connexion.php>
    deny from all
    </Files>
    Et on est certain qu'aucune page du dossier include ne sera chargée directement, et qu'il faudra passé par un fichier a la racine.

    Voila

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

Discussions similaires

  1. Générer un fichier "En-tête et détail" depuis un fichier plat
    Par Eldamso dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 11/06/2013, 17h04
  2. [VBS] Fileexit tester si un fichier est bien deplacé
    Par Corben dans le forum VBScript
    Réponses: 12
    Dernier message: 12/04/2006, 18h17
  3. Fichier SWF bien chargé?
    Par Fanck dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2006, 10h09
  4. Inclusion/exclusion de fichiers/répertoires
    Par GLDavid dans le forum Linux
    Réponses: 17
    Dernier message: 10/11/2005, 16h17
  5. [Ressources] Nombre de ressources incluses dans un fichier
    Par Clorish dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 03/06/2005, 15h27

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