Page 1 sur 1

Pouvoir choisir un include

Posté : 15 avr. 2008, 13:38
par maelinn
Bonjour tout le monde !

Voila mon probleme : j'ai un site structuré avec un include dans lequel je mets tout le haut de page avec la structure du site. Dedans, il y a d'autres include pour appeler cettaines div de menu avec un fond image en map pour les menus.

Mon souci, c'est que je voudrais pouvoir offrir aux visiteurs plusieurs résolutions d'affichage. Il faudrait pour cela que je puisse switcher entre 2 includes qui seraient adaptées en fonction du template désiré.

Ma question : est-ce possible ?

Merci pour votre aide :)

Posté : 15 avr. 2008, 14:13
par Truc
Bonjour tout seul,

tout simplement :)
if(choix_utilisateur)
   include ("page1");
else
   include("page2");

Posté : 15 avr. 2008, 14:30
par maelinn
C'est vrai je n'y avais pas pensé :)
Mais en pratique je fais comment ? Je suppose que je dois utiliser $_GET pour déterminer le choix de l'utilisateur mais c'est très flou... Actuellement, je n'ai pas de variable dans mes liens.

Je suis vraiment débutante, désolée...

Posté : 15 avr. 2008, 14:36
par jobart
<

Code : Tout sélectionner

a href="index.php?toto=bobo">blabla</a>
if(isset($_GET['toto'])&&$_GET['toto']==bobo)

   include ("page1");
else
   include("page2");

Posté : 15 avr. 2008, 15:04
par maelinn
Merci pour vos réponses, mais avec ce sstème, dès que je vais changer de page, je vais revenir à la résolution d'origine vu que la variable get aura changé.

Posté : 15 avr. 2008, 15:55
par jobart
Soit tu mets dans tes liens de page la variable toto ou tu la mets dans une session

Posté : 15 avr. 2008, 16:03
par Truc
passe le contenu de GET en session


session_start(); // TOUT en haut de la page !!!!


if(isset($_GET['toto']))  // si variable GET existe
{
    // alors création variable de session avec  la page a inclure... par défaut "page1"
   if($_GET['toto']=="page2")
        $_SESSION["skin"]  = "page2";
   else
       $_SESSION["skin"]  = "page1";
}
elseif(!isset($_SESSION["skin"])) // Si pas de GET et pas de var de session = initialisation
    $_SESSION["skin"]  = "page1";

include($_SESSION["skin"]);




c'est quand même un peu le zouk :lol: ... le principe y est...
d'autres façon de faire existent mais ici c'est très compréhensible
regarde ce sujet pour essayer de rendre ça plus compacte :wink:

Posté : 15 avr. 2008, 16:05
par hakazizi
ce n'est pas dangeureux de mettre en direct le contenu facilement modifiable dans une sessions sans verification?

Posté : 15 avr. 2008, 17:06
par Truc
ce n'est pas dangeureux de mettre en direct le contenu facilement modifiable dans une sessions sans verification?
comment ça ?

Des tests sont fait
if($_GET['toto']=="page2")
if(!isset($_SESSION["skin"]))
et des valeurs par défaut aussi
   else
       $_SESSION["skin"]  = "page1"; 
$_SESSION["skin"]  = "page1"; 
une autre méthode est de placer en tableau les pages valides
$validPages = array("page1","page2");
if(in_array($_GET['toto'],$validPages )
{
    // ok
}

Posté : 15 avr. 2008, 19:35
par maelinn
Merci pour vos réponses, je vais essayer ça :D