PHP fonction include via URL [Résolu/Fermé]

Signaler
Messages postés
20
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
9 mars 2010
-
Messages postés
20
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
9 mars 2010
-
Bonjour,
Je suis actuellement entrain de développer un site WEB via MAMP, en utilisant PHP, MySQL etc...
Le site se compose d'une page accueil "page1" dans laquelle j'inclus un corps, un menus, l'entete et le pied de page qui se trouve dans d'autre page (via la fonction include) . Le positionnement, couleur, police etc.. se gere dans une CSS séparé.

Pour le corps ca ressemble a ceci;

<div id="corp">
<?php
// J' inclus la page
include("page6.php");
?>
</div>

Mon problème est le suivant , je désire utilisé la possibilité de changer la page inclus dans le corp via un lien qui se trouve dans mon menus mais sans avoir a refaire une page complète dans laquelle je remettrai tout les includes précédant.

Après quelque recherches, je trouve une fonction ;
(merci M@teo21 :) )

<div id="corp">
<?php
$page = $_GET['page'];
include("$page.php");
?>
</div>

Que je place dans ma page d'accueil "page1" , je modifie les liens dans mon menus en conséquence:
par exemple;
<a href="page1.php?page=page2.php">

Lorsque je lance ma page d'accueil "page1" et que je clique dans mon liens, l'URL
http://localhost:80/A%20travailler/page1.php se transforme bien en
http://localhost:80/A%20travailler/page1.php?page=page2.php .

Mais la page ne s'inclue pas! Je suppose que je fait mal un truc ou que j'ai oublié quelque chose , mais je suis un peu peaumé.
Auriez vous une idée? Merci de votre aide!!!
Mahara

5 réponses

Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
887
pas besoin des " quand il y a une variable

include("$page.php");


ensuite une grosse erreur
$page = $_GET['page'];
include("$page.php");


ta variable c'est $page donc c'est celle la qu'il faut utiliser dans ton include , pas $page.php puisque le $_GET va bien recupérer page2.php par exemple

php devrait te sortir une erreur mais elles ne sont peut être pas activée

vas voir dans le php.ini de MAMP il faut display_error=on


ensuite il faut tester que la variable existe
et utliser la variable passée par l'URL est un énorme trou de sécurité, qq un de mal intentionné peut remplacer par n'importe quoi , alors verifies que ce que tu reçoit est bien des pages autorisées

<div id="corp">
<?php
if(isset($_GET['page'])) { //on teste que la variable est bien passée par l'url
    //ensuite on verifie que la valeur reçue est bien une page  que tu autorises
    if($_GET['page']=='page2.php' || $_GET['page']=='page3.php'  || $_GET['page']=='page4.php' || $_GET['page']=='page6.php'){
          $page =htmlentities( $_GET['page']); //evite les codes malicieux
   }else{
       $page =page_accueil.php; //par exemple
   }
}else{
   $page =page_accueil.php; //par exemple
}
include($page);
?>
</div> 
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci


tu peux inclure des fichiers distants mais les variables ne seront pas propagées
Bonjour

Si tu mets dans ton url ?page=page2.php
et que ton code fait
include("$page.php");
alors tu essayes d'inclure page2.php.php
tu mets php dans l'url ou dans l'include, mais pas 2 fois...
include("$page.php"); n'est pas une erreur de syntaxe.
C'est la même chose que include ($page.'.php');
Là où il y a un problème, c'est que le nom de fichier est incorrect si $page se termine par .php
Messages postés
20
Date d'inscription
lundi 14 décembre 2009
Statut
Membre
Dernière intervention
9 mars 2010

GENIAL!!! Ca marche !!!

Un grand merci a vous ! :):)

En effet j'avais remarqué la faille mais j'avais pris le partie de gerer un probleme un a la fois!!!


Mahara