Lorsque j'essaie d'utiliser require
ou require_once
, cela fonctionnera correctement si le fichier requis est dans le même sous-répertoire, mais au moment où il voit un fichier en dehors de leur sous-répertoire, il génère une erreur fatale. Voici essentiellement ce que l'arborescence des fichiers ressemble:Comment demander des fichiers dans d'autres branches de répertoire?
* main.php
+ login/
* login.php
+ includes/
* session.php
... donc en gros, si je devais avoir main.php besoin de connexion/login.php, il est très bien, mais si je tente de faire directory traversal pour login.php d'exiger includes/session.php, elle échoue, entraîne l'erreur:
PHP Fatal error: require_once(): Failed opening required [...]
le code de ce concept serait:
require('login/login.php') #works fine (main.php)
require('../includes/session.php') #quits (login.php)
J'ai essayé d'utiliser $_SERVER('DOCUMENT_ROOT')
, $_SERVER('SERVER_ADDR')
, dir(_FILE_)
et chdir(../)
. Je me souviens d'avoir travaillé sur un projet il y a quelques mois que j'ai résolu ce problème, c'était une fonction simple qui traversait les chemins de fichiers, mais je ne le trouve plus. Des idées?
« \' » est pour le code en ligne. Pour [blocs de code] (http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks), indiquez chaque ligne quatre espaces supplémentaires. Le bouton "{}" dans la barre d'outils de l'éditeur le fait pour vous. "\ *", "-" ou "+" peut être utilisé pour les listes. Examinez mes modifications pour voir comment. Cliquez sur le point d'interrogation orange dans la barre d'outils de l'éditeur pour plus d'informations et des conseils sur le formatage. – outis
Voulez-vous utiliser la notation de fonction (parenthèses) au lieu de l'indexation de tableau (crochets) lorsque vous faites référence à la variable '$ _SERVER'? Si c'est le cas, c'est peut-être la raison pour laquelle vous ne pouvez pas les faire travailler. – outis