PHP fonction include via URL

Résolu/Fermé
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010 - 16 déc. 2009 à 09:53
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010 - 16 déc. 2009 à 11:30
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
A voir également:

5 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 déc. 2009 à 11:00
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
Utilisateur anonyme
16 déc. 2009 à 10:23
tu peux inclure des fichiers distants mais les variables ne seront pas propagées
0
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...
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
16 déc. 2009 à 11:30
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
0