Cannot redeclare mafonction() (previously declared in C:\wamp\etc

Cannot redeclare mafonction() (previously declared in C:\wamp\etc - PHP - Programmation

Marsh Posté le 14-05-2007 à 17:27:19    

Bonjour,
 

Code :
  1. Cannot redeclare errlogtxt() (previously declared in C:\wamp\...etc)


 
c'est l'erreur qui s'affiche sur une de mes pages. le message est très explicite: c'est dû au fait que j'inclue 2 fois le même fichier de config dans ma page (elle contient ma fonction errlogtxt()). La résoudre serait simple, il suffirait d'enlever ma ligne d'include('du fichier de config') en trop.
sauf que du coup il se produit une erreur EXTREMEMENT CURIEUSE.  :heink: je vous explique:
 
j'utilise des pseudo-frames classiques, et dans ma page index j'inclue le fichier de config comme ça il est PARTOUT sur le site, et c'est très pratique.
 
dans la page où survient cette erreur, le fichier de config est bien entendu inclus (car c'est la page index.php en fait mais avec un argument pour appeler la page à inclure, pseudo-frames quoi). et dans cette page appellée (?inclure=mapage.php), mapage.php contient le code suivant:
 

Code :
  1. mysql_connect($host, $login, $pass);
  2. mysql_select_db($db);


 
mais ça ne passe pas!  :ouch:  
j'ai des erreurs comme quoi le user n'est pas authentifié, pass incorrect, donc le mysql_fetch_array qui en découle renvoi une erreur ( not valid ressource etc) aussi, etc etc  :pt1cable:  
 
le problème est réglé si j'inclue UNE DEUXIEME FOIS ENCORE le fichier de config, par exemple:

Code :
  1. include('./config.php');
  2. mysql_connect($host, $login, $pass);
  3. mysql_select_db($db);


 
ça marche sans afficher AUCUNE ERREUR mais depuis que j'ai ajouté une fonction dans le fichier de config ça me fait cette erreur ( Cannot redeclare errlogtxt()  ). normal, car elle a déjà été appelée une fois. :/
 
Mais du coup si "php" sait que j'ai déjà inclus et lu ce fichier, pourquoi il ne me connecte pas à $host avec $login et $pass?!!
 
je me suis dit que j'ai peut-être du oublier un mysql_close() qqpart ou que sais-je, j'ai verifié tous mes fichiers, ça semble correct à ce niveau.
 
Bref d'où est-ce que celà provient? le mysql_connect() marche très bien sur les autres page avec une seul include() de config.php dans mon index.php mais dans ce contexte ci-présent la page n'en veut pas, je dois l'inclure 2 fois!! mais avec la fonction ça merde! c'est curieux bordeyyyl??  :pt1cable:

Reply

Marsh Posté le 14-05-2007 à 17:27:19   

Reply

Marsh Posté le 14-05-2007 à 17:30:20    

gorret staille si tu veux corriger vite fait sans chercher la source de ton problème:
http://fr3.php.net/include_once

Reply

Marsh Posté le 14-05-2007 à 17:34:05    

anapajari a écrit :

gorret staille


 :??:  
 

anapajari a écrit :

si tu veux corriger vite fait sans chercher la source de ton problème:
http://fr3.php.net/include_once


oui j'ai vu en cherchant sur google en tapant mon msg d'erreur, mais ça n'a pas résout mon prob, peut-être ai-je mal procédé.
 
dans index.php j'ai mis:

Code :
  1. include_once('./config.php')


 
 
et RIEN DU TOUT dans mapage.php (celle qui génère l'erreur) et ça ne marche pas. je dois faire un include_once() dedans aussi?
 
en fait, include_once c'est si le fichier n'est pas déjà inclus il l'inclus?  :??:

Reply

Marsh Posté le 14-05-2007 à 17:34:35    

dire que dès que ce problème est réglé mon site est terminé. [:dawa]

Reply

Marsh Posté le 14-05-2007 à 17:37:11    

Ya pas un projet de loi contre les frames [:mister_k]


Message édité par theredled le 14-05-2007 à 17:38:10

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 14-05-2007 à 18:41:32    

pseudo-frames. pas iframes. [:moule_bite]
 
1.je viens d'essayer include_once('./config.php'); dans index.php et rien dans mapage.php --> même erreur.
2.je viens d'essayer include_once('./config.php'); dans index.php et include_once('./config.php'); dans mapage.php --> même erreur.
3.je viens d'essayer include_once('./config.php'); dans index.php et include('./config.php'); dans mapage.php --> même erreur.
4.je viens d'essayer include_once('./config.php'); dans index.php et require('./config.php'); dans mapage.php --> même erreur.
5.je viens d'essayer require('./config.php'); dans index.php et include_once('./config.php'); dans mapage.php --> même erreur.
etc
 
:/ :/ :/


Message édité par pimsa le 14-05-2007 à 18:41:44
Reply

Marsh Posté le 14-05-2007 à 18:46:23    

bon ça me fais chier, j'étais curieux de connaître le raison de ce conflit mais je vais faire un truc malpropre --> je vais inclure 2 fois le fichier de config et mettre la fonction dans un fichier à part. :/
ça marche mais bon. :/

Reply

Marsh Posté le 14-05-2007 à 18:51:11    

Au hasard :
- fichier de config inclus le premier coup à l'intérieur d'une fonction
- tentative d'utilisation des variables du fichier de config dans une fonction mais sans utilisation du mot clé "global"
 
C'est l'un des deux ou les deux. (déduction sure à 99%, le dernier % serait une destruction d'une des variables avant l'endroit où tu en as besoin)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed