Inclusion de fichiers

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Inclusion de fichiers

par Tong » 14 août 2008, 22:58

C'est au bit près ce que j'ai fini par faire ;)

Finalement, avec un coup de cherche include( puis remplace par include(ABSPATH.
Ca va assez vite.

Désolé de ne pas être repassé par là pour mettre le tag résolu :oops:

par Ryle » 13 août 2008, 13:43

En fait, l'inclusion a pour effet d'exécuter le fichier comme s'il faisant partie du source du fichier parent... du coup les chemins relatifs y sont effectivement associés.

Sans devoir parser le fichier, ce que tu peux faire c'est simplement définir une variable dans le script parent contenant le chemin vers la racine à partir de laquelle ton fichier inclu peut s'exécuter, et ajouter ensuite cette variable dans tes chemins :

dossier/index.php
...
$racine = '../';
include('../include/config.php');
...
include/config.php
if (!isSet($racine)) // si la variable n'est pas sépcifiée on la déclare vide (pour compatibilité)
  $racine = '';
...
// au lieu de $chemin = "../dossier/fichier"; tu aurais alors :
$chemin = $racine . "../dossier/fichier";
Ainsi si $racine n'est pas définie, rien ne change, et si elle est spécifiée, alors php va se recaler par rapport à elle pour déterminer le chemin relatif :)

par Tong » 12 août 2008, 20:21

Non mais le fichier que je souhaite appeler c'est déjà un fichier qui sert à définir des paths.
LE truc chiant, c'est que ces paths sont relatifs, c'est ça qui fait tout merder, et qui rends impossible un appel via un include depuis un dossier qui n'est pas situé à la racine de mon site.

Bon j'ai comme l'impression que je l'ai dans l'os. La seule solution que je voit, c'est de passer tout les chemins en absolu (ce qui devrait être le cas, je ne sais pas ce qu'il avait en tête le mec qui s'est occupé de cette partie d'oscommerce).
Je sens que je vais scratcher mon oscommerce en faisant ça mais bon, faute de mieux.

par dunbar » 12 août 2008, 20:07

Salut,

Quelque piste :?:
une $variable de $_SESSION,
Ou tu crée un fichier config dans lequelle tu indique les chemins qu'il te suffit d'appeller de n'importe quelle page.

par Tong » 12 août 2008, 19:05

Non mais c'est pas une erreur que j'ai, c'est un fonctionnement normal de php. Dans le cas d'un include, le code est exécuté dans le fichier appelant et donc les chemins, si ils sont relatifs ne sont plus valides si le fichier appelant n'est pas au même niveau que ce qui a été prévu au départ (si je ne dis pas de connerie).

Ce que j'aimerais trouver, c'est un astuce pour malgré tout pouvoir appeler mon fichier depuis un autre dossier que celui qui a été prévu au départ.

par dogmongo » 12 août 2008, 18:36

tu mets les ; à la fin ?

Inclusion de fichiers

par Tong » 12 août 2008, 17:59

Hello,

J'essaye depuis un fichier situé dans /dossier/index.php d'inclure un fichier situé dans /include/config.php
Seulement, ce fichier config.php est prévu pour être appellé depuis la racine, et tout les chemins des fichiers qui sont appelé depuis config.php sont relatifs.

Si j'inclus config.php dans index.php en faisant
include('../include/config.php')
toutes les inclusions présentes dans config.php ne fonctionnent alors plus.

Il y a une solution à ce problème plus simple que de passer les URLs en absolu ? Autrement je ne voit pas comment intégrer mon wordpress dans oscommerce ...

Merci ;)