Ajouter une include PHP dans un fichier TMP ?

Petit beurre
Invité n'ayant pas de compte PHPfrance

11 déc. 2007, 18:06

Bonjour ! :)

Voilà j'ai un petit problème suite à mon précédent message, je voudrais faire une include dans un fichier TMP (un fichier template) et je me demandais si ça pouvait marcher sur ce type de fichier car j'ai essayé avec ces 2 codes et rien n'apparait malheureusement :

Code : Tout sélectionner

<?php include ('../contentmedia.php'); ?>
(chemin relatif)

ET

Code : Tout sélectionner

<?php include("/usr/home/domains/monsite.com/public_html/test/script.php"); ?>
(chemin vers www.monsite.com/test/script.php)

Est-ce que vous pouvez me donner un petit coup de pouce s'il vous plait ?

Merci à vous. ;)

Petit beurre
Invité n'ayant pas de compte PHPfrance

11 déc. 2007, 20:26

S'il vous plait, personne ne connait ? :cry:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 déc. 2007, 22:18

Modération :
Petit beurre, les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit beurre
Invité n'ayant pas de compte PHPfrance

12 déc. 2007, 00:43

Pardon Ryle, j'attendrai mais c'est assez urgent et vu où vont les choses je n'aurai jamais de réponses.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 déc. 2007, 02:26

Modération :
Tes délais ne nous intéressent pas.
Nous savons que tu es en difficulté puisque tu demandes de l'aide,
mais nous sommes tous bénévoles et répondons selon nos disponibilités.

Merci de ne pas s'impatienter.


Dis toi que les messages de modération suivis d'un message d'excuses font aussi remonter le poste :-s

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 4674 Messages

12 déc. 2007, 12:37

Le code PHP qui est dans ton fichier ne sera exécuter que si le fichier est compris comme du PHP par Apache. Si tu as un fichier .html et que tu lui mets du PHP dedans, il ne sera pas exécuté (car c'est un fichier html !).
Pour voir si ton fichier est considéré par Apache comme un fichier PHP, fais tout d'abord un petit echo. Tu seras fixé. Et d'ailleurs, si le code n'est pas exécuté, il apparaît dans la source, c'est ton cas ?

Pour se faire, tu peux demandé à Apache de considérer les .tmp comme des fichiers PHP avec ce code (à placer dans un fichier .htaccess) :

Code : Tout sélectionner

AddType application/x-httpd-php .tmp
.

Je te redirige vers la documentation d'Apache pour plus de détails (n'hésite pas aller de liens en liens, on apprend toujours pleins de trucs intéressants ;-)).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Petit beurre
Invité n'ayant pas de compte PHPfrance

12 déc. 2007, 14:24

Merci HyWan, c'est super gentil de ta part j'ai fait un echo et il affiche bien le texte donc le PHP s'éxécute bien. :)

Par contre quand j'insère ce code ci-dessous dans ce même fichier tmp, rien ne s'affiche :

Code : Tout sélectionner

<?php include ('../script.php'); ?>
Le chemin relatif doit sûrement être mauvais alors, car mon fichier tmp où j'insère l'include se trouve dans www.monsite.com/test/templates.index.tmp et le script PHP se trouve sur www.monsite.com/test/script.php

Est-ce bien le bon chemin relatif ?

ViPHP
ViPHP | 4039 Messages

12 déc. 2007, 14:47

a ce que je vois oui. Tu n'as qu'a faire un echo dans le début de ton script script.php pour voir s'il s'exécute.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Petit Beurre
Invité n'ayant pas de compte PHPfrance

12 déc. 2007, 15:31

J'ai mis dans script.php :

Code : Tout sélectionner

<?php echo "test"; ?>
et rien ne s'affiche donc cela vient sûrement du chemin relatif qui doit être mauvais non ? Je vois pas du tout. :(

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 déc. 2007, 15:34

Même si tu mets le include dans ton fichier .tmp, le chemin doit être relatif par rapport au script appelé par le navigateur (page.php inclus template.tmp inclus libs.php => le chemin doit être relatif par rapport à page.php, pas template.php)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit Beurre
Invité n'ayant pas de compte PHPfrance

12 déc. 2007, 15:38

Salut Zeus, j'ai mis

Code : Tout sélectionner

<?php include (dirname (__FILE__).'/script.php'); ?>
et là ça marche !!

Je ne comprends pas d'ailleurs pourquoi ça marche avec ce code et pas avec l'include du haut ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 déc. 2007, 16:09

Parce que _FILE_ représente le chemin du fichier dans lequel il est affiché.
Et que en utilisant dirname(__FILE__), tu utilises un chemin absolu (depuis la racine de ton serveur) et non plus relatif. Du coup, le chemin ne dépend plus du fichier dans lequel il est appelé, il est juste dès que tu inclus le template ;)

Fait
echo dirname (__FILE__).'/script.php';
et tu devrais comprendre la différence ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit Beurre
Invité n'ayant pas de compte PHPfrance

12 déc. 2007, 16:27

J'ai fait ce que tu as dit Zeus et il me donne mon chemin absolu : /home/www/monsite/www/test/script.php

C'est un véritable casse tête, l'include par défaut du script était en chemin absolu :

Code : Tout sélectionner

<?php include("/var/www/monsite/script.php"); ?>
et cela ne marche pas non plus car rien n'est affiché ... :cry:

Petit Beurre
Invité n'ayant pas de compte PHPfrance

12 déc. 2007, 16:40

PS : Les fichiers PHP étaient en chmod 666 et je viens de les mettre en 777 mais j'ai toujours le même problème.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 déc. 2007, 17:30

Si tu compares tes chemins absolu, tu te rends bien compte que ce ne sont pas les même ...
Voilà pourquoi l'inclusion avec un chemin absolu ne fonctionne pas ;)

Sinon, un chmod 666 signifie que tout le monde peut lire et écrire sur ton fichier alors que 777, tout le monde peut lire, écrire et exécuter le fichier.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer