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 :

Ouvrir la même page avec un nom "include" différen


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 50
    Points : 37
    Points
    37
    Par défaut Ouvrir la même page avec un nom "include" différen
    Bonjour... Eh oui, c'est encore moi...

    J'utilise une page nommée "pagedegarde.php" (redirigée de index.htm) dans laquelle j'inclus 3 fichiers avec la fonction "include". Ce page est encodée comme suit :

    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
    21
    22
    23
    24
    25
    26
     
    <BODY>
     
    <TABLE>
       <TR>
          <TD width="1000">
             <?
                include ('menuhaut.php');
             ?>
          </TD>
       </TR>
    </TABLE>
    <TABLE>
       <TR>
          <TD width="130">
             <?
                include ('menugauche.php');
             ?>
          </TD>
          <TD width="*">
             <?
                include ('corpsdetexte.php'); <-------
             ?>
          </TD>
       </TR>
    </TABLE>
    J'aimerai que lorsque je clique sur un lien d'un des menus, la même page réapparaît avec juste le 'corpsdetexte.php' indiqué dans le code ci-avant qui change.

    Donc en gros, le fait de cliquer par exemple sur le lien "agenda" donnerait :

    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
    21
    22
    23
    24
    25
    26
     
    <BODY>
     
    <TABLE>
       <TR>
          <TD width="1000">
             <?
                include ('menuhaut.php');
             ?>
          </TD>
       </TR>
    </TABLE>
    <TABLE>
       <TR>
          <TD width="130">
             <?
                include ('menugauche.php');
             ?>
          </TD>
          <TD width="*">
             <?
                include ('agenda.php'); <-------
             ?>
          </TD>
       </TR>
    </TABLE>
    Je suppose qu'il me faille passer par des variables mais je suis complètement perdu. Je n'ai rien trouvé ni dans la faq ni dans les autrespost.

    Je sais aussi qu'il y a probablement plus simple mais j'ai environ 50 liens sur ma page et je ne me vois pas recopier autant de fois la même modification ultèrieure...

    Merci d'avance...

    Fabreizhad ;-)

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    les variables d'une page ont la portée de la page ; ce qui veut dire :

    un variable déclaré dans un include situé en haut d'une page sera visible par les include suivant si la variable ne se trouve pas dans une fonction.

  3. #3
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour,

    Dans index.htm chaque lien contient dans l'url le nom da la page à inclure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="pagedegarde.php?inclure=agenda.php> bla bla </a>
    Dans pagedegarde

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <TD width="*">
             <?
                include ($_GET['inclure']); <-------
             ?>

  4. #4
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    ok ben ça devrait marcher MAIS c'est très très très très dangeureux d'inclure une variable passé par une page Web directement dans un include.

    en effet l'utilisateur peut la modifier et ainsi accèder à n'importe quel fichier de ton site.

    C'est une faille de sécu.

  5. #5
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Tout à fait d'accord.

    Utilise $_POST ou $_SESSION qui sont "invisible" et donc légèrement plus sécurisant

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    hmmm moui encore que en post.... enfin j'éviterais de mettre quoique ce soit venant de l'utilisateur en brut dans un include.

  7. #7
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Toujours tout aussi d'accord avec toi.

    Il faut faire des vérifications sur tout ce que tu reçois de l'utilisateur. C'est, pour moi, une évidence

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Donc, si j'ai bien compris, je laisse tomber cette option et je me redirige vers une autre solution... :

    Par exemple en créant autant de fichiers que de liens et en "includant" directement le bon fichier à l'intérieur...

  9. #9
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    un siwthc sur une variable passé en get qui définit la page que tu include ; un peu gore.

    un tableau avec des clé associée aux chemins des fichiers que tu souhaitent inclure (utilise array_key exists pour éviter le undefined index)

    puis sinon, je ne sais pas si il y a d'autres idées ?

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Je vais toujours commencer à faire des duplicatas de mon fichier de base et je les renommerai ensuite...

    Si quelqu'un a une meilleur ou une autre idée, je suis toujours preneur...

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par gilmaire
    Tout à fait d'accord.

    Utilise $_POST ou $_SESSION qui sont "invisible" et donc légèrement plus sécurisant
    Le $_POST n'est en rien plus sécurisé que les $_GET. Il faut systématiquement valider les données provenant de l'utilisateur.

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/12/2008, 15h21
  2. Réponses: 0
    Dernier message: 01/07/2008, 16h16
  3. problème lien dans une même page avec c:foreach
    Par fakhita dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 01/08/2007, 09h11

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