probleme en php5 avec la fonction include

Petit nouveau ! | 2 Messages

20 mai 2008, 16:36

J'ai un problème.Mon hebergeur m'a di qu'il avant changé de php
.il est passé de php4 au php5.
Le problème que j'ai est le suivant:
j'ai un problème avec la fonction include:
j'ai fait des tests:
<?php
    include("bas.php");
    ?>
Cela marche en php4 et php5.
Puis j'ai mis la page bas.php un cran en dessous.cela donne:
<?php
    include("../bas.php");
    ?>
Cela marche en php4 et php5.
Puis en mettant la page bas.php un cran en dessous.cela donne:
<?php
    include("../../bas.php");
    ?>
et la cela ne marche pas en php5 alors qu'en php4 cela marchait.
Je ne sais pas pourquoi.
par contre si je mets:
<?php
    include("http://www.monsite.com/bas.php");
    ?>
ça marche.
Est-ce lié au changement de php ou pas à votre avis?

Eléphant du PHP | 174 Messages

20 mai 2008, 17:43

Bonsoir.

Es-tu certain que le déplacement de la page soit la seule différence entre toutes tes manipulations ? A priori il ne devrait pas y avoir de problème (j'utilise php5 avec des niveaux de répertoires plus importants et je n'ai jamais constaté un tel problème).

Note : si tu passes de '../bas.php' à '../../bas.php' ce n'est pas la page bas.php qui descend dans l'arborescence mais ta page en cours, ou si tu préfère ta page bas.php est remontée (chaque '../' représentant une arborescence supérieure dans l'arbre des répertoires).
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Petit nouveau ! | 2 Messages

20 mai 2008, 18:00

Bonjour,
A chaque fois que je faisais un test je changeais l'emplacement de la page bas.php.
Pour le premier test par exemple j'avais mis la page bas.php dans le même répertoire.Le test était bon.
Mais pour le dernier test c'est à dire :
<?php
    include("../../bas.php");
    ?>
Cela m'affiche comme messge d'erreur:
Warning: include() [function.include]: open_basedir restriction in effect. File(../../bas.php) is not within the allowed path(s): etc..
Alors qu'avant en php4 cela marchait.
Le fichier bas.php est bien à la bonne place mais cela ne marche pas.
Mon hébergeur répond à côté donc je ne sais pas pas d'ou vient le problème.
Est-ce que quelqu'un aurait une solution?
Merci d'avance
Stef.

ViPHP
AB
ViPHP | 5818 Messages

20 mai 2008, 18:06

C'est peut-être ta page qui appelle l'include qui a changé de répertoire?

En tous cas comme l'a signalé animithra, je n'ai pas constaté de différence entre php4 et php5 à ce niveau.