pb switch

donatello
Invité n'ayant pas de compte PHPfrance

21 oct. 2005, 10:12

Bonjour à tous,
j'ai créé un site en php.
Il y a une page d'accueil qui reçoit une variable $page venant du menu quand on clique sur un lien.
la page d'accueil charge les autres pages en fonction de la valeur de $page, testée avec switch.
voici le code:

Code : Tout sélectionner

// affichage de la page centrale (fonction de la valeur de la variable $page envoyée par le menu_gauche) //on controle que la variable est bien envoyée et définie if (isset($_POST['page'])) { $page = $_POST['page']; } //si elle n'est pas définie (première entrée sur le site), on envoie la page actualités else $page = "actualite"; //on choisit la page à afficher en fonction de la valeur de $page switch ($page) { case 'actualite': include('actu.htm'); break; case 'marques': include('marques.htm'); break; case 'occasions': include('occasions.htm'); break; case 'apresv': include('apresv.htm'); break; case 'groupe': include('groupe.htm'); break; }
Mon pb, c'est qu'il n'y a que la première page qui est chargée (actu.htm).
J'ai beau cliquer sur les autres liens, on voit toujours la même page.
Pourtant, la barre d'adresse indique que la varible $page est bien envoyée.
Où ai-je fait une erreur?
Vous pouvez voir le résultat ici:
http://www.prestigeautomobiles45.fr/index2.php

Mammouth du PHP | 568 Messages

21 oct. 2005, 10:14

Tous simplement parceque lorsque tu transmets ne variable par l'url, tu ne la récupère pas par le tableau $_POST, mais $_GET...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

21 oct. 2005, 10:15

Si tu vois la variable page dans l'url, c'est qu'elle est passé en GET. Toi, tu récupère une variable en POST.

remplace ce code
//on controle que la variable est bien envoyée et définie
if (isset($_POST['page'])) {
$page = $_POST['page'];
}
//si elle n'est pas définie (première entrée sur le site), on envoie la page actualités
else $page = "actualite"; 
par celui ci
//on controle que la variable est bien envoyée et définie
if (isset($_GET['page'])) {
$page = $_GET['page'];
}
//si elle n'est pas définie (première entrée sur le site), on envoie la page actualités
else $page = "actualite"; 
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

Invité
Invité n'ayant pas de compte PHPfrance

21 oct. 2005, 10:29

merci bcp!