Voila j'ai essayé d'appliquer les éléments du tutoriel à un site que je souhaite créer, et pour toutes les pages le fichier ouvert est celui par défaut.
J'ai alors recopié le code source du tutoriel et j'ai toujours le même problème.

Je ne comprends pas d'ou vient le problème, si en effet le test

if(isset($_GET['page']) && array_key_exists($_GET['page'],$pages))
include $pages[$_GET['page']].'.txt';

a toujours un résultat nul ou alors si il y a un autre problème lié à mon serveur.

Voila l'adresse ou j'ai crée (normalement) le même site que sur le tutoriel:
http://lacollokmazard.chez-alice.fr/test/tuto.php
Modifié par Fifou (06 Feb 2007 - 16:53)
Re salut

Y'a vraiment personne qui peut m'aider à comprendre pourquoi ça ne marche pas?
Je recolle le code PHP en entier.


<?php $pages=array(
'accueil'=>'accueil',
'news'=>'news',
'suite'=>'suite',
'fin'=>'fin'
);
if (isset($_GET['page']) && array_key_exists($_GET['page'],$pages))
include $pages[$_GET['page']].'.txt';
else
include 'accueil.txt';
?>


Le problème est donc que quelque soit le lien sur lequel on clique, c'est l'action "include 'accueil.txt' " qui est effectuée.
Modifié par Fifou (06 Feb 2007 - 16:52)
Salut.

Pourrais-tu entourer le code dans tes messages avec les balises adéquates ([ code] & [ /code] sans les espaces) afin de les rendre plus lisibles et de te mettre en accord avec les règles du forum, stp ?

As-tu vérifié que ta variable $_GET était effectivement bien définie ?

Je ne suis pas sûr que la variable $_GET soit bien acceptée comme index dans ton tableau. Essaie peut-être ceci :
<?php
$pages = array('accueil' => 'accueil', 'news' => 'news', 'suite' => 'suite', 'fin' => 'fin');
if {isset($_GET['page']) {
   $page = $_GET['page'];
   if (!array_key_exists($page, $pages){
      $page = 'accueil';
   }
   $file = $page.'.txt';
   echo $file; // Pour vérifier que le nom de fichier est correct
   include($file);
}
else {
   include('accueil.txt');
}
?>
Merci de ta réponse, je vais refaire une petite mise en page.

J'avais déjà essayé en attribuant la variable $_GET à une nouvelle variable et ça ne marchait pas.

Avec le code que tu m'as donné ça ne marche toujours pas. J'ai toujours le même problème.

J'ai essayé aussi juse de renvoyer la valeur de la variable si le test était réussi:

<?php
if (isset($_GET['page']))
{
$page=$_GET['page'];
echo $page;
}
?>


et encore une fois peu importe sur quel élément du menu je clique rien ne se passe.
Par contre si je met:

<?php include $page.'.html'?>

la ça marche bien mais avec un message d'erreur sur la première page et aucune sécurité sur le site...
C'est bon, problème résolu avec un switch:


<?php 
switch ($page) 
{
case "accueil" : include("accueil.html"); break;
case "news" : include("news.html"); break;
case "suite" : include("suite.html"); break;
case "fin" : include("fin.html"); break;
default : include("accueil.html"); break;
}
?>


Ca passe comme code ou vous trouvez que ça peut poser des problèmes dans des cas particuliers?
Non, pas de problème. Un tableau serait plus performant, paraît-il, mais c'est totalement insignifiant pour 4 liens. Par contre, la première ligne du switch est inutile Smiley cligne

Par contre, il ne faut pas s'étonner que rien ne fonctionne si tu n'utilises pas les bonnes extensions de fichier Smiley decu
En fait ça c juste pour faire des test, pour me familiariser avec le langage.
Le site au final contient une soixantaine de pages, donc je vais me mettre aux tableaux je crois.

Et pour ce qui est des extensions je les ai modifiées en cours de route mais j'ai aussi renommé les fichier donc ça pose pas de problème.

Merci beaucoup en tout cas..