Function PHP : heu comment expliquer je deviens fou ;)

Function PHP : heu comment expliquer je deviens fou ;) - PHP - Programmation

Marsh Posté le 25-04-2013 à 11:06:00    

Bonjour,
Je ne pige pas, j'ai un fichier functions.php qui a toujours fonctionné mais lors de la migration sur un autre serveur me fait une erreur hallucinante :(
L'erreur est :

Fatal error: Cannot redeclare getMonthFr() (previously declared in /home/www/footchball.com/inc/functions.php:4) in /home/www/footchball.com/inc/functions.php on line 30


Le code est :  

Code :
  1. <?php
  2. include_once GLOBAL_PATH."inc/functions2.php";
  3. function getMonthFr($date_sql)
  4. {
  5. $m_fr[1] = "Janv";
  6. $m_fr[2] = "Févr.";
  7. $m_fr[3] = "Mars";
  8. $m_fr[4] = "Avril";
  9. $m_fr[5] = "Mai";
  10. $m_fr[6] = "Juin";
  11. $m_fr[7] = "Juil";
  12. $m_fr[8] = "Aout";
  13. $m_fr[9] = "Sept.";
  14. $m_fr[10] = "Octo.";
  15. $m_fr[11] = "Nove.";
  16. $m_fr[12] = "Déce.";
  17. $la_date = explode(' ', $date_sql); // on decompose la date SQL
  18. $date_sql = explode('-',$la_date[0]); // On prend la partie date
  19. if (substr($date_sql[1],0,1) == '0' ) // On verifie si le 1er caractere est 0 dans le numero du mois -> Mois = 02 et non 2 pour Février
  20. {
  21.  $date_sql[1] = substr($date_sql[1],1,strlen($date_sql[1]) -1);
  22. }
  23. $num_mois = $date_sql[1]; // La variable du numero du mois
  24. $nom_mois = $m_fr[$num_mois]; // La variable du mois en francais
  25. return $nom_mois ; // On renvoi le nom du mois en FR
  26. }


 
Dans le fichier functions2.php je ne rédefinis pas cette fonction, ce fichier functions.php est un include_once et le plus hallucinant c'est que la fameuse ligne 30 qui pose problème est l'accolade de fin de fonction.
 
Je sèche, avez vous déjà vu ça ? Pensez vous à un problème d'encodage du fichier ? Merci d'avance à tous de votre aide....

Reply

Marsh Posté le 25-04-2013 à 11:06:00   

Reply

Marsh Posté le 25-04-2013 à 12:34:43    

Salut,
 
A priori tu appelles ton fichier functions.php plusieurs fois.
 
Sinon, tu peux aussi tester si la fonction a déjà été définie :
http://php.net/manual/en/function.function-exists.php


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 25-04-2013 à 14:33:09    

Effectivement il doit y avoir de multiples rappels, mais je ne pige pas pourtant c'est un include_once qui est fait :(

Reply

Marsh Posté le 25-04-2013 à 14:37:59    

Peut être pas à tous les appels
 
Imagine un fichier A qui inclut le fichier functions.php avec include_once, et que ce même fichier A inclut aussi un fichier B, qui lui même inclut functions.php avec un include classique.


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 25-04-2013 à 22:17:03    

Je viens de vérifier tous les appels et y'a toujours un include_once ou require_once :( Quand je mets le include_once de la page index.php je n'ai plus l'erreur mais j'ai des erreurs comme quoi une des fonctions dans ce fichier functions.php n'existe pas. Ca confirme donc qu'il n'est pas chargé une seconde fois... Je deviens fou ;)

Reply

Marsh Posté le 25-04-2013 à 23:25:23    

Sujet clos merci beaucoup x1fr de ton implication mais y'avait bien un fichier include paumé que je croyais mort qui faisait un double appel à ce fichier functions.php

Reply

Sujets relatifs:

Leave a Replay

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