Se connecter avec
S'enregistrer | Connectez-vous

probleme include

Dernière réponse : dans Programmation

Je suis en train de creer une bdd pour gerer une liste de client, j'ai créé ma page index mais j'ai un petit souci.
Sur cette page index j'inclu header.php (entete), menu.php (mon menu comme son nom l'indique ;o)) et g mis en place un tableau dans laquelle serons affiché les differentes pages que j'ai preparer. dans mon menu j'ai mis des lien sous cette form "index.php?pagename=formulaire" par exemple.

Donc au debut sur ma page index.php g simplement mis "include("$pagename.php")", ce qui m'affiche bien la les differentes pages ou je veux, par contre qd j'arrive sur le lien index.php comme il n'y a rien de defini pour $pagename il m'affiche une belle erreur :x. donc g essayer de mettre cela
  1. <?
  2. if ($pagename=='1')
  3. {include("$pagename.php");}
  4. else
  5. {echo "Base de Données Clients";}
  6. ?>


Mais apprement c loin d'etre la bonne synthaxe qq'un pourrais m'aider a comprendre comment corriger cela.
En gros ce que je veux comme resultat c que l'orsque j'arrive avec l'adresse index.php cela m'ecrive "Base de Donnée Client" et que lorsque je clique sur un des lien du menu cela m'affiche la page du lien.

J'espere avoir ete assez clair :x
merci

Autres pages sur : probleme include

Lassé par la pub ? Créez un compte

ho que oui !
c'est un gros trou de sécurité !
sinon pour ne pas avoir d'erreur, faut que tu vérifie que la variable est initialisée...
de meme, il faut que tu désactive register_global, pour des problèmes de sécurité toujours...

je te conseil de lire le topik épinglé sur le dev web

Bon apres avoir essayer, chercher, et rééssayer des dizaines de fois j'ai reussi a faire se que je cherchais. j'ai ecris cela comme ca.

  1. if (empty($pagename)) {echo "<div align=center>Base de Données Clients</div>";}
  2. if (!empty($pagename)){include "$pagename.php"; exit();}


Vous aller a nouveau me dire qu'il y a un gros trou de securité et je le sais tres bien, on peu inclure n'importe qu'elle page a la mienne :x mais comme c'est en local c pas tres grave.

mais par souci de curiosité et d'apprentissage qq'un pourrais m'expliquer comment definir ma variable $pagename de facon a ce qu'uniquement les variables que j'ai choisi soit possible.
Les solutions possibles pour ma variable ne serais pas tres nombreuses (8max), c'est pour ca que j'essai de faire une autre page php qui donnerais les solutions possible mais j'ai un peu de mal.

la solution de faciliter qui me viens a l'esprit serais de mettre un if pour chaque solution du genre:
  1. if ($pagename==formulaire) {include "formulaire.php"; exit();}


Mais j'imagine qu'il existe une solution meilleur que celle la non?

Ah oui lorsque je mets mon registers_global off plus rien de marche que faire pour obtenir le meme resultat avec register_globals off?

Petit rappel : pour passer des variables d'une page à l'autre, on a deux façon principales :
1 - Le passage par l'URL > MaPage.php?MaVariable=SaValeur
2 - Le passage par formulaire, méthode 'post'

Pour récupérer ces variables avec 'registers_global' à 'off', les méthodes associées :
1 - $MaVariable = $_GET["MaVariable"];
2 - $MaVariable = $_POST["MaVariable"];


Un truc du genre :
  1. if (isset($_GET["pagename"])) { // vérifie si la variable postée via l'URL est définie
  2. $pagename = $_GET["pagename"]; // $pagename prend la valeur de la variable précédemment postée
  3. if (file_exists("mon_dossier/".$pagename.".php")) { // vérifie la présence "physique" du fichier demandé, de préférence dans un sous-dossier ce qui évite (par exemple) à un pirate d'y placer trop facilement le sien devant le nom du fichier
  4. include "$pagename.php"; // si oui, inclue ce fichier demandé
  5. }
  6. else {
  7. include "page_par_defaut.php"; // si non, effectue une action autre (ça peut être la même action que le 'else' final)
  8. }
  9. }
  10.  
  11. else { echo "<div align=center>Base de Données Clients</div>"; } // si pas de variable postée, action par défaut


Dans le Topic Unique pinné en gras et en haut de la liste des sujets, tu trouveras un lien vers le manuel officiel PHP en français.. Il y est décrit l'utilisation des variables globales, les registres et autres choses en matière de sécurité.. (d'ailleurs, en disant ça, je ne m'exprime probablement pas très bien :ange: )

:jap: 
Lassé par la pub ? Créez un compte