Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
Bonjour,
Je suis sous FLUXBB 1.5.9
J'ai voulu modifier le code des pages suivantes de FLUXBB pour obtenir des dates au format français :
- common.php
- functions.php
- admin-options.php
en utilisant un exemple fourni sur ce forum ICI
Au final, je n'ai pas réussi à obtenir ce que je souhaitais 
J'ai donc décidé de revenir en arrière et j'ai remis en place les 3 fichiers à partir de la sauvegarde.
A chaque fois que je veux accéder à la page ADMINISTRATION / OPTIONS, j'obtiens ce message d'erreur :
Fatal error: Cannot redeclare get_microtime() (previously declared in /mnt/100/sdb/9/a/contact.dmc/expatforum/include/functions.php:16) in /mnt/100/sdb/9/a/contact.dmc/expatforum/include/functions.php on line 14
Quelqu'un pourrait-il me dire quelle est mon erreur et comment retrouver l'accès à cette page ?
Merci
Cordialement
Denis
Hors ligne
Bonjour,
Vous n'avez pas remis en l'état d'origine toutes les modifications que vous aviez effectuées.
A priori, vous avez deux fois la déclaration de function get_microtime dans le fichier include/functions.php
Je vous signale qu'il existe la mod DATLOC Date Localization dont la discussion afférente est là
D'ailleurs, c'est noté en bas de la page que vous avez consulté :
La mod Date Localization, effectue les modifications de manière automatique à l'aide du plugin Mod Installer
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Merci pour cette réponse.
Si, j'ai remis en l'état d'origine toutes les modifications.. c'est bien çà que je ne comprends pas !
J'ai bien reperé la mod, mais trop tard..
C'est totalement incompréhensible. Avant de modifier, j'ai sauvegardé les 3 fichiers qui ont été remis en place ensuite...
Hors ligne
Je viens de faire une comparaison ligne à ligne du code des 3 fichiers en ligne avec celui "brut" de FLUXBB... 100% identique.
Tout mon forum fonctionne, sauf l'accès à la page OPTIONS d'administration.
Je sèche totalement
Hors ligne
Bonjour,
Supprimez tous les fichiers du dossier fluxbb/cache/ sauf index.html et .htaccess.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
J'ai délà nettoyé le cache, sans succès...
Cà fait 3 heures que je suis sur ce problème 
Je fais certainement une erreur quelque part, mais où ? !
L'appel à la fonction get_microtime() n'est présente qu'1 fois dans admin_options.php
Même le message d'erreur n'est pas clair...
Fatal error: Cannot redeclare get_microtime() (previously declared in /mnt/100/sdb/9/a/contact.dmc/expatforum/include/functions.php:16) in /mnt/100/sdb/9/a/contact.dmc/expatforum/include/functions.php on line 14
Dans include/functions.php on line 14, voilà ce que j'ai
14 function get_microtime()
15 {
16 list($usec, $sec) = explode(' ', microtime());
17 return ((float)$usec + (float)$sec);
18 }Dernière modification par Denis (15-03-2016 19:44:33)
Hors ligne
Bonsoir,
> L'appel à la fonction get_microtime() n'est présente qu'1 fois dans admin_options.php
Je n'ai pas d'appel à get_microtime dans admin_options.php.
Vous l'avez à quelle ligne ?
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
oops... désolé je fatigue grave là !! Toutes mes excuses
Effectivement, il n'y a pas d'appel à la fonction dans admin_options.php
Mon entête admin_options.php dit
// Tell header.php to use the admin template
define('PUN_ADMIN_CONSOLE', 1);
define('PUN_ROOT', dirname(__FILE__).'/');
require PUN_ROOT.'include/common.php';
require PUN_ROOT.'include/common_admin.php';C'est dans common.php que l'appel se fait
// Record the start time (will be used to calculate the generation time for the page)
$pun_start = get_microtime();Hors ligne
Bonsoir,
L'erreur ne dit pas qu'il y a une problème d'appel de la fonction, mais qu'il existe une seconde déclaration de la fonction get_microtime.
Cette fonction est déclarée (créée) dans include/functions.php par les lignes que vous avez indiquées précédemment (lignes 14 à 18) par :
function get_microtime.....
L'erreur indique qu'il y a avant d'arriver sur cette déclaration, une autre déclaration de la même fonction.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Oui, çà je l'ai bien compris...
Je viens de faire un nouveau test en réinstallant les 3 fichiers directement depuis le ZIP de la version officielle de FLUXBB 1.5.9. Ils sont donc vierges de toute modification et c'est la seule et unique intervention que j'avais effectuée aujourd'hui. Hier, mon forum fonctionnait nickel....
Résultat identique >>> Le même message d'erreur !
J'ai la désagréable impression que le problème vient côté hébergeur, chez Free
Hors ligne
Nouveau test
Chez le même hébergeur, j'ai un dossier FTP de sauvegarde avec un backup complet du forum : Si je lance le forum depuis ce dossier de backup, j'ai accès à ma page Administration / Options alors que depuis le dossier principal, çà ne marche pas...
J'ai tenté de renommer mon dossier de backup avec le nom du dossier principal... Et là, çà ne marche plus !!
Si cà vous dit quelque chose ?
Dernière modification par Denis (16-03-2016 12:41:25)
Hors ligne
Bonjour,
C'est pas comme ça que vous devez « travailler ».
Vous développez, mettez au point, corrigez, modifiez chez vous avec un serveur local et, seulement une fois que tout fonctionne, vous transférez par FTP sur votre site réel. Modifier directement sur le site réel est source d'erreurs.
Vous ne pouvez pas, comme ça renommer des dossiers sans tenir compte des éventuels liens qui prennent en compte le nom dudit dossier.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
C'est très gentil de me donner des conseils sur la façon de travailler.
Je suis développeur de métier depuis 25 ans
je sais ce que je fais. Avec l'expérience, j'ai appris que l'informatique n'était pas une science exacte.
Bien entendu, j'ai un environnememnt de dév EasyPHP en local et cela fonctionne en local.
Votre remarque n'est pas constructive.
Hors ligne
Bonjour,
Ça me fait penser à des inclusions multiples de functions.php. Le fichier serait inclus plusieurs fois ? Si oui, supprimer le(s) include/require redondant(s) ou bien remplacer tous les include/require par des include_once/require_once
Bouh !
StarShip Renaissance
Hors ligne
Merci de cette réponse.
J'ai vérifié le code ligne à ligne afin de rechercher les inclusions redondantes : rien
J'ai même procédé à une comparaison entre le code de mes fichiers et les originaux : identiques !
C'est bien pour cela que je cherche de l'aide.
Hors ligne
Je suis développeur de métier depuis 25 ans
je sais ce que je fais.
Et alors !
Ça fait quarante-cinq années que je programme sur une vingtaine de langages, entre autres : Cobol, Fortran, Pascal, Atol, ATLAS, PHP, C++, assembleurs divers, mais je sais que je continue à faire des erreurs.
Si je vous dis que chez Free, il ne faut pas modifier en ligne, c'est d'expérience ; maintenant, si vous savez ce que vous faites, alors continuez de modifier en ligne.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
On ne va pas jouer à qui a la plus grosse
même si j'ai quelques jolies réalisations informatiques à mon actif pour des clients de renom. Je sais également que je ne suis pas exempté de faire des erreurs.
Je suis quand même un peu surpris de la manière d'accueillir les demandes dans une rubrique intitulée "Entraide", mais bon, c'est très français ce comportement : plutôt que répondre "je ne sais pas", on répond en mettant en cause les compétences du demandeur.
J'ai parcouru ce forum et d'autres et visiblement cette erreur est récurrente et toujours sans solution.
Merci quand même
Hors ligne
Déjà stop avec les "c'est très français". Vas sur un site anglophone d'entraide, lâches-y que tu as 25 ans d'expérience et que tu sais ce que tu fais alors que tu demande de l'aide ; Je peux t'assurer que tu te fais basher direct genre :
-"Puisque tu es expérimenté et que tu sais ce que tu fais, qu'est-ce que tu fous sur un forum d'entraide ?".
Quand on a un problème du genre on recherche "function get_microtime(" dans toute l'arborescence histoire de voir si elle se trouve pas deux fois et on guette les include/require maladroit qui feraient appel deux fois au même fichier (functions.php) et ce même en cascade.
Si ce n'est pas ça et bien tu es coincé par un lien symbolique, un cache maison de free, bref une merde du genre à laquelle tu ne peux rien à moins de supprimer le répertoire entier, attendre que le cron de free le répercute sur son cache et le recréer pour y mettre ta backup. En gros une manœuvre simple mais très peu transparente pour les visiteurs.
D'où la remarque d'Oto, on ne modifie pas directement en ligne, surtout sur un mutu où l'on n'a pas la main sur les réglages vitaux parce que si ça foire on est biaisé.
Au cas où : http://php.net/manual/fr/function.get-i … -files.php
Et cette erreur, ce symptôme on dira plutôt, n'est pas sans solution puisqu'il est résolu dans beaucoup de sujet et est loin d’être récurrent sauf quand on fait des include et require à l'arrache.
https://www.google.fr/search?q=cannot+r … :fluxbb.fr
NB: Ce n'est pas parce que 1000 personnes disent une connerie que ça en devient une vérité. Et ce n'est pas parce que tu fais mal une chose depuis 25 ans que ça en devient une méthode correcte. T'étais juste passé entre les gouttes et t'avais évité les grosses tuiles jusque là mais tu viens de te prendre tout le faîtage sur la tronche.
Dernière modification par mangafan (18-03-2016 14:10:54)
:canon: Mangafan : Mettez un chat dans votre processeur ! 
Hors ligne
Quand on a un problème du genre on recherche "function get_microtime(" dans toute l'arborescence histoire de voir si elle se trouve pas deux fois et on guette les include/require maladroit qui feraient appel deux fois au même fichier (functions.php) et ce même en cascade.
Cà, c'est évidemment ce que j'ai fait dans un premier temps.
Et cette erreur, ce symptôme on dira plutôt, n'est pas sans solution puisqu'il est résolu dans beaucoup de sujet et est loin d’être récurrent sauf quand on fait des include et require à l'arrache.
Je n'ai fait aucun include ou require supplémentaire du tout.
D'où la remarque d'Oto, on ne modifie pas directement en ligne, surtout sur un mutu où l'on n'a pas la main sur les réglages vitaux parce que si ça foire on est biaisé.
Comme je l'ai déjà indiqué, je n'ai rien modifié en ligne. J'ai récupéré un mod sur ce site, modifié mon code et testé en local, puis envoyer mes fichiers en ligne, comme il est d'usage de faire.
Si ce n'est pas ça et bien tu es coincé par un lien symbolique, un cache maison de free, bref une merde du genre à laquelle tu ne peux rien à moins de supprimer le répertoire entier, attendre que le cron de free le répercute sur son cache et le recréer pour y mettre ta backup. En gros une manœuvre simple mais très peu transparente pour les visiteurs.
Effectivement, et c'est la piste sur laquelle je travaille.
Merci pour ce message constructif qui vient confirmer mon analyse.
Hors ligne
L'incompréhension vient surement du fait qu'on ait pu ressentir au fil des posts que tu aurais fait la modif online.
Free est trop exotique à mon goût. C'est con mais comme on ne peut pas connaître leur infra, je l'évite et si je dois m'en servir contraint et forcé et bien je fais un test sur un répertoire avant d'utiliser la racine d'un site parce que je les soupçonne d'avoir x version de serveur et autant que faire se peut j'évite même d'utiliser la racine d'un hébergement free.
Et comme tout cela est pénible, certains soft doivent être modifié pour marcher comme ça, j'évite tout simplement free dès que possible.
Dernière modification par mangafan (18-03-2016 14:46:02)
:canon: Mangafan : Mettez un chat dans votre processeur ! 
Hors ligne
Tout à fait, c'est exactement mon sentiment concernant Free...
Malheureusement, pour ce forum, je n'ai pas le choix de l'hébergeur.
Preuve en est que c'est probablement lié à Free : le test que j'ai fait et indiqué plus haut..
- Recréation d'un nouveau répertoire
- Envoi FTP des même fichiers que ceux contenus dans le répertoire qui pose problème
et tout fonctionne !!!
Sauf intervention d'un tech de chez Free, je suis donc dans l'impasse.
Merci en tout cas...
Hors ligne
Bonjour,
En plus, Free est en plein « tests » de passage à PHP 5.6.8, de changements de version Apache (2.2 -> 2.4), de changement de version MySQL, de supporter mysqli, etc. De plus, le paramétrage de PHP varie au fil du temps, ce qui était autorisé hier, ne l'est plus aujourd'hui, mais on ne peut pas le savoir.
Il est totalement impossible de savoir quelles sont les fonctions PHP désactivées ; le pire est que lorsque l'on exécute une fonction désactivée, elle ne fait rien et ne retourne rien, même pas false.
Parfois les transferts par FTP disent que tout s'est bien passé, mais certains fichiers n'ont pas été transférés, ou incomplètement.
C'est pourquoi mes sites sont depuis au moins trois ans hébergés chez Gandi où, même en mutualisé, j'ai accès à beaucoup de paramètres, où je peux voir les logs Apache, PHP et MySQL, etc.
Remarque : sur votre forum, vous avez un </head> surnuméraire.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Merci du signalement pour la balise doublée : corrigé
Hors ligne
[résolu]
Comme l'erreur est humaine et que je suis humain, l'erreur venait d'un mauvais transfert FTP.
J'avais simplement copié le fichier admin_options.php (code) dans lang/french/ en lieu et place de admin_options.php (la traduction)
Donc, effectivement, double appel à la fonction. Vicieux, parce que même nom de fichier...
Hors ligne
Bonsoir,
Merci du retour.
L'expérience n'est jamais qu'une longue suite d'erreurs, chacune faite une seule fois.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne