Page 1 sur 1

include() et define() problème extraordinaire !

Posté : 18 juin 2009, 23:57
par andreas
Bonjour à tous,

J'ai un problème que je trouve extraordinaire et que je vous livre tel quel avec le code et le résultat obtenu.

1er test :

je lance 1.php :
<?PHP
define("TEST", "ceci est mon test");
echo"".TEST."";
?>
résultat :

Code : Tout sélectionner

ceci est mon test

Rien à redire !

2eme test :

je lance 1.php:
<?PHP
include("http://".$_SERVER['SERVER_ADDR']."/2.php");
echo"".TEST."";
?>
2.php a ceci :
<?PHP
define("TEST", "ceci est mon test");
?>

le résultat est :

Code : Tout sélectionner

Notice: Use of undefined constant TEST - assumed 'TEST' in C:\Program Files\EasyPHP 3.0\www\1.php on line 3 TEST
:shock:

Ok, je désactive le e_notice dans mon php.ini et j'ai :

Code : Tout sélectionner

TEST
re- :shock: (quoique vu le résultat précédent....)

Je roule en php5.

Est-ce quelqu'un peut me dire où est l'erreur, l'idée étant d'afficher sur le fichier 1.php une constante qui se trouve dans 2.php en faisant un include().

Merci à celui ou celle qui me soulagera......
dede

Posté : 19 juin 2009, 02:02
par shine-neko
Qu'est ce que qui est étonnant ?

quand tu inclus un fichier commençant par http il te rend du html donc déjà compiler et tout remplace ton url par un chemin absolu

Posté : 19 juin 2009, 08:51
par andreas
bonjour shine-neko,

je suis d'accord avec toi concernant le chemin absolu vs http.

Mais comme je fais un include() avec une variable en argument, je dois lancer http.

Bon, tout à coup un doute m'assaille, parce qu'évidemment le contexte de mon code n'est pas aussi simple que mon exemple. Je vais vérifier.

En attendant, j'ai changé la manière de faire et utilise un array() au lieu des define() et ça le fais pour moi.

Donc ce problème est devenu de la pure curiosité intellectuelle.

Merci en tout cas à toi de m'avoir répondu.