PHP un include qui ne passe pas...

Résolu/Fermé
Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 - 5 févr. 2010 à 09:44
Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 - 5 févr. 2010 à 12:20
Bonjour,
J'ai un problème d'include que je n'arrive pas à régler.
J'utilise des pseudo-frames et dans un de mes includes j'obtiens:
Warning: include(offres.php?offre=15) [function.include]: failed to open stream: No error in C:\...\...\...\..\index.php on line 21

Voici le code concernant cette ligne :
15   <?php 
16   $page="defaut.php";
17   if(isset($_GET["offre"]))
18   {
19   $page="offres.php?offre=".$_GET["offre"];
20   }
21   include($page); ?>

Je précise que lors de l'ouverture de la page sans avoir choisi d'offre la page "defaut.php" s'affiche bien,
et si j'entre directement l'adresse de la page "offres.php?offre=15" par exemple la page s'affiche (avec bien sûr des erreurs dues au fait que je n'ai plus la connexion BDD hors de ma page d'index ;)).
Je ne comprends pas trop, surtout avec un message d'erreur indiquant "No error" ...

Voilà, si des personnes plus expertes que moi en PHP (ça va pas être dur) peuvent m'aider j'en serai bien heureux.


2 réponses

Bonjour

Je ne vois pas non plus pourquoi ne "No error", par contre je sais pourquoi ton include ne marche pas.
L'erreur est classique : les gens confondent le système de fichier du serveur et les url (adresses internet).
Quand tu fais un include, tu fais généralement appel à un fichier du serveur (sauf include d'un fichier distant si tu fais explicitement include ("http:// ...)
Le nom du fichier s'arrête après le .php : tu as bien un fichier "offres.php", mais aucun fichier "offres.php?offre=15". Donc il n'y a aucune raison qu'il le trouve.
Mais ne t'inquiète pas de la récupération du paramètre : un fichier inclus, c'est un peu comme un appel de fonction, la variable $_GET est disponible à l'intérieur.
Donc contente toi de
$page="offres.php";
au lieu de
$page="offres.php?offre=".$_GET["offre"];
(Et du coup, ton test ne doit pas être très utile non plus)
0
Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 12
5 févr. 2010 à 12:20
OK.
Merci bien, c'est impeccable, ça passe nickel...
Je m'excuse de la réponse tardive, j'étais partis sur un autre problème.
Merci encore le père.
0