Aller au contenu

Sujets conseillés

Posté

Bonjour,

Je viens de changer de serveur (php5). Avant! tout fonctionnait trés bien mais après migration, tout include presente des problèmes. (le nouveau serveur roule sous Php5)

Pour les includes, mon hebergeur m'a donné un changement à effectuer :

/home/users/web/b2761/glo.monuser/thematiques/alaune.php

au lieu de :

./thematiques/alaune.php

l'include marche, sauf que certainne pages ne chargent plus. Pourtant le lien direct sur le navigateur marche. Ma page d'accueil fait appel à 7 includes, J'ai fait des tests en supprimant quelques un et laissant d'autres. J'ai remaqué que certains include bloquaient quand d'autres roulaient et ainsi de suite.

Alors, que peut etre c'est un chemin relatif , j'ai testé:

<?php

include(dirname(__FILE__)."/home/users/web/b2761/glo.monuser/thematiques/alaune.php");

?>

... ca marche pas!

Ma quéstion: Est-ce que c'est l'hebergeur qui a limité le nombre d'include, si c'est non, qu'est ce qui peut etre la cause?

Merci pour vos réponses

Posté
Est-ce que c'est l'hebergeur qui a limité le nombre d'include

Pour être fixé là dessus il y toujours la bonne vieille méthode de faire un fichier test tout basique... avec 7 includes dedans, tu vois si ça marche, sinon après tu joues dessus pour étudier le comportement de la chose...

Sinon aussi, méthode encore plus simple, pourquoi ne contactes-tu pas directement ton hébergeur pour savoir ? ^^

Posté

include(dirname(__FILE__)."/home/users/web/b2761/glo.monuser/thematiques/alaune.php");

Ce code a de toutes façons très peu de chances de fonctionner. Que cherches tu à faire ici ?

Posté
Pour être fixé là dessus il y toujours la bonne vieille méthode de faire un fichier test tout basique... avec 7 includes dedans, tu vois si ça marche, sinon après tu joues dessus pour étudier le comportement de la chose...

Pas bête ton idée, je viens de tester avec 30 includes, ca prends du temps mais les 30 se chargent :wacko:

Et Mer*** ... ma tete va exploser

Posté

Hem. Je ne pense pas que tu faisais des appels include() via http, si ?

En tous cas, je ne comprends pas ce que tu veux faire avec le bout de code que j'ai cité : tu forces un chemin absolu à partir du dossier du fichier courant, auquel tu "ajoutes" un autre chemin absolu. Ca donne l'impression que tu mélanges un peu toutes les solutions, sans chercher à comprendre quel est le problème.

Bref, essaye en donnant plus de détail : quel est le chemin absolu du fichier dans lequel est placé l'include, et quel est le chemin absolu du fichier que tu veux inclure ?

La solution indiquée par ton hébergeur - bien que non portable - a au moins le mérite de fonctionner ; mais quand tu dis "sauf que certaines pages ne chargent plus", que veux tu dire par là ? quel est le message d'erreur exact ? et quelle est la ligne de code correspondant au message d'erreur ?

Posté (modifié)
Hem. Je ne pense pas que tu faisais des appels include() via http, si ?

Je fesais des appels dans le genre:

<?php include(&quot;http://www.monsite.com/rep/fichier.php"); ?>

Depuis ma migration, cette ecriture ne passe plus vue qu'elle ne fonctionne plus sous php5. Mon hebergeur m'a donné une solution, ré-ecrire cet appel par:

<?php

include("/home/users/web/b2761/glo.monuser/rep/fichier.php");

?>

Et ca marche!

Le probleme c'est que tous les appels marchaient sous php, mais avec la méthode sous php5, quelque includes passent plus.

En tous cas, je ne comprends pas ce que tu veux faire avec le bout de code que j'ai cité : tu forces un chemin absolu à partir du dossier du fichier courant, auquel tu "ajoutes" un autre chemin absolu. Ca donne l'impression que tu mélanges un peu toutes les solutions, sans chercher à comprendre quel est le problème.

C'est pour cela que je pose ma quéstion :nonono:

La solution indiquée par ton hébergeur - bien que non portable - a au moins le mérite de fonctionner ; mais quand tu dis "sauf que certaines pages ne chargent plus", que veux tu dire par là ? quel est le message d'erreur exact ? et quelle est la ligne de code correspondant au message d'erreur ?

Justement, Y a aucune erreur .. quand l'include 1 se charge, le second n'y est pas (page blanche). Quand je supprime le premier, le second se charge! (note que tout les liens sont bon, j'ai testé cela via le vavigateur, il n'y a ni probleme de BDD, ni probleme de script, ni probleme de chemin, j'ai tout testé et CA MARCHE) :mad2:

avez-vous une idée?

Modifié par moonwar
Posté

beurk :D Je ne suis pas suffisamment pédagogue pour refaire les bases, mais il y a du boulot.

Si tu as une page blanche sans message d'erreur c'est probablement que l'hébergeur masque les erreurs (comme recommandé). Il faudrait vérifier cela via un phpinfo() puis le cas échéant ré activer les options nécessaires ; par exemple :

error_reporting(E_ALL);
ini_set('display_errors', true);

La solution "à la goret" serait de remettre ces anciens appels via http, en utilisant cette fois readfile(). Mais c'est très lent, et vraiment crade.

Posté

Bonjour,

je crois que j'ai trouvé ce qui pose probleme!

Une de mes pages fait appel a un chemin relatif:

<?php
require_once(dirname(__FILE__) . '/includes/classes/class.mysql.php');
require_once(dirname(__FILE__) . '/includes/classes/class.outils.php');
require_once(dirname(__FILE__) . '/config/conf.php');
...

Donc, je fais un include() relatif d'une page qui fait elle-meme un autre include relatif..

Comment résoudre ce conflit ?

Merci pour vos réponses.

Posté

Que tes include au format http ne fonctionnent plus est normal (et prévisible)

Php 5 a un nouveau paramètre (depuis 5.2) qui est allow_url_include. Par défaut il est à "off". Avant cette version il n'avait que le allow_url_fopen...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...