"failed to open stream" > suite requê
paulo123
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
La page index.php de mon site fait appel à des pseudo-frames PHP via des « include ». Le menu de navigation, menu.php, est donc appelé dans le fichier index.php avec ce code :
<?php
include('menu.php'); // Appel du menu
?>
// tableau des pages autorisées :
$pageOK = array(
'articles' =>'articles.php?id_ss_rubrique=2',
);
echo "<div id=\"cadrePage\">";
echo "</div>";
// On teste que le paramètre d'url existe et qu'il est bien autorisé
if ((isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
echo "<div id=\"cadrePage\">";
include($pageOK[$_GET['page']]);
echo "</div>";
// Appel du contenu central de la page
} else {
echo "<div id=\"cadrePage\">";
include('page_centrale.php');
echo "</div>"; // Page par défaut quant elle n'existe pas dans le tableau
}
?>
Une page articles est chargée d’interroger la base Mysql d’après une URL de la forme :
articles.php?id_ss_rubrique=2'. Ceci fonctionne depuis la barre d’adresses du navigateur.
Dans la page du menu de navigation, menu.php, j’appelle donc la page articles de cette manière :
<a href="index.php?page=articles">Formation</a>.
Le message d’erreur est le suivant :
« include(articles.php?id_ss_rubrique=2) [function.include]: failed to open stream: Invalid argument … »
Si j’ajoute un chemin d’accès absolu dans le tableau Array, cela fonctionne en local, seulement si je place le paramètre allow_url_include de php.ini sur ON. Mon hébergeur OVH ayant rendu indisponible ce paramètre, mon code ne fonctionne pas en ligne.
Question : quelle est la solution (en gardant cette structure) pour afficher la page désirée via mon menu de navigation ?
Merci d’avoir lu jusqu’ici.
Paulo
La page index.php de mon site fait appel à des pseudo-frames PHP via des « include ». Le menu de navigation, menu.php, est donc appelé dans le fichier index.php avec ce code :
<?php
include('menu.php'); // Appel du menu
?>
// tableau des pages autorisées :
$pageOK = array(
'articles' =>'articles.php?id_ss_rubrique=2',
);
echo "<div id=\"cadrePage\">";
echo "</div>";
// On teste que le paramètre d'url existe et qu'il est bien autorisé
if ((isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
echo "<div id=\"cadrePage\">";
include($pageOK[$_GET['page']]);
echo "</div>";
// Appel du contenu central de la page
} else {
echo "<div id=\"cadrePage\">";
include('page_centrale.php');
echo "</div>"; // Page par défaut quant elle n'existe pas dans le tableau
}
?>
Une page articles est chargée d’interroger la base Mysql d’après une URL de la forme :
articles.php?id_ss_rubrique=2'. Ceci fonctionne depuis la barre d’adresses du navigateur.
Dans la page du menu de navigation, menu.php, j’appelle donc la page articles de cette manière :
<a href="index.php?page=articles">Formation</a>.
Le message d’erreur est le suivant :
« include(articles.php?id_ss_rubrique=2) [function.include]: failed to open stream: Invalid argument … »
Si j’ajoute un chemin d’accès absolu dans le tableau Array, cela fonctionne en local, seulement si je place le paramètre allow_url_include de php.ini sur ON. Mon hébergeur OVH ayant rendu indisponible ce paramètre, mon code ne fonctionne pas en ligne.
Question : quelle est la solution (en gardant cette structure) pour afficher la page désirée via mon menu de navigation ?
Merci d’avoir lu jusqu’ici.
Paulo
A voir également:
- "failed to open stream" > suite requê
- Open office gratuit - Télécharger - Suite bureautique
- Open core legacy patcher - Accueil - MacOS
- Qwerty to azerty - Guide
- Ace stream - Télécharger - Lecture
- Open sankoré - Télécharger - Bureautique
2 réponses
Bonsoir,
qqs erreurs:
include($pageOK[$_GET['page']]);
et plus haut tu mets dans ton array:
$pageOK = array(
'articles' =>'articles.php?id_ss_rubrique=2',
);
ça veut dire que tu vas faire un include de 'articles.php?id_ss_rubrique=2' hors ce n'est pas le nom d'une page (le nom est 'articles.php')
il faut mettre dans ton array:
ensuite qd tu testes if ((isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) )
il faut:
qqs erreurs:
include($pageOK[$_GET['page']]);
et plus haut tu mets dans ton array:
$pageOK = array(
'articles' =>'articles.php?id_ss_rubrique=2',
);
ça veut dire que tu vas faire un include de 'articles.php?id_ss_rubrique=2' hors ce n'est pas le nom d'une page (le nom est 'articles.php')
il faut mettre dans ton array:
$pageOK = array( 'articles' =>'articles.php', );
ensuite qd tu testes if ((isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) )
il faut:
if (isset($_GET['page']) && in_array($_GET['page'],$pageOK))
Bonsoir,
j'ai bien vu que ton include('menu.... ets bon mais la:
// tableau des pages autorisées :
$pageOK = array(
'articles' =>'articles.php?id_ss_rubrique=2',
);
echo "<div id=\"cadrePage\">";
echo "</div>";
// On teste que le paramètre d'url existe et qu'il est bien autorisé
if ((isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
echo "<div id=\"cadrePage\">";
include($pageOK[$_GET['page']]);
je suppose que $_GET['page'] te renvoie par exemple 'articles' donc
dans l'array $pageOK tu vas trouver 'articles.php?id_ss_rubrique=2' donc par ton include($pageOK[$_GET['page']]);
cela va faire en réalité:
qui n'est pas un nom de fichier
c q f d
j'ai bien vu que ton include('menu.... ets bon mais la:
// tableau des pages autorisées :
$pageOK = array(
'articles' =>'articles.php?id_ss_rubrique=2',
);
echo "<div id=\"cadrePage\">";
echo "</div>";
// On teste que le paramètre d'url existe et qu'il est bien autorisé
if ((isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
echo "<div id=\"cadrePage\">";
include($pageOK[$_GET['page']]);
je suppose que $_GET['page'] te renvoie par exemple 'articles' donc
dans l'array $pageOK tu vas trouver 'articles.php?id_ss_rubrique=2' donc par ton include($pageOK[$_GET['page']]);
cela va faire en réalité:
include('articles.php?id_ss_rubrique=2'')
qui n'est pas un nom de fichier
c q f d
La requête 'articles.php?id_ss_rubrique=2' est correcte. Elle fonctionne si on la saisit dans une url via un navigateur ou si l'on déclare le chemin d'accès absolu dans mon Array. J'ai testé:
articles' =>'http://127.0.0.1/beta3ce/articles.php?id_ss_rubrique=2. Cela fonctionne en local mais pas chez mon hébergeur. Pour cela il faut mettre le paramètre allow_url_include dans php.ini sur ON.
essayes au moins en mettant include 'le_nom_du_fichier' sans ?......