par
Calimero » 10 oct. 2008, 23:37
Il y a deux possibilités : soit cette constante est définie plusieurs fois dans le même fichier (problème d'include_once dont tout le monde parlait jusqu'à maintenant), soit elle est définie ailleurs (cette possibilité n'a pas été totalement éliminée).
Pour être sûr il te faut faire une recherche sur l'ensemble des fichiers en recherchant l'instruction
define et en regardant ce qui ressort (car on peut aussi -malheureusement- définir une constante avec un nom variable ce qui aurait pu échapper à ta recherche initiale...).
Une autre possibilité serait l'utilisation d'
auto_prepend_file sur ta configuration php, avec l'inclusion systématique d'un fichier définissant ces constantes et provoquant donc le conflit (peut-être complètement en dehors de ton application).
Si ça n'aide pas, je me mettrais à chercher du côté des possibilités "farfelues" (du genre stockage de code directement dans la base de données, ou à tout autre endroit qui n'a pas lieu d'être).
Enfin, si tu renonces finalement à trouver où se passe le premier define, tu peux encadrer le second (celui que tu connais) de cette manière :
if(!defined( "DB_HOST" )) define ( "DB_HOST" , "localhost" ) ;
Ainsi la constante ne sera déclarée que si elle ne l'a pas déjà été auparavant, ce qui supprimera du même coup ton message d'erreur (et, avouons-le, c'est tout de même plus propre, non ?

)
Il y a deux possibilités : soit cette constante est définie plusieurs fois dans le même fichier (problème d'include_once dont tout le monde parlait jusqu'à maintenant), soit elle est définie ailleurs (cette possibilité n'a pas été totalement éliminée).
Pour être sûr il te faut faire une recherche sur l'ensemble des fichiers en recherchant l'instruction [b]define[/b] et en regardant ce qui ressort (car on peut aussi -malheureusement- définir une constante avec un nom variable ce qui aurait pu échapper à ta recherche initiale...).
Une autre possibilité serait l'utilisation d'[b]auto_prepend_file[/b] sur ta configuration php, avec l'inclusion systématique d'un fichier définissant ces constantes et provoquant donc le conflit (peut-être complètement en dehors de ton application).
Si ça n'aide pas, je me mettrais à chercher du côté des possibilités "farfelues" (du genre stockage de code directement dans la base de données, ou à tout autre endroit qui n'a pas lieu d'être).
Enfin, si tu renonces finalement à trouver où se passe le premier define, tu peux encadrer le second (celui que tu connais) de cette manière :
[php]
if(!defined( "DB_HOST" )) define ( "DB_HOST" , "localhost" ) ;
[/php]
Ainsi la constante ne sera déclarée que si elle ne l'a pas déjà été auparavant, ce qui supprimera du même coup ton message d'erreur (et, avouons-le, c'est tout de même plus propre, non ? :-) )