// aide code Php Get --> ///

Discussion dans 'Web, design' créé par duRb, 24 Mars 2005.

Statut de la discussion:
Fermée.
  1. Online
    duRb ex membre
    Bijour j utilise un code pour include une page sur mon site mé j ai un stress pour trouvé le code qui affiche la page de démarrage .. si qqn pourrait m aidé se srait bien gentil :p



    .. :roll:
    duRb, 24 Mars 2005
    #1
  2. Online
    Jereck Procrastinateur
    Equipe GamerZ.be
    Déjà, pour une question de sécurité, on déconseille d'inclure directement la page passée en paramètre, mais plutot d'utiliser un "flag"

    Code:
    <?PHP
    if (isset ($_GET["page"])){
       $page = $_GET["page"];
    }else{
       $page = "main";
    }
    
    switch ($page){
    case "news":
       include("include/loul.php");
       break;
    ...
    case "main":
    default:
       include("include/home.php");
       break;
    }
    Jereck, 24 Mars 2005
    #2
  3. Offline
    _gilles Elite
    Comprend pas trop la question...
    _gilles, 24 Mars 2005
    #3
  4. Offline
    Calvin80 Elite
    bha à mon avis il vbeut juste faire un urlmanager..
    Personnellement, je trouve que la solution de Jereck semble la meilleure.. elle permet mme d'intercaler un test de securité à chaque page appelée..

    Dans tous les cas, faut surtout pas utiliser le script initial hein !
    Calvin80, 24 Mars 2005
    #4
  5. Offline
    guslinux Gamerz'ien
    Autre Solution de sécurité :

    Code:
    $Page_Liste = Array('tutu','tata','titit','toto'..........);
    
    if(isset($_GET['page'] && in_array($_GET['page'],$Page_Liste))
                  require_once('includes/'.$_GET['page']);
    else
                  require_once('includes/default.php');
    
    Je préfère ma solution, car en cas d'ajout d'une page, il suffit de l'ajouter dans l'array. Le reste se fait tout seul :D
    guslinux, 25 Mars 2005
    #5
  6. Offline
    alan Elite
    merci gus!! cool ! c'est mieux comme ca je trouve aussi!! yav une tite erreur chez toi!! (fin ca marchait pas erreur vec ton && (oubli d'une parenthèse ;) apres ce &&)
    Code:
    $mod_list = Array(
        '1'=>'mode1.php',
        '2'=>'mode2.php',
        '3'=>'mode3.php',
        '4'=>'mode4.php');
    
    $mod = $_GET['mod'];
    
    if(isset( $mod ) && array_key_exists($mod, $mod_list) )
                  include_once($mod_list[$mod]);
    else {
      include_once('default.php');
    }
    j'ai edit mon code :)
    sinon j'ai un autre page ... ou la j'ai mis un switch pcq dans le case j'ai du code entre 400 100 et 20 lignes .. et ca pls fois en fonction du module... c'est bien comme ca ou tu conseil de reséparer en ss fichiers ... ???
    alan, 25 Mars 2005
    #6
  7. Offline
    guslinux Gamerz'ien
    Perso je trouve que faire passer le module par des chiffres, c'est pas tres parlant ... D'autre part, il est inutile de mettre le $_GET['mod'] dans $mod ... autant travailler direct sur $_GET.

    Maintenant pour la gestion de mes modules, j'ai un dossier 'module' et un sous dossier pour chaque module.
    Pour aller dans le module je passe en $_GET le nom du dossier. Et si je n'ai pas de $_GET['pg'] defini je prend le fichier 'default.php' du module. J'ai aussi un 'common.php' qui est inclu pour toutes les pages du module.

    Pour voyager dans les pages du module je passe un $_GET['pg'].

    Tout ce systeme me permet d'éviter de devoir faire des switch interminables !

    Rem : J'ai fais en sorte que 'mod' et 'pg' se retrouvent dans une variable de session, ce qui me permet de ne pas toujours repasser le mod quand je reste dans le meme module (je ne sais pas si tout le monde me suit ...).

    => Exemple d'implémentation de ce systeme.
    https://gmao.edt-eng.be/ (demo / demo)

    PS : Je suis ausis passé au modele objet, concl dans mes pages (pg) j'ai de 2 à 20 lignes
    :D
    guslinux, 26 Mars 2005
    #7
  8. Online
    duRb ex membre
    Mici bcp ..

    g opté pr cette solut..

    Code:
    <?PHP 
    if (isset ($_GET["page"])){ 
       $page = $_GET["page"]; 
    }else{ 
       $page = "main"; 
    } 
    
    switch ($page){ 
    case "news": 
       include("include/loul.php"); 
       break; 
    
    switch ($page){ 
    case "wars": 
       include("include/lol.php"); 
       break; 
    
    case "main": 
    default: 
       include("include/home.php"); 
       break; 
    }
    ?>
    :)
    duRb, 2 Avril 2005
    #8
  9. Online
    Jereck Procrastinateur
    Equipe GamerZ.be
    *fier*

    Mais tu ne dois pas remettre ton " switch ($page){ " sinon tu aura une erreur ;)
    Jereck, 2 Avril 2005
    #9
  10. Online
    duRb ex membre
    vi mé c ce que j ai fait me suis trompé en tapant le post

    mici qd meme :p
    duRb, 2 Avril 2005
    #10
Statut de la discussion:
Fermée.