Sujet : if et else
tite question
- Bonjour à tous,
je souhaite mettre dans mon panneau d'admin d'un "module" de mon site, un menu de reroutage, qui, en fonction de l'action sélectionnée, affichera telle ou telle chose sur mon site.
exemple :
[action|V]
| page 1 |
| page 2 |
| page 3 |
|________|
quand je mets page 1 dans le panneau d'admin, c'est la 1 qui est affichée sur l'index, quand je choisie 2, c'est la 2, etc...
je pense qu'il faut utiliser if et else, dans une fonction, et que chaque lien du menu renvoie vers cette fonction qui contient la page... et que mon index vienne chercher la fonction qui est validée dans ma bdd... mais je ne suis sur de rien, donc si quelqu'un pouvait me dire ce que je dois faire au niveau de ma page d'admin, ce que je dois mettre dans l'index pour qu'il affiche les bonnes pages, et au niveau de ma base de données
Merci d'avance,
TiGeR - Salut Tiger,
pour un menu de ce genre il faut employer les balises <select> et <option>.
Tu peux l'associer avec plusieurs "if(condition)" et accessoirement "else" mais perso pour un menu j'utilise plutôt "switch()".
Et s'il te faut récupérer des valeurs dans la bdd tu peux le faire avant la premiere balise <html> (ainsi les valeurs sont initialisées avant l'affichage).
- ça m'avance beaucoup ça
pour les balises <select> et <option>, c'est bon, c'est le principe du menu de reroutage, y'a pas de problème... après ce qui m'embête plus, c'est ce que je met comme lien dans ces balises... #F8
enfait, je ne sait pas du tout comment m'y prendre, c'est pourquoi je vous demande ici, car je suis pommé, c'est la première fois que je veut rédiger un script de ce type, donc je ne sait toujours pas comment je code mon admin (en dehors du menu de reroutage, mais le reste des balises, ce qui se rapporte aux liens etc...), ni ma base, ni mon index... enfait comme je l'ai dit, je part de zéro, et je plane complet #F7
tu pourrais me montrer un exemple à mettre dans chaque page, pour que je m'en inspire ?
Merci d'avance,
TiGeR
- Voici un petit exemple
Le menu de reroutage devrait ressembler à cela :
echo "<form name='redirection' action='redirect.php3' method='post'>";
echo "<select name='choix' class='texte'>";
while($d=mysql_fetch_assoc($res)){
$id=$d['id'];
$titre=$d['nom'];
echo "<option value='$id'>$titre</option>";
}
echo "</select>";
echo "<input type='submit' name='Submit' value='Valider' class='texte'></form>";
Et dans la page redirect.php3 :
switch ($choix)
{
case "1" : { header("Location : ".$lien1); } break;
case "2" : { header("Location : ".$lien2); } break;
case "3" : { header("Location : ".$lien3); } break;
...
default : { header("Location : ".$lien_erreur); } break;
}
- Je suis obligé de passer par une page intermédiaire, apres admin.php ?
et pour savoir, les liens ($lien1, $lien2, etc...) je dois les déclarer à ma bdd ou pas ?
et dernière question, dans mon index.php, j'y mets quoi pour qu'il affiche la bonne page au bon moment ?
mirci......
- Et bien en fait en programmation tu peux faire ce que tu veux :
tu n'est pas obligé de passer par une page intermédiaire ni de déclarer les liens dans la bdd (ça peut être fait dans un fichier php)
Pour afficher la bonne page c'est ce que j'ai mis ici :
[cit]Et dans la page redirect.php3 :
switch ($choix)
{
case "1" : { header("Location : ".$lien1); } break;
case "2" : { header("Location : ".$lien2); } break;
case "3" : { header("Location : ".$lien3); } break;
...
default : { header("Location : ".$lien_erreur); } break;
}[/cit]
En fait ce que j'ai noté dans mon post précédant c'est juste un exemple : il y a des dizaines d'autres façons de procéder...
Je pense que je n'ai pas été trés clair donc voici une explication de mon exemple :
Le menu de reroutage envoi l'internaute sur la page redirect.php3 ou le choix fait dans le menu permet de retrouver le lien correspondant dans la bdd (cette phase est transparente pour le visiteur).
une fois le lien retrouvé, le switch sélectionne la redirection appropriée avec le header("Location ...
Par conséquent il faut que dans la bdd le $lien1 possede $id=1, le $lien2 possede $id=2...
Voilà je pense que ça doit être plus clair maintenant
Bon courage et tiens nous au courant de l'évolution du script
- Ok merci bien, je pense avoir compris le principe
j'essaye ça dès ce soir, et je vous tiendrais au courant
@+,
TiGeR - Ok ça marche
Au fait, merci pour l'astuce de l'iframe transparente
- De rien, j'ai pensé que ça pourrais toujours te servir
- Enfait, j'ai bien étudié l'exemple que tu as fait, et j'ai du mal m'exprimer... enfait toi tu m'a fait un menu de reroutage que le visiteur utilisera pour se rendre sur une page, c'est ça ?
- Là oui il renvois vers une page avec le header("Location : ...").
Mais tu peux aussi tout placer directement dans le switch :
dans case "1" tu peux mettre un tableau avec une série d'info, dans case "2" une autre série d'info, etc... - En fait ce que je demandais, c'est depuis un panneau d'admin, avec un menu liste, de contrôller l'affichage d'une page. Et tant que je change pas dans ce menu, la page index.php aura toujours le même contenu, pour n'importe quel visiteur... tu vois ce que je veux dire ?
je pense qu'il faut donner l'information de la page choisie dans la bdd, et la modifier avec update dans la commande de ce menu... - Heu non je suis pas sur d'avoir bien compris là #F9
En gros tu veux faire une administration pour ton site (et pour laquelle tu es le seul à y avoir accés) afin de modifier dynamiquement le contenu d'une ou plusieurs page ??
- Enfait, c'est pour gérer une partie précise, qui est faite de 4 pages différentes, qui s'afficheront a tour de rôle.
Imagine par exemple un membre qui choisit son thème du site... sauf que là c'est moi qui choisit pour tout le monde, et que c'est juste pour une seule page, et pas un theme...
tu suis maintenant ou toujours pas ? #F9 - Je suis pas sur, mais on va essayer :
donc tu veux pouvoir choisir l'apparence d'une page de ton site à partir d'un menu déroulant qui se trouve dans ton espace d'administration ?
- Presque !
c'est pas l'apparance que je choisis, c'est la page qui saffiche sur un même lien...
exemple, sur www.site.com/dossier/index.php, la page index changera pour les utilisateurs en fonction du choix dans mon menu d'admin... c'est mieux, ou toujours pas? - Ok je pense avoir compris là mais ça n'a rien a voir avec un menu de reroutage.
il te faut une table avec au moins un champ "page" (ou un autre nom) qui conservera la valeur de la page à afficher.
Donc dans ta partie admin tu utilises un formulaire pour pouvoir modifier cette valeur (liste déroulante, bouton radio, lien, etc... comme tu préféres)
Et sur la page à afficher tu commence par aller chercher l'info dans la bdd et tu l'utilises pour renseigner un switch :
[cit]switch ($page)
{
case "accueil" : {
code de la page "accueil"
} break;
case "graphisme" : {
code de la page "graphisme"
} break;
case "wallpaper" : {
code de la page "wallpaper"
} break;
...
default : {
code de la page "par défaut"
} break;
}[/cit]
- Ok, je te remercie, c'est ce qu'il me faut :D
je dois quand même remplacer les mots "case" et "code de la page", n'est-ce pas ?
- "case" est un terme de la fonction switch, il ne faut donc pas le remplacer. Par contre tu met ce que tu veux dans les guillemets qui sont juste aprés.
Et code de la page oui il faut le remplacer par le code de la page à afficher (en html ou php) - Ok je te remercie, je te tiendrais au courant de l'évolution de ce script également ;)
Identification requise
Vous devez être identifié pour pouvoir participer à cette discussion.



