Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 28-09-2005 15:58:31

Guillaume
Membre

Integration, Cannot redeclare message()

Bonjour, tout d'abord félicitations pour toute la communauté française de PunBB, pour les docs et l'ambiance smile


Voilà je souhaiterais pousser l'intégration du forum dans mon site en permettant le login depuis n'importe qu'elle page, cela fonctionne parfaitement sauf sur la page d'index.
Cette page utilise un CMS, qui permet de gérer du contenus (ici des "news"), et là cela pose problème car en faisant l'include une fonction message() est déjà défini.

Est ce que quelqu'un a une idée de solution ? Surdéfinir la fonction ( je ne sais pas si c'est possible en php hmm )

Merci d'avance de vos réponses smile

Hors ligne

#2 28-09-2005 19:40:20

vin100
Membre

Re : Integration, Cannot redeclare message()

oui c'est le problème des scripts sans class (comme punbb) : on risque les conflits de nommage et visiblement c'est ce qui t'arrive

la solution ? j'en voit qu'une : renommer la fonction soit sur punbb soit sur ton cms et donc tous les appels de cette fonction dans le script hmm pas super super ouais

Hors ligne

#3 09-10-2005 14:53:43

Guillaume
Membre

Re : Integration, Cannot redeclare message()

Au vu de ce qu'il faut modifier ce n'est pas réalisable ...

Ne serait-ce pas plus simple de n'integrer que les éléments necessaires au login sur mes pages "externe" au forum ?

Hors ligne

#4 04-07-2006 13:04:48

Guillaume
Membre

Re : Integration, Cannot redeclare message()

9 Mois plus tard ^^

Bonour Je cherche toujour une solution.
J'ai réussi à contourner le problème de message().
Maitenant il ce pose un autre problème:
"Fatal error: Call to a member function on a non-object in  forum/include/functions.php on line 117"

La variable en question est $DB.
J'aimerais donc savoir qu'est-ce qui peut faire qu'une variable ne soit pas déclarée globale automatiquement ?

Dernière modification par Guillaume (04-07-2006 13:06:03)

Hors ligne

#5 04-07-2006 13:33:58

vin100
Membre

Re : Integration, Cannot redeclare message()

je comprend pas la question

Hors ligne

#6 04-07-2006 13:47:45

Guillaume
Membre

Re : Integration, Cannot redeclare message()

Désolé, j'exprimais le questionnement d'un ami qui me donne un coup de main et j'ai mal saisi sa question:

comment cela se fait que $db ne soit pas une variable globale, vu comment elle est déclaré, elle devrait l'être.

En faite on cherche à trouver ce qui fait que sur les pages où le cms est en place la variable n'est plus globale, tandis que sur les pages sans cms cette variable est bien global.

Dernière modification par Guillaume (04-07-2006 13:51:35)

Hors ligne

#7 04-07-2006 14:21:46

vin100
Membre

Re : Integration, Cannot redeclare message()

sans doute parce que dans le CMS il y a une fonction de protection qui détruit les variables globales

Hors ligne

#8 04-07-2006 14:41:20

vin100
Membre

Re : Integration, Cannot redeclare message()

attend tu peut me la refaire sans les commentaires et clairement parce que là c'est des hiérogliphes tongue

est-ce que tu as essayé d'afficher les erreurs PHP ?

    @ini_set('display_errors','on');
    error_reporting(E_ALL);

Hors ligne

#9 04-07-2006 15:06:14

vin100
Membre

Re : Integration, Cannot redeclare message()

le init_set permet d'activer l'affichage des erreurs si jamais ce n'est aps le cas mais il faut aussi régler le niveau d'erreur à afficher, donc la deuxième ligne

euh sinon ça :

echo "db='$db', GLOBALS['db']='$GLOBALS['db']'\n";

ça devrait t'afficher une "Parse error"

mais admetons que je mette ça dans une page test :

<?php
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';

echo 'db2='.$db2.', GLOBALS[\'db2\']='.$GLOBALS['db2']."\n";
$db2 = new DBLayer($db_host, $db_username, $db_password, $db_name, $db_prefix, $p_connect);
echo 'db2='.$db2.', GLOBALS[\'db2\']='.$GLOBALS['db2']."\n";
?>

j'obtiens bien :

db2=, GLOBALS['db2']=
db2=Object, GLOBALS['db2']=Object


après j'pense qu'il y a une couille plus haut mais que les erreurs ne sont pas affichées

Hors ligne

Pied de page des forums