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 php spécial


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 56
    Points
    56
    Par défaut Include php spécial
    Bonjour,

    je viens régulièrement poser mes quelques questions de débutants sur ce forum et je vous remerci d'avance pour votre éclaircissement.

    Je cherche un tutoriel qui me permettrait de faire un "include" automatique en fonction de l'url utilisée.

    Par exemple :

    http://www.site.com/articles.php?page=desimlocker
    Ferait un include de la page dans un dossier articles/desimlocker.php
    dans une page articles.php
    Ceci est un exemple :
    http://www.site.com/articles.php?page=desimlocker
    http://www.site.com/articles.php?page=test
    http://www.site.com/articles.php?page=guide

    Avez vous une adresse en stock ?
    Merci

  2. #2
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonsoir

    Pas de tutoriel sous la main mais l'idée serait de faire un peu comme ça :

    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
    $fich_incl = $_GET['page'];
     
    switch ($fich_incl) {
    case "desimlocker":
        $nom_fich = 'articles/nom_fichier.php';
        break;
    case "test":
        $nom_fich = 'articles/test.php';
        break;
    case "guide":
        $nom_fich = 'articles/guide.php';
        break;
    default:
        $nom_fich = 'index.php';
    }
     
    include $nom_fich;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    Merci

    Je viens d'essayer et ça marche bien !

    je laisse temporairement ouvert ce topic si d'autres idées sont proposées.

    Merci beaucoup sinon, ça tourne.

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 892
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 892
    Points : 16 345
    Points
    16 345
    Par défaut
    On peut aussi le dynamiser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    switch ( $_GET['page'] )
    {
       default :
     
          if ( file_exists( 'articles/' . $_GET['page'] . '.php' ) ) {
             include( 'articles/' . $_GET['page'] . '.php' );
          }
          else {
             include( 'index.php' );
          }
     
       break;
    }

  5. #5
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    On peut aussi le dynamiser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    switch ( $_GET['page'] )
    {
       default :
     
          if ( file_exists( 'articles/' . $_GET['page'] . '.php' ) ) {
             include( 'articles/' . $_GET['page'] . '.php' );
          }
          else {
             include( 'index.php' );
          }
     
       break;
    }
    Et le tiens, le pirater (faut que ça rime)

    index.php?page=../admin/del_user&id=42

    La solution de 12monkeys est surement la plus employée, il s'agit d'un "front controller"

  6. #6
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Citation Envoyé par leodi Voir le message
    Et le tiens, le pirater (faut que ça rime)

    index.php?page=../admin/del_user&id=42

    La solution de 12monkeys est surement la plus employée, il s'agit d'un "front controller"
    Il suffit juste de définir un fichier de conf avec la liste des pages auxquelles l'utilisateur à accès ou pas accès et la méthode de Bisûnûrs fonctionne !

    Brice

  7. #7
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    oui ou rajouter un array avec les pages acceptées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $pagesOK = array("page1", "page2");
    if ( file_exists( 'articles/' . $_GET['page'] . '.php' ) && in_array($_GET['page'], $pagesOK))
       include( 'articles/' . $_GET['page'] . '.php' );
    else
       include( 'index.php' );

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et le tiens, le pirater (faut que ça rime)
    index.php?page=../admin/del_user&id=42
    Tu te retrouverais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_exists( 'articles../admin/del_user&id=42.php' )
    Pas très interessant comme piratage.

  9. #9
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 892
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 892
    Points : 16 345
    Points
    16 345
    Par défaut
    Citation Envoyé par leodi Voir le message
    Et le tiens, le pirater (faut que ça rime)

    index.php?page=../admin/del_user&id=42

    La solution de 12monkeys est surement la plus employée, il s'agit d'un "front controller"
    En même temps, si ton admin n'est pas sécurisé au point de laisser passer les connexions non authentifiées, faut se poser des questions.

    De plus impossible d'aller fouiller dans les fichiers de configuration PHP ou autres en remontant sur plusieurs niveaux, étant donné qu'on force l'extension à .php.

  10. #10
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    C'était un exemple comme un autre. Si j'ai mis admin, c'est que c'était le plus évident. Ici on parle d'un seul script, pas d'une architecture, donc je préfère dire que cette solution comporte un risque, plutôt que de laisser quelqu'un n'ayant pas vu cela, le mettre sur son site sans vérification derrière.

    L'une des solutions est celle de mdr_cedrick. L'avantage c'est que de cette façon on peut aussi gérer pas mal d'autres choses, par exemple tester si un utilisateur a le droit d'y accéder en rajoutant une simple condition.

  11. #11
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Une question bête : pourquoi avoir conservé le switch dans vos exemples ?
    (avec uniquement le choix default...)

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    Merci pour votre aide, tout cela marche parfaitement

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

Discussions similaires

  1. Includes php ou Apache
    Par GofFazer dans le forum Apache
    Réponses: 4
    Dernier message: 14/08/2006, 10h49
  2. Include PHP dans un script Perl
    Par Jim_Nastiq dans le forum Web
    Réponses: 2
    Dernier message: 16/05/2006, 15h14
  3. [PHP-JS] include php en javascript
    Par jeanmed dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/03/2006, 09h12
  4. [Wamp] include php sur serveur perso avec WAMP server
    Par Quality_Design dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 16/02/2006, 00h17
  5. [Débutant] équivalent du include() php
    Par R3iTt0R dans le forum ASP
    Réponses: 5
    Dernier message: 07/07/2004, 11h46

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