Archives FluxBB.fr

Les archives de FluxBB.fr

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

#1 15-12-2006 15:49:17

Matt
Membre

Problème d'inclusion (extern.php)

Bonjour,

Sur une page extérieure au forum, je souhaite afficher les dernières discussions du forums.
Pour ma part, j'ai utilisé ce code (que j'ai trouvé sur punbb.fr) à l'endroit où je voulais afficher les dernières discussions:

<?php
define('PUN_ROOT', './forums/');
$_GET["action"] = "active";
$HTTP_GET_VARS["action"]="active";
$_GET["show"] = "10";
$HTTP_GET_VARS["show"]="10";
$_GET["fid"] = "9,7,12,13,8,15";
$HTTP_GET_VARS["fid"]="9,7,12,13,8,15";
include("/home/www/xxxxxx/www/forums/extern.php");
?>

Cela marche parfaitement.

Mais voilà, je souhaite faire une autre inclusion (mais avec fid 14 et 21) mais à un autre endroit sur la page.
Le code ci-dessus placé à un autre endroit engendre ceci:

Fatal error: Cannot redeclare escape_cdata() (previously declared in /home/www/xxxxxx/www/forums/extern.php:164) in /home/www/xxxxxx/www/forums/extern.php on line 167

D'après mes recherches sur le forum, cela est normal car on ne peut pas appeler deux fois la même chose.

Que dois-je faire pour que cela fonctionne? Avez-vous une piste à me fournir?

D'avance, merci.

Dernière modification par Matt (15-12-2006 16:03:41)

Hors ligne

#2 15-12-2006 18:54:31

Pandark
Guide

Re : Problème d'inclusion (extern.php)

Ce n'est pas d'inclure le fichier deux fois qui pose problème, c'est de déclarer deux fois la fonction escape_cdata() (une fois à chaque inclusion). Il va donc falloir regarder dans extern.php (peut-être mettre une condition sur la déclaration de cette fonction...)


=>  Plugins | Modifications | Liens utiles   <=
                .._ -Pandark- _..
                Serial Dreamer

Hors ligne

#3 15-12-2006 19:08:08

Matt
Membre

Re : Problème d'inclusion (extern.php)

Je vais essayer de fouiner dans les manuels de PHP parce que je n'y connais pas grand chose!
Si quelqu'un sait comment faire, n'hésitez pas!
Merci Pandark.

Hors ligne

#4 17-12-2006 14:45:56

Matt
Membre

Re : Problème d'inclusion (extern.php)

Bon, je ne m'en sors pas, trop complexe pour moi! hmm

Hors ligne

#5 07-01-2007 20:48:58

Matt
Membre

Re : Problème d'inclusion (extern.php)

Bonsoir, j'ai vraiment besoin de votre aide! Je suis complètement bloqué.
Mon hébergeur a des problèmes avec les appels d'url et il me demande de faire des "includes standards"...
Un include de ce style me pose maintenant des problèmes (alors qu'avant non):

<?php include('http://www.sessionsdesurf.net/forums/extern.php?action=active&show=8&fid=9,7,12,13,8,15'); ?>

Dernière modification par Matt (07-01-2007 21:16:30)

Hors ligne

#6 07-01-2007 21:08:01

Ishido
Membre

Re : Problème d'inclusion (extern.php)


Chez Wam
Message tapé en Bépo avec un TypeMatrix 2030 USB smile

Hors ligne

#7 07-01-2007 21:16:10

Matt
Membre

Re : Problème d'inclusion (extern.php)

Oups, je corrige mon message précédent. C'est plutôt ceci:
http://www.sessionsdesurf.net/forums/ex … 12,13,8,15

Hors ligne

#8 07-01-2007 21:41:39

Ishido
Membre

Re : Problème d'inclusion (extern.php)

Utilises une URL relative, je pense que c'est ça qui bloque.


Chez Wam
Message tapé en Bépo avec un TypeMatrix 2030 USB smile

Hors ligne

#9 07-01-2007 22:22:33

Matt
Membre

Re : Problème d'inclusion (extern.php)

Si je veux afficher l'include sur ma page "index.php", quel sera l'adresse relative de "extern.php" (les deux fichiers étant dans le dossier "forums")?

Hors ligne

#10 08-01-2007 02:26:06

MT
Admin rasé

Re : Problème d'inclusion (extern.php)

tout simplement [c]extern.php?toutlereste[/c]


(s) MT
ex-Apupv
:faq: :recherche:
Gra.

Hors ligne

#11 08-01-2007 08:18:07

Morph1er
Membre

Re : Problème d'inclusion (extern.php)

Un peu HS, $HTTP_GET_VARS n'existe plus normalement.
Supprimes les lignes qui comportent $HTTP_GET_VARS.

Hors ligne

#12 08-01-2007 09:26:46

Matt
Membre

Re : Problème d'inclusion (extern.php)

MT a écrit :

tout simplement [c]extern.php?toutlereste[/c]

Bizarre, je ne peux pas mettre d'adresse relative dans mes includes. huh

Hors ligne

#13 08-01-2007 09:37:40

Matt
Membre

Re : Problème d'inclusion (extern.php)

Merci pour vos réponses.


J'ai enlevé les lignes comportant les $HTTP_GET_VARS.

Mais c'est bien le problème souligné par Pandark qui persiste.

Pandark a écrit :

Ce n'est pas d'inclure le fichier deux fois qui pose problème, c'est de déclarer deux fois la fonction escape_cdata() (une fois à chaque inclusion). Il va donc falloir regarder dans extern.php (peut-être mettre une condition sur la déclaration de cette fonction...)

<?php include ("http://www.sessionsdesurf.net/forums/extern.php?action=active&show=8&fid=9,7,12,13,8,15"); ?>

Avec plusieurs includes comme ci-dessus tout fonctionne... mais mon hébergeur me demande d'éviter les appels d'url.

<?php
define('PUN_ROOT', '');
$_GET["action"] = "active";
$_GET["show"] = "10";
$_GET["fid"] = "9,7,12,13,8,15";
include("/home/www/xxxxxxxxxxx/www/forums/extern.php");
?>

Avec plusieurs include comme ci-dessus, une seul liste s'affiche et le reste engendre des erreurs Cannot redeclare escape_cdata().

Quelle est la condition à créer sur la déclaration de cette fonction?

Hors ligne

#14 08-01-2007 11:15:17

MT
Admin rasé

Re : Problème d'inclusion (extern.php)

Je pense que là où il y a marqué [c]function escape_cdata($machin, $truc) { ... }[/c]
tu pourrais mettre un truc dans le style :

if (!defined(escape_cdata())
{
function escape_cdata($machin, $truc) { ... }
}

(s) MT
ex-Apupv
:faq: :recherche:
Gra.

Hors ligne

#15 08-01-2007 11:56:37

Matt
Membre

Re : Problème d'inclusion (extern.php)

Merci MT.

J'ai essayé ton astuce... malheureusement, elle entraîne ensuite une autre erreur comme Cannot redeclare check_cookie(). Si je fait la même manip sur la fonction check_cookie(), elle engendre une autre erreur et ainsi de suite.
Argh!!!

Hors ligne

#16 08-01-2007 19:07:40

MT
Admin rasé

Re : Problème d'inclusion (extern.php)

Est-ce que par hasard, tout en haut de ton code, tu n'inclurais pas common.php ?
Dans ce cas là, essaye de remplacer le [c]require PUN_ROOT.'include/common.php'[/c] par [c]require_once PUN_ROOT.'include/common.php'[/c]


(s) MT
ex-Apupv
:faq: :recherche:
Gra.

Hors ligne

#17 08-01-2007 20:36:48

Matt
Membre

Re : Problème d'inclusion (extern.php)

Bonsoir!

MT, non, je n'ai pas inclus common.php.
En ce moment, j'effectue les tests sur une page vierge donc pas de common.php.

Hors ligne

#18 07-02-2007 13:51:47

Matt
Membre

Re : Problème d'inclusion (extern.php)

Bonjour,

décidément, je n'y arrive pas... avez-vous des idées pour m'aider?

Hors ligne

#19 10-02-2007 12:25:19

Matt
Membre

Re : Problème d'inclusion (extern.php)

J'essaie d'avancer mais ça bloque...

Dans forums/include/user/ j'ai créé un fichier tableau2.php dans lequel j'ai mis le code ci-dessous:

<?php define('PUN_ROOT','../../');
$_GET["action"] = "active";
$_GET["show"] = "18";
$_GET["fid"] = "9,7,12,13,8,15,16,17,18,20,4,22,23";
include("/home/www/xxxxxx/www/forums/extern.php");
?>

Cela fonctionne très bien quand j'affiche directement la page forums/include/user/tableau2.php.

Ensuite, dans forums/include/template/main.tpl, j'ai placé <pun_include "tableau.php"> avant <pun_main>... et là, bug! L'include ne fonctionne plus.

Où me suis-je planté?! sad

Hors ligne

#20 10-02-2007 15:21:41

Matt
Membre

Re : Problème d'inclusion (extern.php)

Sur PunBB.org, on m'a donné l'astuce suivante: au lieu d'utiliser un include, on peut utiliser un cURL (ne me demandez pas ce que c'est, je n'en sais rien! tongue).

En tout cas, on peut apparemment se passer de allow_include_url grâce à un cURL.

Donc pour ceux qui ne peuvent pas faire d'appels d'url, il faut faire comme cet exemple:

<?php
$cp = curl_init("http://www.sessionsdesurf.net/forums/extern.php?action=active&show=10&fid=9,7,12,13,8,15");
curl_exec($cp);
?>

Et de ce fait, je peux dispatcher ces cURL où je veux sur mon site.

Avant d'apposer un [Résolu] sur cette discussion, j'attends d'avoir la confirmation qu'on peut réellement se passer de allow_include_url avec un cURL.

Hors ligne

#21 22-07-2007 13:45:46

chtyves
Membre

Re : Problème d'inclusion (extern.php)

YESSSSSSSs
MERCI pour cette astuce ^^

ca fais trois jours que je cherche a afficher avec extern.php hmm

et avec ca ca marche encore merci happy


C'est déjà assez triste de n'avoir rien à dire smile
Si en plus il fallait se taire siffle

Hors ligne

Pied de page des forums