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

  FORUM HardWare.fr
  Programmation
  PHP

  Savoir si on est dans un include...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Savoir si on est dans un include...

n°978992
KangOl
Profil : pointeur
Posté le 11-02-2005 à 16:59:59  profilanswer
 

y a t il moyen de savoir si ont est dans un include ou si on a appeler le fichier directement ??
 
un peu comme le

Code :
  1. if __name__ == "__main__":

en python...
 
edit : faute dans le titre :o


Message édité par KangOl le 11-02-2005 à 17:09:02

---------------
Nos estans firs di nosse pitite patreye...
mood
Publicité
Posté le 11-02-2005 à 16:59:59  profilanswer
 

n°979000
jagstang
Pa Capona ಠ_ಠ
Posté le 11-02-2005 à 17:05:33  profilanswer
 

comme l'include est un bête copy-paste il me semble que non. mais je peux me tromper


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°979019
rompi
Posté le 11-02-2005 à 17:24:53  profilanswer
 

je ne pense pas non plus,  
et c'est pas très propre comme programmation
;)

n°979023
omega2
Posté le 11-02-2005 à 17:29:21  profilanswer
 

Ben avec apache (les autres serveurs web j'en sais rien) il existe plusieurs variables donnant le nom du script, les paramêtres, le chemin d'accés au script et même le nom de domaine.
D'ailleur, il y a même une variable qui donne l'intégralité de ces données en contenant carément l'adresse que tu vois dans ton navigateur.
Donc oui, à partir de tout ça, tu peux savoir si ton fichier est demandé en include ou par une demande http.
 
Par contre, je me souviens pas exactement du noms de toutes ces variables. C'est dans $_SERVER si je me souviens bien.
 
Personellement, pour mon site web, en dehors de la page d'accés au site, je n'ai pas la moindre ligne de code qui traine en dehors des fonctions et des objects. Comme ça, même si quelqu'un demande un de ces fichiers , il n'aura rien d'autre qu'une page blanche dans son navigateur et aucune action n'aura été réalisé en php sur le serveur. :)

n°979026
KangOl
Profil : pointeur
Posté le 11-02-2005 à 17:30:10  profilanswer
 

donc a part verifier en dur avec l'url entrée...


---------------
Nos estans firs di nosse pitite patreye...
n°979030
KangOl
Profil : pointeur
Posté le 11-02-2005 à 17:35:11  profilanswer
 

page1.php

Code :
  1. include 'page2.php';


 
page2.php

Code :
  1. echo "<pre>";
  2. print_r($_SERVER);
  3. echo '</pre>';


 
si j'execute page1.php, il n'est jamais question de page2.php dans la variable $_SERVER :/


---------------
Nos estans firs di nosse pitite patreye...
n°979033
omega2
Posté le 11-02-2005 à 17:40:55  profilanswer
 

Ben oui, logique vu que c'est pas la page demandé depuis l'extérieur du site web. ;) Comme dit JagStang, un include, c'est un copier coller du code de page2.php à la palce du include(page2.php); dans la copie de page1.php exécuté par le serveur.
Au niveau du fichier rien n'est changé (heureusement). C'est dans la mémoire du serveur que c'est fait.

n°979037
cerel
Posté le 11-02-2005 à 17:44:43  profilanswer
 

Tu pourrais utiliser $PHP_SELF.
 
Avec par exemple ce type de code :

Code :
  1. fichier.php :
  2. if (eregi("fichier.php",$PHP_SELF)) {
  3.     Header("Location: index.php" );
  4.     die(); 
  5. }


Donc la on verifie si "fichier.php" se trouve dans la chaine $PHP_SELF, si c'est le cas, alors on fait une redirection vers index.php.
Cet exemple traite d'un site avec "une seule porte d'entree". En gros, on passe forcement par index.php. Donc ca permet de voir si quelqu'un essaye de rentrer par ailleurs.
 
[edit]
Voila, j'ai retrouve la doc php.
http://ch2.php.net/manual/en/langu [...] efined.php
 

Le manuel à ecrit a écrit :

__FILE__  The full path and filename of the file. If used inside an include, the name of the included file is returned.



 
Il me semble qu'il existe aussi __FILE__ et __LINE__ en php, mais je sais pas s'ils sont utiles dans ce cadre la. utiliser.


Message édité par cerel le 11-02-2005 à 17:50:20
n°979056
KangOl
Profil : pointeur
Posté le 11-02-2005 à 18:13:41  profilanswer
 

__FILE__ est la solution
 

Code :
  1. if ($_SERVER["SCRIPT_FILENAME"] != __FILE__)
  2. {
  3.    /* le fichier est inclus */
  4. }


 
voila :)


---------------
Nos estans firs di nosse pitite patreye...
n°979073
sub1
Posté le 11-02-2005 à 18:35:53  profilanswer
 

Salut,
 
le meilleur plan, c'est de vérifier si ton fichier appartient au tableau retourné par "get_included_files"
 
http://fr.php.net/manual/en/functi [...] -files.php
 
voila.

mood
Publicité
Posté le 11-02-2005 à 18:35:53  profilanswer
 

n°979104
KangOl
Profil : pointeur
Posté le 11-02-2005 à 19:10:43  profilanswer
 

bof, ma simple comparaison suffit et est moins lourde...


---------------
Nos estans firs di nosse pitite patreye...
n°979109
omega2
Posté le 11-02-2005 à 19:18:50  profilanswer
 

Décidément, un probléme = plusieurs solutions. :)
Au fait, parmis toutes ces solutions, certaines ne vont pas poser probléme avec des register_globals à off? Je penses surtout au $PHP_SELF.

n°979118
cerel
Posté le 11-02-2005 à 19:33:32  profilanswer
 

omega2 a écrit :

Décidément, un probléme = plusieurs solutions. :)
Au fait, parmis toutes ces solutions, certaines ne vont pas poser probléme avec des register_globals à off? Je penses surtout au $PHP_SELF.


 
En effet tu as raison.
il faut plutot utilise $_SERVER['PHP_SELF']
http://ch2.php.net/manual/en/reser [...] les.server

n°979336
Hermes le ​Messager
Breton Quiétiste
Posté le 12-02-2005 à 10:47:23  profilanswer
 

En ce qui me concerne, j'utilise toujours une session sur ma page index et je vérifie dans chacune de mes pages que je suis bien dans ma session, sinon, c'est affichage direct de : "Bien essayé, try again..."


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Savoir si on est dans un include...

 

Sujets relatifs
Problème include de fichier [résolu]Savoir quand un objet est détruit.
Comment savoir si on est sur le dernier element d'un foreach[Thread] Savoir qd un thread se termine
Include d'un fichier php distantProbleme passage de paramètres et fonction include
(resolu)include(pseudo frame) merci quand meme[ASP.NET / C#] Savoir si un contrôle a été initialisé ou non
savoir si un enregistrement existe dejacomment savoir quel include utiliser
Plus de sujets relatifs à : Savoir si on est dans un include...


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