Include dans include et readfile

brad689
Invité n'ayant pas de compte PHPfrance

17 oct. 2006, 20:19

Bonjour!

petit souci ou je bloque depuis pres de une semaine!!
J'explique:

a la racine de mon Site j'ai Page1.php qui include page2.php qui appelle black.htm et red.htm

Concernant le lien "red" il appelle bien red.html mais il ne le met pas dans page1.php il le met dans une nouvelle page (page suivante)

structure des dossiers sur le Ftp:
http://www.monsite.com/dossier/page1.ph ... .black.htm et red.htm

Donc le probleme se situerait apparement au niveau du cheminement car page1.php n'est pas dans le meme dossier que Page2.php et que Black et red.html. donc quand Page2.php appelle Black et red.html ils se dirigent vers Page1.php au lieu de Page2.php qui est include dans Page1

J'y suis presque arrivé avec readfile qui appelle Black et red.html dans page1.php.

ce qui se passe c'est que Page1.php include bien Page2.php mais Page2.php n'appelle pas black.html qui doit s'afficher des l'include de page2.php

Pour Red.html, il est appelle a l'aide d'un lien "red" qui le fait venir dans page2.php dans la Zone PHP la meme ou est black.html.

Mes doutes sont sur le cheminement et sur le lien...

J'espere que j'ai été assé clair... :)
Voila je galere un peu la dessus, j'espere que vous pourrez m'aider

merci de votre temps

Code sur page2.php

Code : Tout sélectionner

<?php readfile (dirname('__FILE__') . 'Cap/black.php'); if ( $_GET['page'] == 'red' ) { readfile (dirname('__FILE__') . 'Cap/red.htm'); } ?>
Code du lien "red" qui appelle red.html dans page2.Php

Code : Tout sélectionner

a href="page1.php.php?page=red">Red</a>

Eléphant du PHP | 271 Messages

18 oct. 2006, 01:07

Qu'appelles tu ?
.. n'appelle pas black.html qui doit s'afficher des l'include de page2.php
Si c'est un "include" d'une page .html dans une page .php ça ne marche pas. Tes 2 fichiers doivent avoir l'extension .php

J'espère t'avoir aidé un peu.
Patience et obstination sont des qualités !

Eléphant du PHP | 184 Messages

18 oct. 2006, 02:06

Si c'est un "include" d'une page .html dans une page .php ça ne marche pas. Tes 2 fichiers doivent avoir l'extension .php
La fonction include ne possêde aucune restriction concernant les fichiers d'inclusion donc il est tout à fait possible d'y mettre un fichier HTML.

Concernant ton probleme brad689, un premier conseil serait de relire ton code parce que il est truffé d'erreurs que je qualifierai d'étourderie, la rigueur est de mise.
Image

Petit nouveau ! | 5 Messages

18 oct. 2006, 09:53

Salut,

Merci de m'aider la dessus :)

Sinon oui j'ai surement fait des erreurs mais a mon niveau...je ne vois plus...je vois pas ou...quelqu'un peut m'aider a realiser ce code correctement ?

Graphistnet tu peux m'aider ?

Merci encore de vos aides
:roll:

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

18 oct. 2006, 10:04

readfile (dirname('__FILE__') . 'Cap/black.php');
> ta page "black" n'était-elle pas une page html et non php ?
readfile (dirname('__FILE__') . 'Cap/red.htm');   
> ta page red n'aurait elle pas l'extension html plutôt que htm ?

Code : Tout sélectionner

href="page1.php.php?page=red"
> es-tu certain qu'il y ait deux fois l'extension .php à ta page1 ?

Petit nouveau ! | 5 Messages

18 oct. 2006, 10:34

Salut ryle,

Merci pour ton aide.

Désolé j'ai fais beaucoup d'erreur de frappe....alors je remets mon code corrigé et je vous explique le resultat.

Code : Tout sélectionner

<?php readfile (dirname('__FILE__') . '/Cap/black.htm'); if ( $_GET['page'] == 'red' ) { readfile (dirname('__FILE__') . '/Cap/red.htm'); } ?>
Le lien de red.html:

Code : Tout sélectionner

<a href="page2.php?page=red.html">
Donc le resultat est que Black.html s'affiche bien des que Page2.php est include dans Page1.php. Donc ca c'est fait!! hihi

Maintenant j'ai le lien red qui ne fonctionne pas.
Enfin a moitié ce qui se passe c'est que Red.html apparait bien dans Page2.php mais le tout est affiché dans une nouvelle page IE (page suivante)...donc Page2.php est plus include dans page1.php

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

18 oct. 2006, 11:05

Et si au lieu de faire un lien vers page2.php tu gardais ton lien vers page1.php pour continuer d'ouvrir la même page qui incluera page2 et red ? :)

Code : Tout sélectionner

<a href="page1.php?page=red.html">
Nota : fais attention également, ça n'a peut être pas d'importance pour le moment, mais un utilisateur mal intentionné pourrait remplacer la valeur de "page=red.html" par une autre page de ton site et potentiellement récupérer code source, mot de passe ou autre information...

Petit nouveau ! | 5 Messages

18 oct. 2006, 11:21

yeah Ryle!!

Ben ca fonctionne pas avec Page1.php
Sachant que Page.php n'est pas dans le meme repertoire que les autres..

Avec page1.php, cela n'affiche rien (pas de message d'erreur)

le probleme vient il peut etre de la page1.php ?
faut il que je mette dans mon code PHP

Code : Tout sélectionner

case 'red': include ('dossier/red.htm');break;

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

18 oct. 2006, 11:51

C'est plus la structure de ton site que j'ai du mal à voir... Si j'ai bien compris tu as :

Code : Tout sélectionner

- dossier/ | - page1.php | - Cap/ | - page2.php | - black.html | - red.html
Et au niveau de ton code tu as :
- page1.php qui inclue page2.php quand tu l'ouvres. Qui doit donc ressembler à quelque chose du genre :
include("Cap/page2.php");
- page2.php qui fait un readfile sur black.html et red.html et qui doit avoir cette tête là :
readfile (dirname('__FILE__') . 'Cap/black.html');  
if ( $_GET['page'] == 'red' ) 
  readfile (dirname('__FILE__') . 'Cap/red.html');
Donc si tu appelles page1.php avec le paramètre page=red, tu devrais inclure page2.php, lire black.html et lire red.html nan ?

Petit nouveau ! | 5 Messages

18 oct. 2006, 12:00

pour le cheminement c'est bon, pour le code php sur Page1 c'est bon aussi et pour Page2.php c'est bon aussi (sauf que je dois rajouter un / avant le dossier sinon ca marche pas)

Sinon pour le lien red
<a href="page1.php?page=red.html">
Et cela affiche page planche dans page1.php

Petit nouveau ! | 5 Messages

18 oct. 2006, 12:04

pour le cheminement c'est bon, pour le code php sur Page1 c'est bon aussi et pour Page2.php c'est bon aussi (sauf que je dois rajouter un / avant le dossier sinon ca marche pas)

Sinon pour le lien red
<a href="page1.php?page=red.html">
Et cela affiche page planche dans page1.php