2010-05-10 3 views
2

J'ai un site en direct qui comprend différents fichiers php en fonction de la page à laquelle l'utilisateur tente d'accéder. L'en-tête et le pied de page sont les mêmes, mais dans le fichier, si l'utilisateur demande filename1.php par rapport à filename2.php, un autre php est chargé dans le contenu de la page. Trucs CMS de base.L'utilisation de include() pour charger différents contenus de pages agit différemment localement vs hébergé

Sur le site en direct, cela fonctionne très bien. Je viens de mettre en place un environnement de développement local, et cela ne fonctionne pas. Le fichier qui est censé charger au milieu de la page est le seul fichier chargé. Je ne dis pas ça bien. Voici un exemple:

Comment ça marche en direct:

<html> 
    <head> 
     Stuff 
    </head> 

    <body> 
     More stuff 
     <? include('some_file.php'); ?> 
    </body> 
</html> 

Comment ça marche localement:

<? include('some_file.php'); ?> 

seulement que les charges de fichiers, aucun autre contenu.

Vous ne savez pas pourquoi une seule page est en train d'être chargée, mais pas le contenu qui l'entoure? Si je ne m'explique pas bien, faites le moi savoir.

Éditer:

Cela pourrait être une meilleure explication? ou non .. De toute façon, c'est comme la page incluse, au lieu de charger dans au milieu du fichier d'index, est en train de charger au lieu de le fichier d'index.

Edit 2:

Voici à quoi il ressemble en direct, qui peut être vu à http://saloncosabella.com/our_team/meet_our_team: live http://img.skitch.com/20100510-j36r58pu6kjrmekexixh81f96i.jpg

Et voici à quoi il ressemble localement: local http://img.skitch.com/20100510-q29f2uq34g5pp68w5ke77dddks.jpg

Le html qui montre sur le site local (pas tout ce joli, je sais):

    <a href="/our_team/meet_our_team?stylist=jamie.staton"><img src="/images/our_team/jamie.staton.png" class="thumbnail first_thumb" /></a><a href="/our_team/meet_our_team?stylist=torrey.staton"><img src="/images/our_team/torrey.staton.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=brittany.benallo"><img src="/images/our_team/brittany.benallo.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=victoria."><img src="/images/our_team/victoria..png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=tiahna.cristobal"><img src="/images/our_team/tiahna.cristobal.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=christina.walker"><img src="/images/our_team/christina.walker.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=kristen.pulst"><img src="/images/our_team/kristen.pulst.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=allison.canino"><img src="/images/our_team/allison.canino.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=lia."><img src="/images/our_team/lia..png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=alex.woodworth"><img src="/images/our_team/alex.woodworth.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=lauren.hassett"><img src="/images/our_team/lauren.hassett.png" class="thumbnail" /></a><a href="?stylist_page=1"><img src="/images/our_team/see_more.png" alt="See More" class="thumbnail" ></a>    <div class="clear"></div> 
+0

Est-il possible que vous ayez besoin de la balise d'ouverture '

+0

Non. J'ai des étiquettes courtes allumées, et elles fonctionnent dans d'autres situations sur le site. J'ai juste essayé, pour être sûr, et cela n'a pas réglé le problème. – hookedonwinter

+0

bien quel est l'emplacement réel de 'some_file.php' sur le système de fichiers? peut-être qu'il y a une différence dans votre 'include_path' essayez de changer' include' à 'require' et de voir ce qu'il vous aboie. – prodigitalson

Répondre

2

Comparez les sorties phpinfo() sur les deux serveurs. Voyez ce qui est différent. Peut-être que de cette façon vous pouvez déterminer pourquoi cela se produit.

De même, vous pouvez essayer un troisième serveur - peut-être une machine virtuelle déjà préconfigurée pour LAMPP. Voyez ce qui se passe. Et enfin, essayez de faire un test simple, comparez les résultats.

+0

Eh bien c'est (le phpinfo()) juste une bonne idée. Je reviendrai vers toi. – hookedonwinter

+0

Eh bien, j'ai directement deux versions différentes de php en cours d'exécution. Local est 5.3.1 et live est 5.2.6. En plus de cela, il y a beaucoup de différences. J'ai enregistré l'info: Local - http://pjhoberman.com/storage/sc_local.html Live - http://pjhoberman.com/storage/sc_live.html. – hookedonwinter

+0

Dans votre php.ini local, définissez allow_url_fopen sur off. Ensuite, assurez-vous que votre fichier inclus est inclus dans les balises de fin Valides. Le manuel PHP dit: "Quand un fichier est inclus, l'analyse passe en mode PHP et en mode HTML au début du fichier cible, et reprend à la fin.Pour cette raison, tout code dans le fichier cible devrait être exécuté car le code PHP doit être inclus dans les balises de début et de fin PHP valides. " Lire l'entrée sur "include" * et tous les commentaires *. Peut-être que vous trouverez quelque chose là-bas. Le fichier inclus, s'il est en utf-8, devrait être sans nomenclature. – Vanco

0

Peut-être que la balise courte est désactivée sur votre serveur local. Vérifiez cette variable,

short_open_tag 
+0

Non, pas le problème. La variable est définie sur on dans le fichier ini, et les balises courtes fonctionnent ailleurs. J'ai essayé hookedonwinter

0

Vos scripts utilisent-ils la mise en tampon de sortie? Si la zone d'en-tête active la mise en mémoire tampon et que votre inclusion 'milieu' fait un ob_end_clean() et ne conserve pas les données du tampon renvoyées, cela semblerait que seule l'inclusion du milieu était affichée, même si tout était correctement généré.

+0

Je n'utilise aucune sorte de mise en mémoire tampon, mais, si c'était le cas, pourquoi cela changerait-il la sortie où la seule variable est le serveur? – hookedonwinter

0

Très très Estrange ...

On dirait que le serveur web est rien sortie sur les balises PHP ...

Ou peut-être, la sortie ne démarre pas tant que le module PHP est nécessaire .

¿Pouvez-vous ajouter le texte <?php echo "hi"; ?> dans la première ligne du fichier local pour vérifier si cela fonctionne?

0

Avez-vous une sortie; dans ton code php? Suppression de toute sortie; s dans mon php résolu le problème pour moi.

Questions connexes