IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

include -> meilleure solution


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut include -> meilleure solution
    Salut tout le monde,

    voila je suis en train de faire un nouveau site web, et jai ma page index.php
    qui contient le design. Ensuite à l'intérieur de cette page, j'aimerai inclure mes page. quel est la meilleure méthode pour le faire ? avant je faisais comme sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
     
    switch($_GET['page']){
     
    case'1':
    	include_once('page/page1.php');
    	break;
     
    case'2':
    	include_once("page/page2.php");
    	break;
     
    default:
    	include_once("index.php?page=1");
    	break
    }
     
    //etc....
     
    ?>
    y'a t'il une meilleure méthode ? si oui pk ?

    merci

  2. #2
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Août 2006
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Hello Cyrill,

    voici la solution que m'avait donné un ami :

    Tu mets ca dans ta balise div :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
        $fp = file_exists($_GET['f'] );
        if( $fp )
        {
            require_once($_GET['f']);
        }
        else
        {
             print "<b>La page demandée n'xiste pas.</b>";
         }
    ?>
    Et pour ton lien tu met ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<?=$_SERVER['PHP_SELF'] ?>?f=nom_de_la_page" >Nom du lien</a>
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<?=$_SERVER['PHP_SELF'] ?>?f=produits.html">Produits</a>
    L'avantage, c'est que ta page va etre inclue dans ta div, et que tu n'a pas de taille à gerer.

    J'espère que ça t'aidera

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    hum merci très interressant ! je vais attendre l'avis des autre mais je retient ta proposition !

    merci pour ton explication complete !

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Août 2006
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    A ton service m'sieur

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    sa sert a quoi en faite le $_SERVER['PHP_SELF'] ??? merci

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Août 2006
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Et bien le $_SERVER['PHP_SELF'] est une variable PHP qui te ramène le nom de la page sur laquelle tu es.

    Par exemple, si dans mon navigateur j'appelle ma page comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/info.php
    la variable $_SERVER['PHP_SELF'] me retourne Donc en clair cette ligne là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<?=$_SERVER['PHP_SELF'] ?>?f=nom_de_la_page" >Nom du lien</a>
    C'est comme si tu écrivais à la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="info.php?f=produit.php" >Liste des produits</a>
    J'espère avoir bien répondu à ta question

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    ça permet aussi de lire n'imorte quel fichier du système si employé tel quel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $fich='../../../etc/confxy';
    if (file_exists($fich) { include($fich); }
    là je viens de lire le fichier confxy sur le serveur.

    à la limite en rajoutant un .php pour biaiser:

    http://www.serveur/toto.php?page=tutu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $fich=$_GET['page'].'.php';
    if (file_exists($fich) { include($fich); }
    ou encore via un tableau contenant les fichiers possibles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tab_page=array('page_un.php','page_deux.php');
    if (in_array($_GET['page'],$tab_page) { include($_GET['page']); }

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    hum ok merci beaucoup pour vos réponse complete

  9. #9
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    perso je considere ca dangeureux d'inclure un fichier uniquement parcqu'il existe... si tu as des pages php reservés a l'administration de ton site, tu va autorisé l'inclusion si on connait son nom ?

    Je prefere la solution de la "white list" a savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $liste=array('page1', 'page2', 'page3');
     
    if (in_array($_GET['page'], $liste)) {
       include($_GET['page'].'.php');
    } else {
       include ('default.php');
    }
    Pour gerer plusieurs répertoires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $liste=array(
    'page1' => 'dossier/page1.php', 
    'page2' => 'dossier2/page2.php', 
    'page3' => 'dossier3/page3.php'
    );
     
    if (isset($liste[$_GET['page']]) {
       include($liste[$_GET['page']]);
    } else {
       include ('default.php');
    }
    Ainsi tu est vraiment sur que seules les pages spécifiées pourront etre incluse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelles est la meilleur solution?
    Par le lotus dans le forum Flash
    Réponses: 2
    Dernier message: 31/01/2006, 14h53
  2. [eCommerce] Meilleure solution pour ecommerce
    Par llax dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 23/12/2005, 21h03
  3. meilleure solution pour implementation
    Par shirya dans le forum C++
    Réponses: 2
    Dernier message: 20/12/2005, 21h46
  4. meilleur solution pour créer un document imprimable???
    Par martimacfly dans le forum XML/XSL et SOAP
    Réponses: 26
    Dernier message: 08/07/2004, 10h09
  5. [Conception] Meilleures solutions pour gérer le multilangage
    Par scorpiwolf dans le forum Général Java
    Réponses: 3
    Dernier message: 06/07/2004, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo