Aide en PHP

Résolu
Bonjour,
je suis actuellement en train de réaliser un site internet et j'ai un certain nombre de rubriques à mettre. J'ai déja fais le design qui ne doit pas changer.
Je voulais savoir comment est-il possible (grâce au PHP) de garder une seule page avec le design mais avec le contenu qui change (en fonction de la rubrique choisie).
Un exemple, je sais que l'adresse obtenue doit devenir comme celle-là : http://monsite.com/index2.php?page=larubriquechoisie

J'espère que vous pourrez m'aider... J'attends vos réponses avec impatience.
Merci d'avance.
Configuration: Windows XP
Firefox 3.0.11

23 réponses

Résumé de la discussion

Utiliser PHP pour conserver un seul design de page tout en faisant varier le contenu via un paramètre page représente l’objectif central discuté, avec l’exemple d’une URL index2.php?page=larubriquechoisie. Parmi les approches évoquées, l’usage de include avec $_GET et des conditions est discuté pour charger dynamiquement les rubriques tout en garantissant la séparation du design. D’autres propositions soulignent l’usage de switch/case pour limiter les pages disponibles et renforcer la sécurité, et rappeler de privilégier $_GET plutôt que $_POST pour le paramètre page. En pratique, certains mentionnent le risque de failles lors de l’inclusion directe et recommandent d’utiliser des vérifications d’extension et des contrôles de valeur avant toute inclusion.

Bobot (l’IA à votre service)
  1. Contributeur
    ha oui en effet, dsl ;)
    comme je fais le code a la volé, sans le tester au travail, c'est le genre de petits détail que j'oublie ;)
    1. La page était toujours blanche mais j'ai enfin compris qu'il manquait un
      ;
      à la fin de
      include($page.".php")
      . Merci beaucoup.
      1. Contributeur
        t'as fait un mix des 2 trucs ;) peut etre que je me suis mal exprimé

        au vu des liens( <a href="index2.php?page=a_propos" class="liens">A propos</a> ) il faut mettre

        if($page=='edito' || $page=='news_site' || $page=='equipe' || $page=='liens' || $page=='livre_dor' || $page=='bug' || $page=='contact' || $page=='a_propos')

        et du coup, tu rajoutes l'extention php derriere:

        include($page.".php")

        bon, la je pars du boulot, je sais pas si je pourrais autant me connecter ce WE.
        ca devrait marcher, mais sinon, essayes de comprendre la philosophie de ce que je veux te faire faire, et n'hésite pas a faire des tests
        1. Pfff... Je comprends vraiment pas... Ma page est toujours blanche...

          Voila le code en détail du tableau avec les liens de rubriques :

          <table border="0" align="center" cellpadding="0" cellspacing="0">
                     <tr>
                      <td align="center" valign="middle" id="bouton_rubrique"><a href="index2.php?page=edito" class="liens">Edito</a></td>
                     </tr>
                     <tr>
                      <td align="center" valign="middle" id="bouton_rubrique"><a href="index2.php?page=news_site" class="liens">News</a></td>
                     </tr>
                     <tr>
                      <td align="center" valign="middle" id="bouton_rubrique"><a href="index2.php?page=equipe" class="liens">L'&eacute;quipe</a></td>
                     </tr>
                     <tr>
                      <td align="center" valign="middle" id="bouton_rubrique"><a href="index2.php?page=liens" class="liens">Liens</a></td>
                     </tr>
                     <tr>
                      <td align="center" valign="middle" id="bouton_rubrique"><a href="index2.php?page=livre_dor" class="liens">Livre d'or</a></td>
                     </tr>
                     <tr>
                      <td align="center" valign="middle" id="bouton_rubrique"><a href="index2.php?page=bug" class="liens">Bug</a></td>
                     </tr>
                     <tr>
                      <td align="center" valign="middle" id="bouton_rubrique"><a href="index2.php?page=contact" class="liens">Contact</a></td>
                     </tr>
                     <tr>
                      <td align="center" valign="middle" id="bouton_rubrique"><a href="index2.php?page=a_propos" class="liens">A propos</a></td>
                     </tr>
                    </table>


          Et le code PHP de la table avec le contenu changeant en fonction des rubriques :

          <table>
          <tr>
          <td align="left" valign="top" id="table_contenu">
          <?php
          if (isset($_GET['page']))
          {
          $page=$_GET['page'];
          if($page=='edito.php' || $page=='news_site.php' || $page=='equipe.php' || $page=='liens.php' || $page=='livre_dor.php' || $page=='bug.php' || $page=='contact.php' || $page=='a_propos.php')
          { 
          include($page)
          } 
          else echo "Vous n'êtes pas autorisé a voir cette page !";
          }
          else echo "le paramettre page n'est pas renseigné dans l'URL";
          ?>
          </td>
          </tr>
          </table>


          Je sais plus quoi faire...
          1. Contributeur
            si t'enlève le .php, alors le code donné précedement devrait fonctionner
            1. Et si j'enlève le .php, qu'est-ce qu'il faut changer au niveau du code ?
              1. Contributeur
                oui, car dans les 2 cas les pages sont vérifiées dans le if.
                ceci dit, je te conseille la première solution (ne pas mettre le .php derriere) ca evitera d'attirer l'oeil des méchants ;)

                au niveau sécurité, ca c'est un aspect, mais il y en a d'autres (que je ne connais pas forcement). donc ici tu evites de faire une faute grave, mais il y a plein de pieges un peu partout :D
                1. Contributeur
                  en effet, c'est normal

                  <a href="index2.php?page=equipe.php">L'équipe</a>
                  ne mets pas le php dans ton lien

                  si tu es vraiemnt obligé de le mettre, alors:
                  if($page=='equipe.php' || $page=='page2' || $page=='page3' || $page=='page4')
                  {
                  include($page)
                  }
                  1. Ca affiche toujours : Vous n'êtes pas autorisé a voir cette page

                    Mais pour le lien, j'ai mis ça :
                    <a href="index2.php?page=equipe.php">L'équipe</a>
                    Est-ce que c'est bon ?
                    1. Contributeur
                      essayes ce code:
                      <?php
                      if (isset($_GET['page']))
                      {
                      $page=$_GET['page'];
                      if($page=='equipe' || $page=='page2' || $page=='page3' || $page=='page4')
                      {
                      echo "ok, page autorisée";
                      }
                      else echo "Vous n'êtes pas autorisé a voir cette page !";
                      }
                      else echo "le paramettre page n'est pas renseigné dans l'URL";
                      ?>
                      1. Je suis peut-être idiot mais je comprends pas... En plus quand je met :

                        <?php
                        if (isset($_GET['page']))
                        {
                        $page=$_GET['page'];
                        if($page=='equipe' || $page=='page2' || $page=='page3' || $page=='page4')
                        {
                        include($page."php")
                        }
                        else echo "Vous n'êtes pas autorisé a voir cette page !";
                        }
                        ?>

                        a l'endroit ou je veux que mon texte s'affiche (en cliquant sur le lien), la page devient blanche et plus rien ne s'affiche...
                        1. Contributeur
                          il faut qu'elle soit comme ca: http://monsite.com/index2.php?page=larubriquechoisie

                          et il faut que t'ai un fichier (pour cet exemple) larubriquechoisie.php
                          et dedan, tu mets

                          <?php echo "youpi"; ?>

                          et ensuite, tu cherches dans le code de la page renvoyé le mot "youpi" (au cas ou il soit pas affiché à cause d'une auter erreur)
                          1. J'ai essayé le code mais ça ne marche pas... Doit-on assigner quelque chose au lien de la rubrique ?
                            1. Contributeur
                              tiens nous aussi au courant si ca marche ;) et n'oublies pas de mettre en résolu une fois que ce sera bon
                              1. D'accord, merci beaucoup, je vais essayer tout de suite pour voir si ça marche ^^ Je vous tiendrais au courant si je rencontre une difficulté.
                                Encore merci ;)
                                1. Dans ce cas-là, je dois écrire un par un les rubriques dans ce bout de code c'est bien çà ?
                                  1. Contributeur
                                    pour chaque rubrique tu fais une page php, qui sera incluse automatiquement dans le code de cette page

                                    si tes rubriques sont très redondantes, tu peux aussi faire plus simple, en utilisant une base de données pour les stocker
                                2. Le problème c'est qu'un formulaire risque de tout changer à ma page... J'aurais besoin de qqchose de plus simple...
                                  1. Contributeur
                                    fais comme je t'ai dit, en ajoutant un controle des pages demandées:

                                    if (isset($_GET['page']))
                                    {
                                       $page=$_GET['page'];
                                       if($page=='page1' || $page=='page2' || $page=='page3' || $page=='page4')
                                       {
                                          include($page."php")
                                       }
                                       else echo "echo joues pas les malins avec moi, tentes pas de visualiser des pages que je n'autorise pas";
                                    }
                                    
                                    et voila, comme ca l'utilisateur ne peut aller que sur des pages autorisées (sinon, je croi qu'il pourrais avoir accès à des fichieers .htaccess par exemple, contenant des mots de passe, etc

                                    je ne suis pas spécialiste en PHP, mais un pote m'a dit que c'était uen grosse faille de ne pas faire le controle
                                • 1
                                • 2