Fork me on GitHub

Rapport de message :*
 

Re: aChat 0.23: pas de refresh automatique?

Titre du sujet : Re: aChat 0.23: pas de refresh automatique?
par Niluge sur 12/10/2007 22:09:38

Oui il semble qu'il y ait un problème avec les inclusions dans mon fichier admin_header.php.
Si quelqu'un comprends pourquoi il y a ce problème chez free.fr, et pas chez OVH, et expliquer le pourquoi du comment, ça m'intéresse fortement :

Voici la situation, on se trouve dans le répertoire admin/
Le fichier index.php appelle admin_header.php de la façon suivante :
include 'admin_header.php';


Ensuite dans admin_header.php, il y a entre autre
include_once( '../../../mainfile.php');

include_once( 
'../../../include/cp_header.php');

include_once( 
'../../../include/functions.php');

include_once( 
XOOPS_ROOT_PATH '/class/xoopsmodule.php');

include_once(
'functions.php');


Eh bien la dernière ligne pose problème, étant donné qu'en fait elle ne joue pas son rôle, tout en ne laissant aucun message d'erreur avec le mode debug apparemment.
En effet, la fonction achat_adminmenu est définie dans le fichier functions.php, et si on supprime les appels à cette fonction, c'est une autre fonction définie dans functions.php qui pose le même problème (voir messages d'erreur ci dessus)

Bref un problème bien étrange.

La solution que LionHell avait trouvé, est de remplacer dans admin_header.php la ligne
include_once('functions.php');

par
include_once('./functions.php');

Et là miraculeusement ça marche.

Alors c'est peu être une histoire des droits d'exécution du code, vu que les CHMOD chez free.fr ça pose des problèmes, et que parfois sous linux/unix, il faut rajouter ./ pour pouvoir exécuter un programme depuis certains shells.

Mais ça n'expliquerait pas pourquoi l'include du admin_header.php dans le fichier index.php fonctionne très bien, sans ./ à ajouter...
Bref si quelqu'un pouvait m'éclairer sur tout ceci...

En attendant, Slipkorn, effectivement je ne t'ai pas envoyé la dernière version -- décidément je suis maudit --, c'est tout simplement que je ne me souviens pas qu'on ait fait des modifications avec LionHell après que je lui ait envoyé les fichiers...
Je vais faire ce soir une version où je corrige ces includes, même si je ne sais pas encore pourquoi je dois les corriger... Et je t'envoies ça par mail.
(ou si tu es vraiment pressé, tu peux modifier toi même le fichier admin_header.php, en rajoutant le ./ comme expliqué plus haut.)

Voilà!




EDIT : il semblerait que je commence à y voir un peu plus clair , avec la doc php :

Citation :

Les fichiers à inclure sont d'abord recherchés dans le dossier désigné par include_path, relativement au dossier courant, puis dans include_path, relativement au dossier de travail du script. Par exemple, si include_path est ., que le dossier de travail est /www/, et que vous incluez le fichier include/a.php et qu'il y a une instruction include "b.php" dans ce fichier, alors b.php est d'abord recherché dans /www/libraries/, puis dans /www/include/. Si le nom du fichier commence par ./ ou ../, il est cherché uniquement dans l'include_path relatif au dossier courant d'exécution.


Donc il suffit qu'il existe un fichier functions.php dans l'include_path paramétré chez free.fr, pour que l'include dans mon admin_header.php appelle un mauvais fichier functions.php. Et l'ajout de ./ règle tout.

j'ai été voir sur mon compte free.fr
voici l'include_path :

include_path    /mnt/***/***/*/**/niluge.kiwi/include:.:/usr/php4/lib/php


Donc il suffit que xoops soit à la racine du compte free.fr, et ça explique tout.

Bref victoire j'ai enfin compris !

Pardon pour tout ce baratin.... mais on sait jamais ça pourrait aider d'autres personnes.
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

28 Personne(s) en ligne (19 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 28 | Plus ...