Bonjour,

Je développe un petit site pour approfondir mes connaissances en php. J'utilise wamp pour le développer.

Mon problème est très étrange oO:

J'ai un dossier config contenant le fichier messages.php

Le fichier messages.php contient ceci:

define('MSG_SUCCESS_LOGIN', 'Connexion réussie !');


(il contient plein d'autres messages de ce genre aussi)

Mais voila, j'ai une page connexion ou le fichier messages.php est inclut sous cette forme:

include('http://localhost/config/messages.php');


Sauf que quand j'essaye d'afficher ce message avec un <?php echo MSG_SUCCESS_LOGIN; ?>, j'ai l'erreur suivante:
Notice: Use of undefined constant MSG_SUCCESS_LOGIN - assumed 'MSG_SUCCESS_LOGIN' in \wamp\www\core\test.php on line 5 et en dessous: MSG_SUCCESS_LOGIN

Mais lorsque j'inclus le fichier messages.php sous cette forme:

include('config/messages.php');


et ben ça marche, le message s'affiche correctement...

Le problème c'est que je dois utiliser le chemin absolu pour inclure ce fichier, et puis c'est quand même bizarre que ça marche uniquement en utilisant le chemin relatif Smiley sweatdrop
Quelqu'un saurait pourquoi cela fait ça? Et surtout comment résoudre ce problème?
Modifié par malob (29 Oct 2014 - 23:53)
Salut malob,

Ton erreur est tout à fait normale : la configuration de ton serveur Apache en local ne pointe pas réellement vers localhost quand tu saisis "http://localhost/" mais vers un virtual host.
Bref, la racine de ton chemin absolu que tu dois utiliser est "/" et non "http://localhost/".
Saisir "/config/" revient à écrire "http://www.exemple.com/config/" si c'est ton domaine, donc que tu sois en local ou sur un site distant, utilise "/" pour tes chemins absolus.

Donc tu auras compris, ton fichier "messages.php" sera toujours accessible (de n'importe quel fichier de ton site) par le chemin absolu "/config/messages.php".
Ça commence par "/" c'est un chemin absolu, sinon c'est relatif Smiley cligne
Tu l'inclus donc comme ça :
include('config/messages.php');

En espérant avoir éclairci ton souci.

Bonne soirée
Matthieu
Modifié par MatthieuR (30 Oct 2014 - 00:16)
Euh, j'ai été trop vite...
Tu l'inclus depuis toutes tes pages comme ça (mais tu l'auras compris...) :
include('/config/messages.php');

Bien avec le "/" devant Smiley murf

Ravi que ça puisse t'éclairer.
Modifié par MatthieuR (30 Oct 2014 - 01:00)